Wenn Sie die meisten Erweiterungs-APIs und ‐Funktionen verwenden möchten, müssen Sie den Intent Ihrer Erweiterung in den Berechtigungsfeldern des Manifests deklarieren. Erweiterungen können die folgenden Berechtigungskategorien anfordern, die mit den jeweiligen Manifestschlüsseln festgelegt 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 gewährt.
"content_scripts.matches"
- Enthält ein oder mehrere Übereinstimmungsmuster, die das Einfügen von Inhaltsskripts in einen oder mehrere Hosts ermöglichen. Ä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 gewährt.
Berechtigungen helfen, den Schaden zu begrenzen, wenn Ihre Erweiterung von Malware manipuliert wird. Einige Berechtigungswarnungen werden Nutzern vor der Installation oder während der Laufzeit zur Einwilligung angezeigt, wie unter Berechtigung mit Warnungen beschrieben.
Erwägen Sie die Verwendung optionaler Berechtigungen, wenn es die Funktion Ihrer Erweiterung zulässt, um Nutzern eine fundierte Kontrolle über den Zugriff auf Ressourcen und Daten zu geben.
Wenn für eine API eine Berechtigung erforderlich ist, wird in der zugehörigen Dokumentation erläutert, wie sie deklariert wird. Ein Beispiel finden Sie unter Storage API.
Manifest
Hier ein Beispiel für den Abschnitt „Berechtigungen“ 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
Mithilfe von Hostberechtigungen können Erweiterungen mit den Übereinstimmungsmustern der URL interagieren. Für einige Chrome APIs sind neben den eigenen API-Berechtigungen, die auf der jeweiligen Referenzseite dokumentiert sind, auch Hostberechtigungen erforderlich. Hier sind einige Beispiele:
- Stellen Sie
fetch()
-Anfragen über den Erweiterungsdienst-Worker und die Erweiterungsseiten. - Vertrauliche Tab-Eigenschaften (URL, Titel und favIconUrl) mit der
chrome.tabs
API lesen und abfragen. - Inhaltsskript programmatisch einfügen
- Überwachen und steuern Sie die Netzwerkanfragen mit der
chrome.webRequest
API. - Greifen Sie mit der
chrome.cookies
API auf Cookies zu. - Anfragen und Antwortheader mit der
chrome.declarativeNetRequest
API weiterleiten und ändern
Berechtigungen mit Warnungen
Wenn eine Erweiterung mehrere Berechtigungen anfordert und bei vielen davon bei der Installation eine Warnung angezeigt wird, sieht der Nutzer eine Liste mit Warnungen, wie im folgenden Beispiel:
Nutzer sind eher bereit, Erweiterungen mit eingeschränkten Warnungen oder Berechtigungen zu vertrauen. Implementieren Sie gegebenenfalls optionale Berechtigungen oder eine weniger leistungsfähige API, um beunruhigende Warnungen zu vermeiden. Best Practices für Warnungen finden Sie in den Richtlinien zu Berechtigungswarnungen. Spezifische Warnungen sind mit den jeweiligen Berechtigungen in der Referenzliste für Berechtigungen aufgeführt.
Wenn Sie Übereinstimmungsmuster in den Feldern "host_permissions"
und "content_scripts.matches"
der Manifestdatei hinzufügen oder ändern, wird auch eine Warnung ausgelöst. Weitere Informationen finden Sie unter Berechtigungen aktualisieren.
Zugriff zulassen
Wenn die Erweiterung unter file://
-URLs ausgeführt werden muss oder im Inkognitomodus ausgeführt werden muss, 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
- Klicken Sie mit der rechten Maustaste auf das Erweiterungssymbol in Chrome.
Wählen Sie Erweiterung verwalten aus.
Scrollen Sie nach unten, um den Zugriff auf Datei-URLs oder den Inkognitomodus zu aktivieren.
Um zu ermitteln, ob der Nutzer den Zugriff erlaubt hat, können Sie extension.isAllowedIncognitoAccess()
oder extension.isAllowedFileSchemeAccess()
aufrufen.