permissions.request()

Demandez l'ensemble des permissions répertoriées dans l'objet permissions.Permissions.

L'argument Permissions peut contenir soit une propriété  origins , qui est un tableau de permissions d'hôte, soit une propriété permissions , qui est un tableau de permissions d'API, ou les deux. Les permissions doivent provenir de l'ensemble des permissions définies dans la clé  optional_permissions du manifest.json. La propriété origins qui correspondent à un sous-ensemble des hôtes correspondant à une  permission facultative : par exemple, si optional_permissions inclut "*://mozilla.org/", alors  permissions.origins peut inclure  "https://developer.mozilla.org/".

La demande ne peut être faite qu'à l'intérieur du gestionnaire pour une action utilisateur.

Selon les circonstances, le navigateur traitera probablement la demande en demandant à l'utilisateur s'il doit accorder les permissions demandées. Une seule requête est faite pour toutes les permissions demandées: donc toutes les permissions sont accordées ou aucune d'entre elles ne l'est.

Toutes les autorisations accordées sont conservées par l'extension, même en cas de mise à niveau et de désactivation / activation du cycle.

Il s'agit d'une fonction asynchrone qui renvoie une Promise.

Syntaxe

var requesting = browser.permissions.request(
  permissions                // Permissions object
)

Paramètres

permissions
Un objet permissions.Permissions

Return value

Une Promise qui sera remplie avec true si l'extension a reçu toutes les permissions répertoriées dans l'argument des permissions , ou false dans le cas contraire.

Compatibilité du navigateur

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxOperaFirefox pour Android
Support simpleChrome Support complet OuiEdge Aucun support NonFirefox Support complet 55
Notes
Support complet 55
Notes
Notes The user will be prompted again for permissions that have been previously granted and then removed.
Notes It's not possible to request permissions from a popup or a sidebar document.
Aucun support 56 — 61
Notes
Notes It's not possible to request permissions from an options page that's embedded in about:addons. To request permissions from an options page, set the open_in_tab property in the options_ui manifest key, so the options page opens in its own tab.
Opera Support complet OuiFirefox Android Support complet 55
Notes
Support complet 55
Notes
Notes The user will be prompted again for permissions that have been previously granted and then removed.
Notes It's not possible to request permissions from a popup or a sidebar document.
Aucun support 56 — 61
Notes
Notes It's not possible to request permissions from an options page that's embedded in about:addons. To request permissions from an options page, set the open_in_tab property in the options_ui manifest key, so the options page opens in its own tab.

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Voir les notes d'implémentation.
Voir les notes d'implémentation.

Exemples

Ce code ajoute un gestionnaire de clics qui demande diverses permissions, puis enregistre le résultat de la demande et les permissions de l'extension une fois la requête terminée.

const permissionsToRequest = {
  permissions: ["bookmarks", "history"],
  origins: ["https://developer.mozilla.org/"]
}

function requestPermissions() {

  function onResponse(response) {
    if (response) {
      console.log("Permission was granted");
    } else {
      console.log("Permission was refused");
    }
    return browser.permissions.getAll();  
  }

  browser.permissions.request(permissionsToRequest)
    .then(onResponse)
    .then((currentPermissions) => {
    console.log(`Current permissions:`, currentPermissions);
  });
}

document.querySelector("#request").addEventListener("click", requestPermissions);

Example extensions

Remerciements :

Actuellement un bug avec la demande d'origines et la demande des permissions sur la page about:addons.

Cette API est basée sur l'API Chromium chrome.permissions.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.

Étiquettes et contributeurs liés au document

Contributeurs à cette page : hellosct1
Dernière mise à jour par : hellosct1,