host_permissions
| Typ | Array |
|---|---|
| Verpflichtend | Nein |
| Manifest-Version | 3 oder höher |
| Beispiel |
json |
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_permissionsundcontent_scriptsaufgelisteten 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,titleundfavIconUrlEigenschaften vontabs.TabObjekten. - 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:
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:
browser.extension.getURL("");
// moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
Beispiel
"host_permissions": ["*://developer.mozilla.org/*"]
Fordern Sie einen privilegierten Zugriff auf Seiten unter developer.mozilla.org an.