Jede Erweiterung muss im Stammverzeichnis eine manifest.json-Datei haben, in der wichtige Informationen zur Struktur und zum Verhalten der Erweiterung aufgeführt sind.
Auf dieser Seite wird die Struktur von Erweiterungsmanifesten 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"
}
}
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"]
}
Pop-up-Fenster mit Berechtigungen
{
"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 Extensions-Plattform benötigte 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 gebietsschemaspezifischer 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 benötigte 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 zum Lokalisieren von Beschreibungen finden Sie unter Internationalisierung.
"icons"- Ein oder mehrere Symbole, die Ihre Erweiterung repräsentieren. Informationen zu Best Practices finden Sie unter Icons.
Optionale Schlüssel
"action"- Definiert das Aussehen und Verhalten des Symbols der Erweiterung 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 Ereignishandler 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 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 Content-Scripts.
"content_security_policy"- Definiert Einschränkungen für die Skripts, Stile und anderen 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 Ressourcen mit unterschiedlichem Ursprung auf einer Erweiterungsseite konfiguriert wird.
"cross_origin_opener_policy"- Gibt einen Wert für den HTTP-Header „Cross-Origin-Opener-Policy“ an. Damit können Sie dafür sorgen, 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, auf denen die DevTools APIs verwendet werden.
"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 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, wird standardmäßig die Chrome Web Store-Seite der Erweiterung als Startseite verwendet. Dieses Feld ist besonders nützlich, wenn Sie die Erweiterung auf Ihrer eigenen Website hosten.
"host_permissions"- Hier werden die Webseiten aufgeführt, mit denen Ihre Erweiterung interagieren darf. Sie werden mithilfe von URL-Abgleichsmustern definiert. Die Nutzerberechtigung für diese Websites wird bei der Installation angefordert. Weitere Informationen zu 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 Entwicklungsanwendungsfälle an. Weitere Informationen finden Sie unter Schlüssel.
"mime_types_handler"- Registriert die Erweiterung als Handler für unterstützte MIME-Typen wie
application/pdf. Weitere Informationen finden Sie in der mimeHandler API. "minimum_chrome_version"- Definiert die älteste Chrome-Version, auf 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 Chrome-Versionen, die älter als die Mindestversion sind, sehen im Chrome Web Store die Warnung „Nicht kompatibel“ und können Ihre Erweiterung nicht installieren. Wenn Sie dies einer bestehenden Erweiterung hinzufügen, erhalten Nutzer mit einer älteren Chrome-Version keine automatischen Updates für Ihre Erweiterung. Dies gilt auch für geschäftliche Nutzer im flüchtigen 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 der Erweiterung, ein Keyword in der Adressleiste von Chrome zu registrieren. Weitere Informationen finden Sie unter Omnibox.
"optional_host_permissions"- Deklariert optionale Hostberechtigungen 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 Nutzern Optionen anbieten.
"options_ui"- Gibt einen Pfad zu einer HTML-Datei an, über die Nutzer Erweiterungsoptionen auf der Seite „Chrome-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 die einzelnen 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 ohne Sandbox haben. Weitere Informationen finden Sie unter Sandbox.
"short_name"- Ein String mit einer gekürzten Version des Namens der Erweiterung, die 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 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 finden Sie unter Manifest für Speicherbereiche.
"tts_engine"- Registriert die Erweiterung als Text-zu-Sprache-Modul. Weitere Informationen finden Sie in der ttsEngine API.
"update_url"- Ein String mit der URL der Seite für Erweiterungsupdates. 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 nichts angegeben ist, wird der Wert „version“ stattdessen 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-Tasten
"file_browser_handlers"- Bietet Zugriff auf die
fileBrowserHandler-API, über die Erweiterungen auf den ChromeOS-Dateimanager zugreifen können. "file_handlers"- Gibt Dateitypen an, die von ChromeOS-Erweiterungen verarbeitet werden sollen. Weitere Informationen:
file_handlers "file_system_provider_capabilities"- Ermöglicht den Zugriff auf die
fileSystemProviderAPI, 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.