Berechtigungen deklarieren

Wenn Sie die meisten Erweiterungs-APIs und ‑Funktionen verwenden möchten, müssen Sie die Absicht Ihrer Erweiterung in den Berechtigungsfeldern des Manifests deklarieren. Erweiterungen können die folgenden Berechtigungskategorien anfordern, die mit den entsprechenden Manifestschlüsseln angegeben werden:

"permissions"
Enthält Elemente aus einer Liste bekannter Strings. Änderungen können eine Warnung auslösen.
"optional_permissions"
Wird vom Nutzer zur Laufzeit und nicht bei der Installation erteilt.
"content_scripts.matches"
Enthält ein oder mehrere Übereinstimmungsmuster, mit denen Content-Skripts in einen oder mehrere Hosts eingefügt werden können. Änderungen können eine Warnung auslösen.
"host_permissions"
Enthält ein oder mehrere Übereinstimmungsmuster, die Zugriff auf einen oder mehrere Hosts gewähren. Änderungen können eine Warnung auslösen.
"optional_host_permissions"
Wird vom Nutzer zur Laufzeit und nicht bei der Installation erteilt.

Berechtigungen tragen dazu bei, Schäden zu begrenzen, wenn Ihre Erweiterung durch Malware kompromittiert wird. Einige Berechtigungswarnungen werden Nutzern vor der Installation oder zur Laufzeit angezeigt, damit sie ihre Einwilligung geben können. Weitere Informationen finden Sie unter Berechtigungen mit Warnungen.

Verwenden Sie nach Möglichkeit optionale Berechtigungen, um Nutzern eine fundierte Kontrolle über den Zugriff auf Ressourcen und Daten zu ermöglichen.

Wenn für eine API eine Berechtigung erforderlich ist, wird in der Dokumentation der API erklärt, wie Sie sie deklarieren. Ein Beispiel finden Sie unter Storage API.

Manifest

Im Folgenden sehen Sie ein Beispiel für den Berechtigungsabschnitt einer Manifestdatei:

manifest.json:

{
  "name": "Permissions Extension",
  ...
  "permissions": [
    "activeTab",
    "contextMenus",
    "storage"
  ],
  "optional_permissions": [
    "topSites",
  ],
  "host_permissions": [
    "https://www.developer.chrome.com/*"
  ],
  "optional_host_permissions":[
    "https://*/*",
    "http://*/*"
  ],
  ...
  "manifest_version": 3
}

Hostberechtigungen

Mit Hostberechtigungen können Erweiterungen mit den Übereinstimmungsmustern der URL interagieren. Für einige Chrome-APIs sind zusätzlich zu den eigenen API-Berechtigungen Hostberechtigungen erforderlich. Diese sind auf den jeweiligen Referenzseiten dokumentiert. Hier einige Beispiele:

Berechtigungen mit Warnungen

Wenn eine Erweiterung mehrere Berechtigungen anfordert und bei der Installation viele Warnungen angezeigt werden, sehen Nutzer eine Liste mit Warnungen, wie im folgenden Beispiel:

Warnungen zu Berechtigungen für Erweiterungen bei der Installation

Nutzer vertrauen einer Erweiterung eher, wenn nur wenige Warnungen angezeigt werden oder wenn die Berechtigungen erklärt werden. Sie können optionale Berechtigungen oder eine weniger leistungsstarke API implementieren, um alarmierende Warnungen zu vermeiden. Best Practices für Warnungen finden Sie unter Richtlinien für Berechtigungswarnungen. Bestimmte Warnungen sind in der Referenzliste für Berechtigungen mit den Berechtigungen aufgeführt, auf die sie sich beziehen.

Wenn Sie Übereinstimmungsmuster in den "host_permissions" und "content_scripts.matches" Feldern der Manifestdatei hinzufügen oder ändern, wird ebenfalls eine Warnung ausgelöst. Weitere Informationen finden Sie unter Berechtigungen aktualisieren.

Zugriff zulassen

Wenn Ihre Erweiterung unter file://-URLs ausgeführt oder im Inkognitomodus verwendet werden soll, müssen Nutzer der Erweiterung auf der Detailseite Zugriff gewähren. Eine Anleitung zum Öffnen der Detailseite finden Sie unter Erweiterungen verwalten.

Zugriff auf Datei-URLs und Inkognitoseiten zulassen

  1. Klicken Sie in Chrome mit der rechten Maustaste auf das Erweiterungssymbol.
  2. Wählen Sie Erweiterung verwalten aus.

    Kontextmenü für Erweiterungen
    Erweiterungsmenü
  3. Scrollen Sie nach unten, um den Zugriff auf Datei-URLs oder den Inkognitomodus zu aktivieren.

    Datei-URLs und Inkognitomodus auf der Seite mit den Erweiterungsdetails zulassen
    Zugriff auf Datei-URLs und den Inkognitomodus aktiviert.

Mit extension.isAllowedIncognitoAccess() oder extension.isAllowedFileSchemeAccess() können Sie prüfen, ob der Nutzer den Zugriff zugelassen hat.