host_permissions
| Typ | Array |
|---|---|
| Erforderlich | Nein |
| Manifest-Version | 3 oder höher |
| Beispiel |
json |
Verwenden Sie den Schlüssel host_permissions, um Zugriff auf die APIs in Ihrer Erweiterung anzufordern, die Host-Daten lesen oder ändern, wie 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 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_scriptsaufgeführten Host-Berechtigungen im Installationsdialog angezeigt. Wenn jedoch bei einem Erweiterungs-Update neue Host-Berechtigungen angefordert werden, 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 notwendigen Berechtigungen hat, kann sie diese mit permissions.request anfordern. Es könnte auch hilfreich sein, einen Einführungsschritt bereitzustellen, um zu erklären, warum einige Berechtigungen notwendig sind, bevor sie angefordert werden.
Da die Anfrage zur Gewährung von Host-Berechtigungen die Bereitschaft der Benutzer zur Installation Ihrer Erweiterung beeinträchtigen kann, lohnt sich eine sorgfältige Überlegung bei der Anforderung von Host-Berechtigungen. Beispielsweise sollten Sie vermeiden, unnötige Host-Berechtigungen anzufordern, und können Informationen in der Beschreibung Ihrer Erweiterung im Store bereitstellen, warum Sie Host-Berechtigungen anfordern. Der Artikel Die richtigen Berechtigungen anfordern bietet weitere Informationen zu den Überlegungen, die Sie anstellen sollten.
Informationen zum Testen und Vorschauen von Berechtigungsanfragen finden Sie unter Berechtigungsanfragen testen auf der Website des Extension Workshops.
Format
Host-Berechtigungen werden als Matchmuster spezifiziert, und jedes Muster identifiziert eine Gruppe von URLs, für die die Erweiterung zusätzliche Privilegien anfordert. Beispielsweise könnte eine Host-Berechtigung "*://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-Skripten.
- die Fähigkeit, tab-spezifische Metadaten ohne die "tabs"-Berechtigung zu lesen, wie die
url,titleundfavIconUrlEigenschaften vontabs.TabObjekten. - die Möglichkeit, Skripte programmatisch (mit
tabs.executeScript()) in Seiten einzuspeisen, die von diesen Ursprüngen bedient werden. - die Möglichkeit, Ereignisse von der
webRequestAPI für diese Hosts zu empfangen. - die Möglichkeit, auf Cookies für diesen Host mit der
cookiesAPI zuzugreifen, vorausgesetzt, dass die"cookies"API-Berechtigung auch enthalten ist. - Umgehen des Tracking-Schutzes für Erweiterungsseiten, bei denen ein Host als vollständige Domain oder mit Platzhaltern angegeben ist.
- die Fähigkeit, WebAuthn-Anmeldeinformationen zu erstellen und abzurufen. Siehe Verwendung der Web Authn API in Web-Erweiterungen für Details.
Beispiel
"host_permissions": ["*://developer.mozilla.org/*"]
Fordern Sie privilegierten Zugriff auf Seiten unter developer.mozilla.org an.