Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

host_permissions

Typ Array
Verpflichtend Nein
Manifest-Version 3 oder höher
Beispiel
json
"host_permissions": [
  "*://developer.mozilla.org/*",
  "*://*.example.org/*"
]

Verwenden Sie den Schlüssel host_permissions, um Zugriff für die APIs in Ihrer Erweiterung anzufordern, die Hostdaten lesen oder ändern, wie zum Beispiel cookies, webRequest und tabs. Dieser Schlüssel ist ein Array von Zeichenfolgen, und jede Zeichenfolge ist eine Anfrage nach einer Berechtigung.

Angeforderte Berechtigungen und Benutzereingabeaufforderungen

Benutzer können Hostberechtigungen gewähren oder widerrufen nach Bedarf. 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 Hostberechtigungen einer Manifest V3-Erweiterung nicht in der Installationsaufforderung angezeigt. Ab Firefox 127 werden Hostberechtigungen, die in host_permissions und content_scripts aufgeführt sind, in der Installationsaufforderung angezeigt. Wenn jedoch bei einem Erweiterungsupdate neue Hostberechtigungen angefordert werden, werden diese dem Benutzer nicht angezeigt. Siehe (Firefox-Fehler 1893232).
  • Chrome zeigt die Berechtigungen in der Installationsaufforderung an.
  • Safari zeigt die angeforderten Hostberechtigungen nicht in der Installationsaufforderung an.

Ihre Erweiterung kann überprüfen, ob sie alle erforderlichen Berechtigungen unmittelbar nach der Installation besitzt, indem Sie permissions.contains verwenden. Wenn sie nicht die notwendigen Berechtigungen hat, kann sie diese mit permissions.request anfordern. Es könnte auch hilfreich sein, einen Einführungsschritt bereitzustellen, der erklärt, warum einige Berechtigungen notwendig sind, bevor Sie sie anfordern.

Da die Anfrage, Hostberechtigungen zu gewähren, die Bereitschaft der Benutzer beeinträchtigen kann, Ihre Erweiterung zu installieren, lohnt es sich, die Anforderung von Hostberechtigungen sorgfältig abzuwägen. Zum Beispiel sollten Sie vermeiden, unnötige Hostberechtigungen anzufordern, und möglicherweise Informationen darüber bereitstellen, warum Sie Hostberechtigungen in der Beschreibung Ihrer Erweiterung im Store anfordern. Der Artikel Die richtigen Berechtigungen anfordern bietet weitere Informationen zu den zu berücksichtigenden Punkten.

Informationen zum Testen und Vorschauen von Berechtigungsanfragen finden Sie unter Berechtigungsanfragen testen auf der Seite des Erweiterungsworkshops.

Format

Host-Berechtigungen werden als Match-Muster angegeben, und jedes Muster identifiziert eine Gruppe von URLs, für die die Erweiterung zusätzliche Privilegien anfordert. Zum Beispiel könnte eine Hostberechtigung "*://developer.mozilla.org/*" sein.

Die zusätzlichen Privilegien umfassen:

  • XMLHttpRequest und fetch-Zugriff auf diese Ursprünge ohne Cross-Origin-Beschränkungen (jedoch nicht für Anfragen aus Content-Scripts, wie es bei Manifest V2 der Fall war).
  • Die Fähigkeit, tab-spezifische Metadaten ohne die "tabs"-Berechtigung zu lesen, wie die Eigenschaften url, title und favIconUrl von tabs.Tab Objekten.
  • Die Fähigkeit, Skripte programmgesteuert (mit tabs.executeScript()) in von diesen Ursprüngen bereitgestellte Seiten einzufügen.
  • Die Fähigkeit, Ereignisse von der webRequest API für diese Hosts zu empfangen.
  • Die Fähigkeit, auf Cookies für diesen Host zuzugreifen, wenn die API-Berechtigung "cookies" ebenfalls enthalten ist.
  • Umgehung des Tracking-Schutzes für Erweiterungsseiten, wo ein Host als vollständige Domain oder mit Platzhaltern angegeben ist.

In Firefox erhalten Erweiterungen Hostberechtigungen für ihren Ursprung, der die Form hat:

url
moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/

Dabei ist 60a20a9b-1ad4-af49-9b6c-c64c98c37920 die interne ID der Erweiterung. Die Erweiterung kann diese URL programmgesteuert durch Aufruf von extension.getURL() erhalten:

js
browser.extension.getURL("");
// moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/

Beispiel

json
 "host_permissions": ["*://developer.mozilla.org/*"]

Fordern Sie privilegierten Zugriff auf Seiten unter developer.mozilla.org an.

Beispiel-Erweiterungen

Browser-Kompatibilität