Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
permissions
Ermöglicht es Erweiterungen, zur Laufzeit nach zusätzlichen Berechtigungen zu fragen, nachdem sie installiert wurden.
Erweiterungen benötigen Berechtigungen, um auf leistungsstärkere WebExtension-APIs zugreifen zu können. Sie können zur Installationszeit Berechtigungen anfordern, indem sie diese impermissions manifest.json Schlüssel angeben. Die Hauptvorteile, um bei der Installation nach Berechtigungen zu fragen, sind:
- Die Erweiterung fragt den Benutzer nur einmal, was für ihn weniger störend ist und eine einfachere Entscheidung darstellt.
- Die Erweiterung kann sich auf den Zugang zu den benötigten APIs verlassen, da sie weiß, dass die Berechtigungen erteilt wurden.
In den meisten großen Browsern können Benutzer im Erweiterungsmanager des Browsers sehen, ob installierte Erweiterungen erweiterte Berechtigungen anfordern.
Durch die Verwendung der permissions API kann eine Erweiterung zur Laufzeit zusätzliche Berechtigungen anfordern. Die Erweiterung muss diese Berechtigungen auflisten in
- dem
optional_permissionsSchlüssel ihrer manifest.json Datei für Ursprünge und API-Berechtigungen. - der
gecko.data_collection_permissions.optionalEigenschaft desbrowser_specific_settingsSchlüssels ihrer manifest.json Datei für Daten-Sammelberechtigungen.
Die Hauptvorteile, um zur Laufzeit nach Berechtigungen zu fragen, sind:
- Die Erweiterung kann mit einem kleineren Satz von Berechtigungen laufen, außer wenn sie diese benötigt.
- Die Erweiterung kann die Ablehnung einer Berechtigung elegant behandeln, anstatt dem Benutzer bei der Installation eine globale „Alles oder Nichts“-Entscheidung zu präsentieren. Zum Beispiel kann ein Benutzer viel aus dieser Karten-Erweiterung herausholen, ohne ihr Zugriff auf ihren Standort zu gewähren.
- Die Erweiterung benötigt möglicherweisehost permissions, weiß jedoch zur Installationszeit nicht, welche Host-Berechtigungen sie benötigt. Zum Beispiel kann die Liste der Hosts eine Benutzereinstellung sein. In diesem Szenario kann es eine Alternative sein, zur Laufzeit nach einem spezifischeren Bereich von Hosts zu fragen, anstatt bei der Installation nach "<all_urls>" zu fragen.
Beachten Sie, dass einige Berechtigungen nicht inoptional_permissions erlaubt sind.
Um die permissions API zu verwenden, entscheiden Sie, welche Berechtigungen Ihre Erweiterung zur Laufzeit anfordern kann, und listen Sie sie inoptional_permissions undbrowser_specific_settings.gecko.data_collection_permissions.optional auf. Danach können Sie um alle Berechtigungen bitten, die inoptional_permissions oderbrowser_specific_settings.gecko.data_collection_permissions.optional enthalten sind. Die Erweiterung kann diese Anfragen nur im Handler für eine Benutzeraktion machen (zum Beispiel in einem Klick-Handler).
Ab Firefox 84 können Benutzer die optionalen Berechtigungen installierter Erweiterungen über den Add-ons-Manager verwalten. Erweiterungen, die optionale Berechtigungen verwenden, sollten auf diebrowser.permissions.onAdded undbrowser.permissions.onRemoved API-Ereignisse achten, um zu wissen, wann ein Benutzer diese Berechtigungen erteilt oder widerruft.
Für Ratschläge zur Gestaltung Ihrer Anfrage nach Laufzeitberechtigungen, um die Wahrscheinlichkeit zu maximieren, dass Benutzer diese gewähren, sieheRequest permissions at runtime.
In diesem Artikel
Typen
permissions.PermissionsRepräsentiert einen Satz von Berechtigungen.
Methoden
permissions.contains()Prüft, ob die Erweiterung spezifische Berechtigungen hat.
permissions.getAll()Ruft alle derzeit der Erweiterung gewährten Berechtigungen ab.
permissions.remove()Gibt einen Satz von Berechtigungen auf.
permissions.request()Fragt nach einem Satz von Berechtigungen.
Ereignis-Handler
permissions.onAddedWird ausgelöst, wenn ein Benutzer neue Berechtigungen erteilt.
permissions.onRemovedWird ausgelöst, wenn ein Benutzer eine Berechtigung widerruft.
Beispielerweiterungen
Browser-Kompatibilität
Siehe auch
manifest.jsonpermissionsEigenschaftmanifest.jsonoptional_permissionsEigenschaft
Hinweis:Diese API basiert auf Chromiumschrome.permissions API.