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 (en-US).

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 (en-US), ce qui permet de vérifier l'état des permissions depuis les workers). Cette propriété renvoie un objet Permissions (en-US) 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() (en-US) qui renvoie une promesse dont la résolution est un objet PermissionStatus (en-US) 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 (en-US).

Interfaces

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

Permissions (en-US)

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

PermissionStatus (en-US)

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

BCD tables only load in the browser

api.Navigator.permissions

BCD tables only load in the browser

api.WorkerNavigator.permissions

BCD tables only load in the browser

Voir aussi