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 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
undcontent_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
undfavIconUrl
vontabs.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:
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:
browser.extension.getURL("");
// moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
Beispiel
"host_permissions": ["*://developer.mozilla.org/*"]
Fordern Sie privilegierten Zugriff auf Seiten unter developer.mozilla.org
an.
Beispiel-Erweiterungen
Browser-Kompatibilität
Loading…