Permissions API

L'API Permissions fournit une manière cohérente pour connaître, dans un programme, le statut des permissions dans le contexte courant. On pourra par exemple utiliser cette API afin de déterminer si la permission d'accéder à une API donnée a été accordée ou refusée.

Note : Cette fonctionnalité est disponible via les Web Workers bien que les versions actuelles de Firefox n'implémentent pas WorkerNavigator.permissions.

Concepts et usages

Historiquement les differentes API géraient leurs propres permissions de façon peu cohérente. L'API Notifications par exemple permet de vérifier explicitement l'état d'autorisation et de déclencher la demande de permission tandis que l'API Geolocation ne permet pas ce fonctionnement (ce qui peut poser problème lorsque l'utilisateur a refusé la requête de permission initiale). L'API Permissions fournit un ensemble d'outils pour permettre aux développeuses et développeurs d'implémenter une meilleure ergonomie en ce qui concerne les permissions.

La propriété permissions est accessible via l'objet Navigator, dans le contexte standard du navigateur et dans le contexte des workers (WorkerNavigator, ce qui permet de vérifier l'état des permissions depuis les workers). Cette propriété renvoie un objet Permissions qui fournit l'accès aux fonctionalités de l'API Permissions.

Lorsque cet objet a été récupéré, on peut réaliser différentes opérations relatives aux permissions. On peut par exemple connaître l'état d'une permission en utilisant la méthode Permissions.query() qui renvoie une promesse dont la résolution est un objet PermissionStatus renseignant sur l'état d'autorisation pour une API donnée.

L'API Permissions ne donne pas accès aux permissions de l'ensemble des API. Voici un sous-ensemble d'API qui peuvent fonctionner avec l'API Permissions :

À l'avenir, davantage d'API devraient être prises en charge par l'API Permissions.

Exemples

Voici un exemple simple nommé Location Finder. Vous pouvez lancer cet exemple en live ici, ou voir le code source sur GitHub.

Vous pouvez également en lire plus sur le fonctionnement de cet exemple dans l'article Utiliser l'API Permissions.

Interfaces

Fournit un accès à l'objet Permissions depuis le contexte principal (respectivement celui du worker).

Permissions

Fournit les principales fonctionalités de l'API Permissions, telles que les méthodes de demande et de révocation des permissions.

PermissionStatus

Fournit l'accès à l'état actuel d'une permission ainsi qu'un gestionnaire d'évènements pour répondre aux changements d'état d'une permission.

Spécifications

Specification
Permissions

Compatibilité des navigateurs

api.Permissions

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Permissions
accelerometer permission
Experimental
accessibility-events permission
DeprecatedNon-standard
ambient-light-sensor permission
Experimental
background-sync permission
Experimental
camera permission
clipboard-read permission
ExperimentalNon-standard
clipboard-write permission
Experimental
compute-pressure permission
Experimental
geolocation permission
gyroscope permission
Experimental
local-fonts permission
Experimental
magnetometer permission
Experimental
microphone permission
midi permission
notifications permission
payment-handler permission
Experimental
persistent-storage permission
push permission
screen-wake-lock permission
storage-access permission
top-level-storage-access permission
Experimental
window-management permission
Experimental
query
request
Experimental
requestAll
ExperimentalNon-standard
revoke
Deprecated

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
Non-standard. Check cross-browser support before using.
Deprecated. Not for use in new websites.
See implementation notes.
User must explicitly enable this feature.
Has more compatibility info.

api.Navigator.permissions

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
permissions

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.

api.WorkerNavigator.permissions

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
permissions

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.

Voir aussi