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

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

Paramètres

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é des navigateurs

BCD tables only load in the browser

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.

js
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

Note :

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.