Manifest-Dateiformat

Jede Erweiterung muss eine manifest.json-Datei im Stammverzeichnis haben, in der wichtige Informationen zur Struktur und zum Verhalten der Erweiterung aufgeführt sind. Auf dieser Seite werden die Struktur von Erweiterungsmanifesten und die Funktionen erläutert, 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"
  }
}

Content-Script 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//"
      ]
    }
  ]
}

Content-Script 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.

Schlüssel, die von der Erweiterungsplattform benötigt werden

"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 Chrome-Seite „Erweiterungen“ (chrome://extensions) identifiziert. Die maximale Länge beträgt 75 Zeichen. Informationen zur Verwendung gebietsschemaspezifischer Namen, siehe Internationalisierung.
"version"
Ein String, der die Versionsnummer der Erweiterung angibt. Informationen zur Formatierung von Versionsnummern finden Sie unter Version.

Schlüssel, die für den Chrome Web Store erforderlich sind

"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 zum Lokalisieren von Beschreibungen finden Sie unter Internationalisierung.
"icons"
Ein oder mehrere Symbole, die Ihre Erweiterung darstellen. Informationen zu Best Practices finden Sie unter Icons.

Optionale Schlüssel

"action"
Definiert das Erscheinungsbild und das Verhalten des Erweiterungssymbols in der Google-Symbolleiste. Weitere Informationen finden Sie unter chrome.action.
"background"
Gibt die JavaScript-Datei an, die den Service Worker der Erweiterung enthält, der als Event-Handler fungiert. Weitere Informationen finden Sie unter Service Worker für Erweiterungen.
"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 Tastenkombinationen in 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 Content-Scripts.
"content_security_policy"
Definiert Einschränkungen für die Skripts, Stile und andere Ressourcen, die eine Erweiterung verwenden kann. Weitere Informationen finden Sie unter 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 ursprungsübergreifenden Ressourcen auf 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 Browsing-Kontextgruppe mit ursprungsübergreifenden Dokumenten teilt.
"declarative_net_request"
Definiert statische Regeln für die declarativeNetRequest API, mit der Netzwerkanfragen blockiert und geändert werden können.
"default_locale"
Ein String, der die Standardsprache einer Erweiterung definiert, die mehrere Gebietsschemas unterstützt. Beispiele sind „en“ und „pt_BR“. Dieser Schlüssel ist für lokalisierte Erweiterungen erforderlich und darf nicht in Erweiterungen verwendet werden, die nicht lokalisiert sind. Weitere Informationen finden Sie unter Internationalisierung.
"devtools_page"
Definiert Seiten, die die DevTools APIs verwenden.
"export"
Ermöglicht den Export von Ressourcen aus der Erweiterung. Weitere Informationen finden Sie unter Exportieren.
"externally_connectable"
Gibt an, welche anderen Seiten und Erweiterungen sich mit Ihren Erweiterungen verbinden können. Weitere Informationen finden Sie unter "externally_connectable".
"homepage_url"
Ein String, der eine URL für die Startseite der Erweiterung angibt. Wenn dieser Wert nicht definiert ist, wird standardmäßig die Chrome Web Store-Seite der Erweiterung verwendet. 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. Sie werden mit 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 Importieren.
"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"
Gibt die ID Ihrer Erweiterung für verschiedene Entwicklungsfälle an. 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". Nutzer mit älteren Chrome-Versionen als der Mindestversion sehen im Chrome Web Store eine Warnung, dass die Erweiterung nicht kompatibel ist, und können sie nicht installieren. Wenn Sie diesen Schlüssel einer vorhandenen Erweiterung hinzufügen, erhalten Nutzer mit einer älteren Chrome-Version keine automatischen Updates für Ihre Erweiterung. Das gilt auch für 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 "client_id" und "scopes" Eigenschaften sein. Weitere Informationen finden Sie im OAuth 2.0-Tutorial.
"omnibox"
Ermöglicht der Erweiterung, ein Keyword in der Chrome-Adressleiste zu registrieren. Weitere Informationen finden Sie unter Omnibox.
"optional_host_permissions"
Deklariert optionale Host berechtigungen für Ihre Erweiterung.
"optional_permissions"
Deklariert optionale Berechtigungen für Ihre Erweiterung.
"options_page"
Gibt einen Pfad zu einer „options.html“-Datei an, die von der Erweiterung als Optionsseite verwendet werden soll. Weitere Informationen finden Sie unter Optionen für Nutzer bereitstellen.
"options_ui"
Gibt einen Pfad zu einer HTML-Datei an, mit der Nutzer die Erweiterungsoptionen auf der Chrome-Seite „Erweiterungen“ ändern können. Weitere Informationen finden Sie unter Eingebettete Optionen.
"permissions"
Ermöglicht die Verwendung bestimmter Erweiterungs-APIs. Eine allgemeine Erläuterung 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 nicht in der Sandbox ausgeführte Seiten haben. Weitere Informationen finden Sie unter Sandbox.
"short_name"
Ein String mit einer gekürzten Version des Erweiterungsnamens, der verwendet werden soll, wenn der Platz begrenzt ist. Die maximale Länge beträgt 12 Zeichen. Wenn dieser Wert nicht definiert ist, wird stattdessen eine gekürzte Version des Werts des Schlüssels „name“ angezeigt.
"side_panel"
Gibt eine HTML-Datei an, die in einer sidePanel angezeigt werden soll.
"storage"
Deklariert ein JSON-Schema für den verwalteten Speicher bereich. Weitere Informationen finden Sie unter Manifest für Speicherbereiche.
"tts_engine"
Registriert die Erweiterung als Text-to-Speech-Engine. Weitere Informationen finden Sie unter der ttsEngine API.
"update_url"
Ein String mit der URL der Updateseite 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 sind "1.0 beta" und "build rc2". Wenn dieser Wert nicht angegeben ist, wird stattdessen der Wert von „version“ auf der Seite zur Erweiterungsverwaltung angezeigt.
"web_accessible_resources"
Definiert Dateien in der Erweiterung, auf die von Webseiten oder anderen Erweiterungen zugegriffen werden kann. Weitere Informationen finden Sie unter Webzugängliche Ressourcen.

Optionale ChromeOS-Schlüssel

"file_browser_handlers"
Ermöglicht den Zugriff auf die fileBrowserHandler API, mit der Erweiterungen auf den ChromeOS-Dateibrowser zugreifen können.
"file_handlers"
Gibt Dateitypen an, die von ChromeOS-Erweiterungen verarbeitet werden sollen. Weitere Informationen finden Sie unter 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 Eingabemethoden-Editor API. Weitere Informationen finden Sie unter input_components.