host_permissions
| Typ | Array |
|---|---|
| Erforderlich | Nein |
| Manifestversion | 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 z.B. cookies, webRequest und tabs. Dieser Schlüssel ist ein Array von Strings, und jeder String stellt eine Anfrage für eine Berechtigung dar.
Angeforderte Berechtigungen und Benutzeraufforderungen
Benutzer können Hostberechtigungen gewähren oder entziehen je 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 im Installationsdialog angezeigt. Ab Firefox 127 werden Hostberechtigungen, die in
host_permissionsundcontent_scriptsaufgelistet sind, im Installationsdialog angezeigt. Wenn jedoch ein Erweiterungsupdate neue Hostberechtigungen anfordert, werden diese dem Benutzer nicht angezeigt. Siehe (Firefox Bug 1893232). - Chrome zeigt die Berechtigungen im Installationsdialog an.
- Safari zeigt die angeforderten Hostberechtigungen im Installationsdialog nicht an.
Ihre Erweiterung kann unmittelbar nach der Installation überprüfen, ob sie alle erforderlichen Berechtigungen hat, indem sie permissions.contains verwendet. Wenn sie nicht die notwendigen Berechtigungen hat, kann sie sie mit permissions.request anfordern. Es könnte auch hilfreich sein, einen Einführungsschritt bereitzustellen, der erklärt, warum einige Berechtigungen notwendig sind, bevor sie angefordert werden.
Da die Anfrage, Hostberechtigungen zu gewähren, die Bereitschaft der Benutzer, Ihre Erweiterung zu installieren, beeinflussen kann, lohnt es sich, die Anforderung von Hostberechtigungen sorgfältig zu überlegen. Beispielsweise sollten Sie vermeiden, unnötige Hostberechtigungen anzufordern und möglicherweise Informationen darüber bereitstellen, warum Sie Hostberechtigungen in der Store-Beschreibung Ihrer Erweiterung anfordern. Der Artikel Die richtigen Berechtigungen anfordern bietet weitere Informationen zu den Überlegungen, die Sie anstellen sollten.
Für Informationen dazu, wie Sie Berechtigungsanfragen testen und in der Vorschau anzeigen können, siehe Berechtigungsanfragen testen auf der Extension Workshop-Seite.
Format
Hostberechtigungen werden als Matchmuster angegeben, und jedes Muster identifiziert eine Gruppe von URLs, für die die Erweiterung zusätzliche Privilegien anfordert. Beispielsweise könnte eine Hostberechtigung "*://developer.mozilla.org/*" sein.
Die zusätzlichen Privilegien umfassen:
- Zugriff auf XMLHttpRequest und fetch für diese Ursprünge ohne Cross-Origin-Beschränkungen (allerdings nicht für Anfragen von Content-Skripts, wie es in Manifest V2 der Fall war).
- die Möglichkeit, tabbezogene Metadaten ohne die "tabs"-Berechtigung zu lesen, wie die Eigenschaften
url,titleundfavIconUrlvontabs.Tab-Objekten. - die Fähigkeit, Skripte programmatisch (unter Verwendung von
tabs.executeScript()) in von jenen Ursprüngen bereitgestellte Seiten einzufügen. - die Fähigkeit, Ereignisse von der
webRequestAPI für diese Hosts zu empfangen. - die Möglichkeit, auf Cookies für diesen Host mit der
cookiesAPI zuzugreifen, sofern die Berechtigung für die"cookies"API ebenfalls enthalten ist. - die Umgehung des Tracking-Schutzes für Erweiterungsseiten, bei denen ein Host als vollständige Domain oder mit Platzhaltern angegeben ist.
In Firefox erhalten Erweiterungen Hostberechtigungen für ihren Ursprung, der folgendermaßen aussieht:
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() abrufen:
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.