Manifest-Dateiformat

Jede Erweiterung muss eine manifest.json-Datei im Stammverzeichnis haben, die wichtige Informationen zu Struktur und Verhalten der Erweiterung enthält. Auf dieser Seite werden die Struktur von Erweiterungsmanifesten und die möglichen Funktionen erläutert.

Beispiele

Die folgenden Beispielmanifeste zeigen die grundlegende Manifeststruktur und einige häufig verwendete Funktionen als Ausgangspunkt zum Erstellen eines 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.

Für die Erweiterungsplattform erforderliche Schlüssel

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

Für den Chrome Web Store erforderliche Schlüssel

"description"
Ein String, mit dem die Erweiterung sowohl im Chrome Web Store als auch auf der Seite zum Verwalten von Erweiterungen des Nutzers beschrieben wird. Die maximale Länge beträgt 132 Zeichen. Informationen zum Lokalisieren von Beschreibungen findest du unter Internationalisierung.
"icons"
Ein oder mehrere Symbole zur Darstellung Ihrer Erweiterung. Informationen zu Best Practices finden Sie unter Symbole.

Optionale Schlüssel

"action"
Definiert Darstellung und Verhalten des Symbols der Erweiterung in der Google Symbolleiste. Weitere Informationen finden Sie unter chrome.action.
"author"
Gibt die E-Mail-Adresse des Kontos an, mit dem die Erweiterung erstellt wurde.
"background"
Gibt die JavaScript-Datei an, die den Service Worker der Erweiterung enthält und als Event-Handler dient. Weitere Informationen finden Sie unter Informationen zu Erweiterungsdienst-Workern.
"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 Chrome-Standardseiten. Weitere Informationen finden Sie unter Chrome-Seiten überschreiben.
"commands"
Definiert Tastenkombinationen innerhalb der Erweiterung. Weitere Informationen findest du unter chrome.commands.
"content_scripts"
Gibt JavaScript- oder CSS-Dateien an, die verwendet werden sollen, wenn der Nutzer bestimmte Webseiten öffnet. Weitere Informationen
"content_security_policy"
Definiert Einschränkungen für die Skripts, Stile und anderen Ressourcen, die eine Erweiterung verwenden kann. Weitere Informationen finden Sie unter Sicherheitsrichtlinie für Inhalte.
"cross_origin_embedder_policy"
Gibt einen Wert für den HTTP-Header „Cross-Origin-Embedder-Policy“ an, der die Einbettung von ursprungsübergreifenden Ressourcen auf einer Erweiterungsseite konfiguriert.
"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 auf oberster Ebene keine Browser-Kontextgruppe mit ursprungsübergreifenden Dokumenten teilt.
"declarative_net_request"
Definiert statische Regeln für die declarativeNetRequest API, die das Blockieren und Ändern von Netzwerkanfragen ermöglichen.
"default_locale"
Ein String, mit dem die Standardsprache einer Erweiterung definiert wird, die mehrere Sprachen unterstützt. Beispiele hierfür sind „en“ und „pt_BR“. Dieser Schlüssel ist in lokalisierten Erweiterungen erforderlich und darf nicht in nicht lokalisierten Erweiterungen verwendet werden. Weitere Informationen findest du unter Internationalisierung.
"devtools_page"
Definiert Seiten, auf denen die DevTools-APIs verwendet werden.
"export"
Ermöglicht das Exportieren von Ressourcen aus der Erweiterung. Weitere Informationen findest du unter Exportieren.
"externally_connectable"
Gibt an, welche anderen Seiten und Erweiterungen mit Ihren Erweiterungen verknüpft werden können. Weitere Informationen finden Sie unter "externally_connectable".
"homepage_url"
Ein String, der eine URL für die Startseite der Erweiterung angibt. Wenn dies nicht definiert ist, wird standardmäßig die Chrome Web Store-Seite der Erweiterung als Startseite verwendet. Dieses Feld ist besonders nützlich, wenn du die Erweiterung auf deiner eigenen Website hostest.
"host_permissions"
Hier werden die Webseiten aufgelistet, mit denen Ihre Erweiterung interagieren darf. Die Definition erfolgt anhand von URL-Übereinstimmungsmustern. Die Nutzerberechtigung für diese Websites wird bei der Installation angefordert. Weitere Informationen finden Sie unter Hostberechtigungen.
"import"
Ermöglicht das Importieren von Ressourcen in die Erweiterung. Weitere Informationen finden Sie unter Importieren.
"incognito"
Damit wird das Verhalten der Erweiterung im Inkognitomodus festgelegt. Unterstützte Werte sind "spanning", "split" und "not_allowed". Weitere Informationen findest du unter Inkognitomodus.
"key"
Gibt die ID der Erweiterung für verschiedene Anwendungsfälle der Entwicklung 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 von Chrome-Versionen, die älter als die Mindestversion sind, erhalten im Chrome Web Store die Warnung „Nicht kompatibel“ und können die Erweiterung nicht installieren. Wenn Sie die Erweiterung einer vorhandenen Erweiterung hinzufügen, erhalten Nutzer mit einer älteren Chrome-Version keine automatischen Updates mehr. Dies 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 den Attributen "client_id" und "scopes" sein. Weitere Informationen finden Sie in der OAuth 2.0-Anleitung.
"omnibox"
Die Erweiterung kann ein Keyword in der Adressleiste von Chrome registrieren. Weitere Informationen findest du unter Omnibox.
"optional_host_permissions"
Deklariert optionale Hostberechtigungen für die Erweiterung.
"optional_permissions"
Deklariert optionale Berechtigungen für die Erweiterung.
"options_page"
Gibt einen Pfad zu einer „options.html“-Datei an, die die Erweiterung als Optionsseite verwenden soll. Weitere Informationen finden Sie unter Nutzern Optionen geben.
"options_ui"
Gibt einen Pfad zu einer HTML-Datei an, über die Nutzer die Erweiterungsoptionen auf der Seite „Chrome-Erweiterungen“ ändern können. Weitere Informationen finden Sie unter Eingebettete Optionen.
"permissions"
Aktiviert die Verwendung bestimmter Erweiterungs-APIs. Eine allgemeine Erklärung finden Sie unter Berechtigungen. Auf Referenzseiten für einzelne APIs werden die erforderlichen Berechtigungen aufgeführt.
"requirements"
Listet Technologien auf, die zur 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 haben, die nicht in einer Sandbox ausgeführt werden. Weitere Informationen finden Sie unter Sandbox.
"short_name"
Ein String mit einer gekürzten Version des Namens der Erweiterung, der verwendet wird, wenn der Zeichenraum begrenzt ist. Die maximale Länge beträgt 12 Zeichen. Wenn dies nicht definiert ist, wird stattdessen eine abgeschnittene Version des Schlüssels „name“ angezeigt.
"side_panel"
Gibt eine HTML-Datei an, die in einem sidePanel angezeigt werden soll.
"storage"
Deklariert ein JSON-Schema für den verwalteten Speicherbereich. Weitere Informationen findest du unter Manifest für Speicherbereiche.
"tts_engine"
Die Erweiterung wird als Sprachausgabe-Engine registriert. Weitere Informationen finden Sie in der ttsEngine.
"update_url"
Ein String mit der URL der Aktualisierungsseite der Erweiterung. Verwende diesen Schlüssel, wenn du deine Erweiterung nicht im Chrome Web Store hostest.
"version_name"
Ein String, der die Version der Erweiterung beschreibt. Beispiele hierfür sind "1.0 beta" und "build rc2". Ist kein Wert angegeben, wird stattdessen der Wert für „Version“ auf der Seite zur Erweiterungsverwaltung angezeigt.
"web_accessible_resources"
Definiert Dateien innerhalb der Erweiterung, auf die Webseiten oder andere Erweiterungen zugreifen können. Weitere Informationen finden Sie unter Im Web zugängliche Ressourcen.

Optionale ChromeOS-Schlüssel

"file_browser_handlers"
Bietet 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"
Erlaubt den Zugriff auf die fileSystemProvider API, mit der Erweiterungen Dateisysteme erstellen können, die ChromeOS verwenden kann.
"input_components"
Ermöglicht die Verwendung der Input Method Editor API. Weitere Informationen finden Sie unter input_components.