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 Zugang für die APIs in Ihrer Erweiterung anzufordern, die Hostdaten lesen oder ändern, wie cookies, webRequest und tabs. Dieser Schlüssel ist ein Array von Zeichenketten, und jede Zeichenkette ist eine Anforderung für eine Berechtigung.

Angeforderte Berechtigungen und Benutzeraufforderungen

Benutzer können Host-Berechtigungen 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 Host-Berechtigungen einer Manifest V3-Erweiterung nicht im Installationsdialog angezeigt. Ab Firefox 127 werden die in host_permissions und content_scripts aufgelisteten Host-Berechtigungen im Installationsdialog angezeigt. Wenn jedoch eine Erweiterungsaktualisierung 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 unmittelbar nach der Installation hat, indem sie permissions.contains verwendet. Wenn sie nicht die erforderlichen Berechtigungen hat, kann sie diese mit permissions.request anfordern. Es könnte auch hilfreich sein, einen Onboarding-Schritt bereitzustellen, um zu erklären, warum einige Berechtigungen erforderlich sind, bevor sie angefordert werden.

Da die Anforderung von Host-Berechtigungen die Bereitschaft der Benutzer, Ihre Erweiterung zu installieren, beeinflussen kann, ist die Anforderung von Host-Berechtigungen sorgfältig zu überlegen. Zum Beispiel sollten Sie vermeiden, unnötige Host-Berechtigungen anzufordern, und möchten möglicherweise Informationen darüber bereitstellen, warum Sie Host-Berechtigungen in der Beschreibung Ihres Erweiterungs-Stores anfordern. Der Artikel Fordern Sie die richtigen Berechtigungen an bietet weitere Informationen zu diesen Überlegungen.

Informationen dazu, wie Sie Berechtigungsanfragen testen und anzeigen können, finden Sie unter Berechtigungsanfragen testen auf der Extension Workshop-Website.

Format

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

Die zusätzlichen Berechtigungen umfassen:

  • XMLHttpRequest und fetch-Zugriff auf diese Ursprünge ohne Cross-Origin-Beschränkungen, aber nicht für Anfragen von Inhalts-Skripten.
  • Die Fähigkeit, tab-spezifische Metadaten ohne die "tabs"-Berechtigung zu lesen, wie die url, title und favIconUrl Eigenschaften von tabs.Tab Objekten.
  • Die Fähigkeit, Skripte programmatisch in Seiten von diesen Ursprüngen einzuspeisen (mithilfe von tabs.executeScript()).
  • Die Fähigkeit, Ereignisse von der webRequest-API für diese Hosts zu empfangen.
  • Die Fähigkeit, Cookies für diesen Host mithilfe der cookies-API zuzugreifen, solange die Berechtigung für "cookies" API ebenfalls enthalten ist.
  • Das Umgehen des Tracking-Schutzes für Erweiterungsseiten, bei denen ein Host als vollständige Domain oder mit Platzhaltern angegeben ist.

In Firefox erhalten Erweiterungen Host-Berechtigungen für ihren Ursprung, der in der Form ist:

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

wobei 60a20a9b-1ad4-af49-9b6c-c64c98c37920 die interne ID der Erweiterung ist. Die Erweiterung kann diese URL programmatisch abrufen, indem sie extension.getURL() aufruft:

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

Beispiel

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

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

Beispiel-Erweiterungen

Browser-Kompatibilität