Manifest-Dateiformat

Jede Erweiterung muss im Stammverzeichnis eine manifest.json-Datei haben, die wichtige Informationen zur Struktur und zum Verhalten dieser Erweiterung enthält. Auf dieser Seite wird die Struktur von Manifesten für Erweiterungen und die Funktionen beschrieben, die sie enthalten können.

Beispiele

Die folgenden Beispielmanifeste zeigen die grundlegende Manifeststruktur und einige häufig verwendete Funktionen als Ausgangspunkt für die Erstellung Ihres eigenen Manifests:

Minimales Manifest

{
  "manifest_version": 3,
  "name": "Minimal Manifest",
  "version": "1.0.0",
  "description": "A basic example extension with only required keys",
  "icons": {
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
}

Inhaltsskript registrieren

{
  "manifest_version": 3,
  "name": "Run script automatically",
  "description": "Runs a script on www.example.com automatically when user installs the extension",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "content_scripts": [
    {
      "js": [
        "content-script.js"
      ],
      "matches": [
        "http://*.example.com//"
      ]
    }
  ]
}

Inhaltsskript einfügen

{
  "manifest_version": 3,
  "name": "Click to run",
  "description": "Runs a script when the user clicks the action toolbar icon.",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "background": {
    "service_worker": "service-worker.js"
  },
  "action": {
    "default_icon": {
      "16": "images/icon-16.png",
      "32": "images/icon-32.png",
      "48": "images/icon-48.png",
      "128": "images/icon-128.png"
    }
  },
  "permissions": ["scripting", "activeTab"]
}
{
  "manifest_version": 3,
  "name": "Popup extension that requests permissions",
  "description": "Extension that includes a popup and requests host permissions and storage permissions .",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "action": {
    "default_popup": "popup.html"
  },
  "host_permissions": [
    "https://*.example.com/"
  ],
  "permissions": [
    "storage"
  ]
}

Seitenleiste

{
  "manifest_version": 3,
  "name": "Side panel extension",
  "version": "1.0",
  "description": "Extension with a default side panel.",
  "icons": {
    "16": "images/icon-16.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "side_panel": {
    "default_path": "sidepanel.html"
  },
  "permissions": ["sidePanel"]
}

Manifestschlüssel

Im Folgenden finden Sie eine Liste aller unterstützten Manifestschlüssel.

Von der Erweiterungsplattform erforderliche Schlüssel

"manifest_version"
Eine Ganzzahl, die die Version des Manifestdateiformats angibt, das von Ihrer Erweiterung verwendet wird. Der einzige unterstützte Wert ist 3.
"name"
Ein String, der die Erweiterung im Chrome Web Store, im Installationsdialogfeld und auf der Seite „Chrome-Erweiterungen“ des Nutzers (chrome://extensions) identifiziert. Die maximale Länge beträgt 75 Zeichen. Informationen zur Verwendung von länderspezifischen Namen finden Sie unter Internationalisierung.
"version"
Ein String, der die Versionsnummer der Erweiterung angibt. Informationen zur Formatierung von Versionsnummern finden Sie unter Version.

Vom Chrome Web Store erforderliche Schlüssel

"description"
Ein String, der die Erweiterung sowohl im Chrome Web Store als auch auf der Seite zur Erweiterungsverwaltung des Nutzers beschreibt. Die maximale Länge beträgt 132 Zeichen. Informationen zur Lokalisierung von Beschreibungen finden Sie unter Internationalisierung.
"icons"
Ein oder mehrere Symbole, die Ihre Erweiterung repräsentieren. Informationen zu Best Practices finden Sie unter Symbole.

Optionale Schlüssel

"action"
Definiert das Aussehen und Verhalten des Symbols der Erweiterung in der Google-Symbolleiste. Weitere Informationen finden Sie unter chrome.action.
"author"
Die E-Mail-Adresse des Kontos, mit dem die Erweiterung erstellt wurde.
"background"
Gibt die JavaScript-Datei an, die den Dienst-Worker der Erweiterung enthält, der als Ereignishandler dient. Weitere Informationen finden Sie unter Diensterweiterungen.
"chrome_settings_overrides"
Definiert Überschreibungen für ausgewählte Chrome-Einstellungen. Weitere Informationen finden Sie unter Chrome-Einstellungen überschreiben.
"chrome_url_overrides"
Definiert Überschreibungen für Standard-Chrome-Seiten. Weitere Informationen finden Sie unter Chrome-Seiten überschreiben.
"commands"
Definiert Tastenkürzel innerhalb der Erweiterung. Weitere Informationen finden Sie unter chrome.commands.
"content_scripts"
Gibt JavaScript- oder CSS-Dateien an, die verwendet werden sollen, wenn der Nutzer bestimmte Webseiten öffnet. Weitere Informationen finden Sie unter Inhaltsscripts.
"content_security_policy"
Definiert Einschränkungen für Scripts, Stile und andere Ressourcen, die von einer Erweiterung verwendet werden können. Weitere Informationen finden Sie in der Content Security Policy.
"cross_origin_embedder_policy"
Gibt einen Wert für den HTTP-Header „Cross-Origin-Embedder-Policy“ an, mit dem das Einbetten von plattformübergreifenden Ressourcen in einer Erweiterungsseite konfiguriert wird.
"cross_origin_opener_policy"
Gibt einen Wert für den HTTP-Header „Cross-Origin-Opener-Policy“ an, mit dem Sie dafür sorgen können, dass eine Erweiterungsseite der obersten Ebene keine Browserkontextgruppe mit plattformübergreifenden Dokumenten teilt.
"declarative_net_request"
Definiert statische Regeln für die declarativeNetRequest API, mit denen Netzwerkanfragen blockiert und geändert werden können.
"default_locale"
Ein String, der die Standardsprache einer Erweiterung definiert, die mehrere Gebietsschemata unterstützt. Beispiele sind „de“ und „pt_BR“. Dieser Schlüssel ist in lokalisierten Erweiterungen erforderlich und darf nicht in nicht lokalisierten Erweiterungen verwendet werden. Weitere Informationen finden Sie unter Internationalisierung.
"devtools_page"
Definiert Seiten, auf denen die DevTools APIs verwendet werden.
"export"
Ermöglicht den Export von Ressourcen aus der Erweiterung. Weitere Informationen finden Sie unter Export.
"externally_connectable"
Gibt an, welche anderen Seiten und Erweiterungen eine Verbindung zu Ihren Erweiterungen herstellen können. Weitere Informationen finden Sie unter "externally_connectable".
"homepage_url"
Ein String, der eine URL für die Startseite der Erweiterung angibt. Wenn diese Option nicht definiert ist, ist die Startseite standardmäßig die Chrome Web Store-Seite der Erweiterung. Dieses Feld ist besonders nützlich, wenn Sie die Erweiterung auf Ihrer eigenen Website hosten.
"host_permissions"
Listet die Webseiten auf, mit denen Ihre Erweiterung interagieren darf. Diese werden anhand von URL-Abgleichsmustern definiert. Die Nutzerberechtigung für diese Websites wird bei der Installation angefordert. Weitere Informationen finden Sie unter Hostberechtigungen.
"import"
Ermöglicht den Import von Ressourcen in die Erweiterung. Weitere Informationen finden Sie unter Import.
"incognito"
Definiert, wie sich die Erweiterung im Inkognitomodus verhält. Unterstützte Werte sind "spanning", "split" und "not_allowed". Weitere Informationen finden Sie unter Inkognito.
"key"
Die ID Ihrer Erweiterung für verschiedene Entwicklungsanwendungsfälle. Weitere Informationen finden Sie unter Schlüssel.
"minimum_chrome_version"
Definiert die älteste Chrome-Version, mit der Ihre Erweiterung installiert werden kann. Der Wert muss ein Teilstring eines vorhandenen Chrome-Browserversionsstrings sein, z. B. "107" oder "107.0.5304.87". Nutzern mit einer älteren Chrome-Version als der Mindestversion wird im Chrome Web Store die Warnung „Nicht kompatibel“ angezeigt und sie können Ihre Erweiterung nicht installieren. Wenn Sie diese Einstellung einer vorhandenen Erweiterung hinzufügen, erhalten Nutzer mit einer älteren Chrome-Version keine automatischen Updates für Ihre Erweiterung. Dazu gehören auch geschäftliche Nutzer im sitzungsspezifischen Modus.
"oauth2"
Ermöglicht die Verwendung einer OAuth 2.0-Sicherheits-ID. Der Wert dieses Schlüssels muss ein Objekt mit den Eigenschaften "client_id" und "scopes" sein. Weitere Informationen finden Sie in der OAuth 2.0-Anleitung.
"omnibox"
Ermöglicht es der Erweiterung, ein Keyword in der Adressleiste von Chrome zu registrieren. Weitere Informationen finden Sie unter Omnibox.
"optional_host_permissions"
Hiermit werden optionale Hostberechtigungen für Ihre Erweiterung deklariert.
"optional_permissions"
Erklärt optionale Berechtigungen für Ihre Erweiterung.
"options_page"
Gibt den Pfad zu einer options.html-Datei an, die von der Erweiterung als Optionsseite verwendet werden soll. Weitere Informationen finden Sie unter Nutzer Optionen bieten.
"options_ui"
Gibt den Pfad zu einer HTML-Datei an, mit der Nutzer die Erweiterungsoptionen auf der Seite „Chrome-Erweiterungen“ ändern können. Weitere Informationen finden Sie unter Einbettungsoptionen.
"permissions"
Ermöglicht die Verwendung bestimmter Erweiterungs-APIs. Eine allgemeine Erklärung finden Sie unter Berechtigungen. Auf den Referenzseiten für einzelne APIs sind die erforderlichen Berechtigungen aufgeführt.
"requirements"
Listet die Technologien auf, die für die Verwendung der Erweiterung erforderlich sind. Eine Liste der unterstützten Anforderungen finden Sie unter Anforderungen.
"sandbox"
Definiert eine Reihe von Erweiterungsseiten, die keinen Zugriff auf Erweiterungs-APIs oder direkten Zugriff auf Seiten außerhalb der Sandbox haben. Weitere Informationen finden Sie unter Sandbox.
"short_name"
Ein String, der eine gekürzte Version des Namens der Erweiterung enthält, die verwendet werden soll, wenn der Zeichenbereich begrenzt ist. Die maximale Länge beträgt 12 Zeichen. Wenn dieser Wert nicht definiert ist, wird stattdessen eine gekürzte Version des Schlüssels „name“ angezeigt.
"side_panel"
Identifiziert eine HTML-Datei, die in einem sidePanel angezeigt werden soll.
"storage"
 Definiert ein JSON-Schema für den verwalteten Speicherbereich. Weitere Informationen finden Sie unter Manifest für Speicherbereiche.
"tts_engine"
Die Erweiterung wird als Sprachausgabe-Engine registriert. Weitere Informationen finden Sie in der ttsEngine API.
"update_url"
Ein String mit der URL der Seite mit den Updates der Erweiterung. Verwenden Sie diesen Schlüssel, wenn Sie Ihre Erweiterung außerhalb des Chrome Web Store hosten.
"version_name"
Ein String, der die Version der Erweiterung beschreibt. Beispiele hierfür sind "1.0 beta" und "build rc2". Wenn dieser Wert nicht angegeben ist, wird stattdessen der Wert „version“ auf der Seite zum Verwalten der Erweiterung angezeigt.
"web_accessible_resources"
Definiert Dateien innerhalb der Erweiterung, auf die über Webseiten oder andere Erweiterungen zugegriffen werden kann. Weitere Informationen finden Sie unter Webzugriff auf Ressourcen.

Optionale ChromeOS-Tasten

"file_browser_handlers"
Ermöglicht den Zugriff auf die fileBrowserHandler API, über die Erweiterungen auf den ChromeOS-Dateibrowser zugreifen können.
"file_handlers"
Gibt die Dateitypen an, die von ChromeOS-Erweiterungen verarbeitet werden sollen. Weitere Informationen: file_handlers
"file_system_provider_capabilities"
Ermöglicht den Zugriff auf die fileSystemProvider API, mit der Erweiterungen Dateisysteme erstellen können, die von ChromeOS verwendet werden können.
"input_components"
Ermöglicht die Verwendung der Input Method Editor API. Weitere Informationen finden Sie unter input_components.