permissions
| Typ | Array |
|---|---|
| Erforderlich | Nein |
| Manifest-Version | 2 oder höher |
| Beispiel |
json |
Verwenden Sie den Schlüssel permissions, um besondere Berechtigungen für Ihre Erweiterung anzufordern. Dieser Schlüssel enthält ein Array von Zeichenfolgen, von denen jede eine Berechtigungsanfrage darstellt.
Wenn Sie über diesen Schlüssel Berechtigungen anfordern, kann der Browser die Benutzer bei der Installation darüber informieren, dass die Erweiterung bestimmte Berechtigungen anfordert, und sie um Bestätigung bitten. Der Browser kann Benutzern auch ermöglichen, die Berechtigungen einer Erweiterung nach der Installation einzusehen. Da angeforderte Berechtigungen die Bereitschaft zur Installation Ihrer Erweiterung beeinflussen können, sollten Sie sorgfältig abwägen, welche Berechtigungen Sie benötigen. Vermeiden Sie beispielsweise unnötige Berechtigungen und erläutern Sie in der Beschreibung Ihrer Erweiterung im Store, warum Sie Berechtigungen anfordern. Weitere Informationen zu den dabei zu berücksichtigenden Aspekten finden Sie im Artikel Die richtigen Berechtigungen anfordern.
Informationen dazu, wie Sie Berechtigungsanfragen testen und in der Vorschau anzeigen können, finden Sie unter Berechtigungsanfragen testen auf der Website Extension Workshop.
Der Schlüssel kann drei Arten von Berechtigungen enthalten:
- Host-Berechtigungen (nur Manifest V2; ab Manifest V3 werden Host-Berechtigungen im Manifest-Schlüssel
host_permissionsangegeben.) - API-Berechtigungen
- die
activeTab-Berechtigung
Host-Berechtigungen
Hinweis: Wie Sie Host-Berechtigungen anfordern, hängt davon ab, ob Sie sie bei der Installation oder zur Laufzeit benötigen und welche Manifest-Version Ihre Erweiterung verwendet.
- Manifest V2:
- Bei der Installation über diesen Manifest-Schlüssel (
permissions). - Zur Laufzeit über den Manifest-Schlüssel
optional_permissions.
- Bei der Installation über diesen Manifest-Schlüssel (
- Manifest V3 oder höher:
- Bei der Installation über den Manifest-Schlüssel
host_permissions. - Zur Laufzeit über den Manifest-Schlüssel
optional_host_permissions.
- Bei der Installation über den Manifest-Schlüssel
Host-Berechtigungen werden als Übereinstimmungsmuster angegeben. Jedes Muster bezeichnet eine Gruppe von URLs, für die die Erweiterung zusätzliche Berechtigungen anfordert. Eine Host-Berechtigung könnte beispielsweise "*://developer.mozilla.org/*" lauten.
Zu den zusätzlichen Berechtigungen gehören:
- Zugriff über XMLHttpRequest und fetch auf diese Ursprünge ohne Einschränkungen für ursprungsübergreifende Anfragen.
Hinweis: Bei Manifest-V2-Erweiterungen in Firefox gilt dies auch für Anfragen aus Content-Skripten.
- Die Möglichkeit, ohne die Berechtigung „tabs“ tabspezifische Metadaten wie die Eigenschaften
url,titleundfavIconUrlvontabs.Tab-Objekten auszulesen. - Die Möglichkeit, Content-Skripte und Stile programmgesteuert in Seiten einzufügen, die von diesen Ursprüngen bereitgestellt werden.
- Die Möglichkeit, für diese Hosts Ereignisse der API
webRequestzu empfangen. - Die Möglichkeit, über die API
cookiesauf Cookies für den jeweiligen Host zuzugreifen, sofern die API-Berechtigung"cookies"vorliegt. - Die Umgehung des Tracking-Schutzes für Erweiterungsseiten, wenn ein Host als vollständige Domain oder mit Platzhaltern angegeben ist. Content-Skripte können den Tracking-Schutz dagegen nur für Hosts umgehen, die als vollständige Domain angegeben sind.
- Die Möglichkeit, WebAuthn-Anmeldedaten zu erstellen und abzurufen. Weitere Informationen finden Sie unter WebAuthn API in Web-Erweiterungen verwenden.
API-Berechtigungen
API-Berechtigungen geben Sie als Schlüsselwörter an. Jedes Schlüsselwort bezeichnet eine WebExtension API, die die Erweiterung verwenden möchte.
Sofern nicht anders angegeben, sind diese Berechtigungen in Manifest V2 und höher verfügbar:
activeTabalarmsbackgroundbookmarksbrowserSettingsbrowsingDatacaptivePortalclipboardReadclipboardWritecontentSettingscontextMenuscontextualIdentitiescookiesdebuggerdeclarativeNetRequestdeclarativeNetRequestFeedbackdeclarativeNetRequestWithHostAccessdevtools(Diese Berechtigung wird implizit erteilt, wenn der Manifest-Schlüsseldevtools_pagevorhanden ist.)dnsdownloadsdownloads.openfindgeolocationhistoryidentityidlemanagementmenusmenus.overrideContextnativeMessagingnotificationspageCapturepkcs11privacypublicSuffixproxyscriptingsearchsessionsstoragetabGroupstabHidetabsthemetopSitesunlimitedStorageuserScripts(siehe userScripts-Berechtigung)webNavigationwebRequestwebRequestAuthProvider(Manifest V3 und höher)webRequestBlockingwebRequestFilterResponsewebRequestFilterResponse.serviceWorkerScript
In den meisten Fällen gewährt die Berechtigung lediglich Zugriff auf die API. Es gibt jedoch folgende Ausnahmen:
-
tabsgewährt Ihnen ohne Host-Berechtigungen Zugriff auf privilegierte Teile dertabs-API:Tab.url,Tab.titleundTab.faviconUrl.- In Firefox 85 und früher benötigen Sie
tabsauch dann, wenn Sieurlim ParameterqueryInfofürtabs.query()angeben möchten. Den übrigen Teil dertabs-API kann die Erweiterung ohne Berechtigungsanfrage verwenden. - Ab Firefox 86 und Chrome 50 können statt der Berechtigung „tabs“ auch passende Host-Berechtigungen verwendet werden.
- In Firefox 85 und früher benötigen Sie
-
Mit
webRequestBlockingkönnen Sie das Argument"blocking"verwenden und dadurch Anfragen ändern und abbrechen. -
Mit
downloads.openkönnen Sie die APIdownloads.open()verwenden. -
Mit
tabHidekönnen Sie die APItabs.hide()verwenden.
activeTab-Berechtigung
Wenn ein Benutzer mit einer Erweiterung interagiert, die über die Berechtigung activeTab verfügt, erhält die Erweiterung zusätzliche Berechtigungen für den Tab, in dem die Interaktion stattgefunden hat. So kann eine Erweiterung auf Wunsch des Benutzers auf der aktuellen Seite tätig werden, ohne umfassende Host-Berechtigungen anzufordern.
Einzelheiten dazu, wie die Berechtigung erteilt wird, was sie ermöglicht, wann der Zugriff endet und wie sich das Verhalten zwischen Browsern unterscheidet, finden Sie auf der Seite zur activeTab-Berechtigung.
Zugriff auf die Zwischenablage
Zwei Berechtigungen ermöglichen einer Erweiterung die Interaktion mit der Zwischenablage:
clipboardWrite-
Mit
Clipboard.write(),Clipboard.writeText(),document.execCommand("copy")oderdocument.execCommand("cut")in die Zwischenablage schreiben. clipboardRead-
Mit
Clipboard.read(),Clipboard.readText()oderdocument.execCommand("paste")aus der Zwischenablage lesen.
Weitere Informationen finden Sie unter Mit der Zwischenablage interagieren.
Unbegrenzter Speicher
Die Berechtigung unlimitedStorage:
- Ermöglicht Erweiterungen, die von der API
storage.localfestgelegten Speicherplatzbegrenzungen zu überschreiten. - Ermöglicht Erweiterungen in Firefox, eine „persistente“ IndexedDB-Datenbank zu erstellen, ohne dass der Browser die Benutzer beim Erstellen der Datenbank um Erlaubnis bittet.
Beispiele
"permissions": ["*://developer.mozilla.org/*"]
Nur in Manifest V2: Fordern Sie privilegierten Zugriff auf Seiten unter developer.mozilla.org an.
"permissions": ["tabs"]
Fordern Sie Zugriff auf die privilegierten Teile der tabs-API an.
"permissions": ["*://developer.mozilla.org/*", "tabs"]
Nur in Manifest V2: Fordern Sie beide oben genannten Berechtigungen an.