Path: blob/main/files/en-us/mozilla/add-ons/webextensions/api/permissions/request/index.md
6552 views
------{{AddonSidebar()}}
Ask for the set of permissions listed in the given {{WebExtAPIRef("permissions.Permissions")}} object.
The Permissions argument may contain either an origins property, which is an array of host permissions, or a permissions property, which is an array of API permissions, or both. Permissions must come from the set of permissions defined in the optional_permissions manifest.json key. The origins property may include permissions that match a subset of the hosts matched by an optional permission: for example, if optional_permissions include "*😕/mozilla.org/", then permissions.origins may include "https://developer.mozilla.org/".
The request can only be made inside the handler for a user action.
Depending on a circumstances, the browser will probably handle the request by asking the user whether to grant the requested permissions. Only a single request is made for all requested permissions: thus either all permissions are granted or none of them are.
Any permissions granted are retained by the extension, even over upgrade and disable/enable cycling.
This is an asynchronous function that returns a Promise.
Syntax
Parameters
permissions: A {{WebExtAPIRef("permissions.Permissions")}} object.
Return value
A Promise that is fulfilled with true if the extension is now granted all the permissions listed in the permissions argument, or false otherwise.
Browser compatibility
{{Compat}}
Examples
This code adds a click handler that asks for various permissions, then logs the result of the request and the extension's permissions after the request completed.
{{WebExtExamples}}
Note: Currently has a bug with requesting origins and requesting permissions on the about:addons page.
Note: This API is based on Chromium's
chrome.permissionsAPI.