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é 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.
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.