host_permissions
Typ | Array |
---|---|
Verpflichtend | Nein |
Manifest-Version | 3 oder höher |
Beispiel |
json
|
Verwenden Sie den Schlüssel host_permissions
, um Zugriff für die APIs in Ihrer Erweiterung zu beantragen, die Host-Daten lesen oder ändern, wie zum Beispiel cookies
, webRequest
und tabs
. Dieser Schlüssel ist ein Array von Zeichenfolgen, und jede Zeichenfolge ist eine Anforderung für eine Berechtigung.
Angeforderte Berechtigungen und Benutzeraufforderungen
Benutzer können Host-Berechtigungen ad hoc gewähren oder widerrufen. Daher behandeln die meisten Browser host_permissions
als optional.
Bei der Installation, wenn Sie Berechtigungen mit diesem Schlüssel anfordern:
- Bis Firefox 126 wurden die angeforderten Host-Berechtigungen einer Manifest V3-Erweiterung nicht im Installationsdialog angezeigt. Ab Firefox 127 werden die in
host_permissions
undcontent_scripts
aufgeführten Host-Berechtigungen im Installationsdialog angezeigt. Wenn jedoch ein Erweiterungsupdate neue Host-Berechtigungen anfordert, werden diese dem Benutzer nicht angezeigt. Siehe (Firefox-Bug 1893232). - Chrome zeigt die Berechtigungen im Installationsdialog an.
- Safari zeigt angeforderte Host-Berechtigungen im Installationsdialog nicht an.
Ihre Erweiterung kann überprüfen, ob sie alle erforderlichen Berechtigungen direkt nach der Installation hat, indem sie permissions.contains
verwendet. Falls nicht, kann sie diese mit permissions.request
anfordern. Es kann auch hilfreich sein, einen Onboarding-Schritt bereitzustellen, um zu erklären, warum einige Berechtigungen erforderlich sind, bevor Sie sie anfordern.
Da die Anforderung von Host-Berechtigungen die Bereitschaft der Benutzer zur Installation Ihrer Erweiterung beeinträchtigen kann, lohnt es sich, Host-Berechtigungen sorgfältig abzuwägen. Zum Beispiel möchten Sie möglicherweise unnötige Host-Berechtigungen vermeiden und Informationen darüber bereitstellen, warum Sie Host-Berechtigungen in der Store-Beschreibung Ihrer Erweiterung anfordern. Der Artikel Fordern Sie die richtigen Berechtigungen an bietet weitere Informationen zu den Überlegungen, die Sie anstellen sollten.
Informationen zum Testen und Vorschauen von Berechtigungsanfragen finden Sie unter Berechtigungsanfragen testen auf der Extension Workshop-Website.
Format
Host-Berechtigungen werden als Muster für Übereinstimmungen angegeben, und jedes Muster identifiziert eine Gruppe von URLs, für die die Erweiterung zusätzliche Privilegien anfordert. Ein Host-Berechtigungsmuster könnte zum Beispiel "*://developer.mozilla.org/*"
sein.
Die zusätzlichen Privilegien umfassen:
- Zugriff auf diese Ursprünge mittels XMLHttpRequest und fetch ohne Cross-Origin-Einschränkungen (jedoch nicht für Anfragen von Inhalts-Skripten, wie es bei Manifest V2 der Fall war).
- die Möglichkeit, tab-spezifische Metadaten ohne die "tabs"-Berechtigung zu lesen, wie die Eigenschaften
url
,title
undfavIconUrl
vontabs.Tab
-Objekten. - die Möglichkeit, Skripte programmgesteuert in Seiten von diesen Ursprüngen einzufügen (unter Verwendung von
tabs.executeScript()
). - die Möglichkeit, Ereignisse von der
webRequest
-API für diese Hosts zu empfangen. - die Möglichkeit, Cookies für diesen Host mit der
cookies
-API zuzugreifen, sofern die Berechtigung "cookies" ebenfalls enthalten ist. - Umgehung des Tracking-Schutzes für Erweiterungsseiten, bei denen ein Host als vollständige Domäne oder mit Platzhaltern angegeben ist.
In Firefox erhalten Erweiterungen Host-Berechtigungen für ihren Ursprung, der die Form hat:
moz-extension:/
wobei 60a20a9b-1ad4-af49-9b6c-c64c98c37920
die interne ID der Erweiterung ist. Die Erweiterung kann diese URL programmatisch durch Aufruf von extension.getURL()
erhalten:
browser.extension.getURL("");
// moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
Beispiel
"host_permissions": ["*://developer.mozilla.org/*"]
Privilegierten Zugriff auf Seiten unter developer.mozilla.org
anfordern.