optional_permissions
Type | Array |
---|---|
Mandatory | No |
Example |
|
Use the optional_permissions
key to list permissions that you want to ask for at runtime, after your extension has been installed.
The permissions
key lists permissions that your extension needs before it can be installed. In contrast, optional_permissions
lists permissions that your extension doesn't need at install time but it may ask for after it has been installed. To ask for a permission, use the permissions
API. Asking for a permission may present the user with a dialog requesting them to grant the permission to your extension.
For advice on designing your request for runtime permissions, to maximize the likelihood that users grant them, see Request permissions at runtime.
Starting with Firefox 84, users will be able to manage optional permissions from the Firefox Add-ons Manager. Extensions that use optional permissions should listen for browser.permissions.onAdded and browser.permissions.onRemoved API events to know when a user grants or revokes these permissions.
The key can contain two kinds of permissions: host permissions and API permissions.
Host permissions
These are the same as the host permissions you can specify in the permissions
key.
API permissions
You can include any of the following here, but not in all browsers: check the compatibility table for browser-specific details.
activeTab
background
bookmarks
browserSettings
clipboardRead
clipboardWrite
contentSettings
contextMenus
cookies
debugger
downloads
downloads.open
find
geolocation
history
idle
management
notifications
pageCapture
privacy
tabHide
tabs
topSites
webNavigation
webRequest
webRequestBlocking
Note that this is a subset of the API permissions allowed in permissions
.
Of this set, the following permissions are granted silently, without a user prompt: activeTab
, cookies
, idle
, webRequest
, webRequestBlocking
.
Example
"optional_permissions": ["*://developer.mozilla.org/*"]
Enable the extension to ask for privileged access to pages under developer.mozilla.org.
"optional_permissions": ["tabs"]
Enable the extension to ask for access to the privileged pieces of the tabs
API.
"optional_permissions": ["*://developer.mozilla.org/*", "tabs"]
Enable the extension to ask for both of the above permissions.
Browser compatibility
Report problems with this compatibility data on GitHubwebextensions-desktop | webextensions-mobile | |||||
---|---|---|---|---|---|---|
optional_permissions | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support55 | OperaFull supportYes | SafariFull support14 | Firefox for AndroidFull support55 |
activeTab | ChromeNo supportNo | EdgeNo supportNo | FirefoxFull support55 | OperaNo supportNo | SafariFull support14 | Firefox for AndroidFull support55 |
background | ChromeFull supportYes | EdgeFull support79 | FirefoxNo supportNo | OperaFull supportYes | SafariNo supportNo | Firefox for AndroidNo supportNo |
bookmarks | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support55 | OperaFull supportYes | SafariNo supportNo | Firefox for AndroidNo supportNo |
browserSettings | ChromeNo supportNo | EdgeNo supportNo | FirefoxFull support57 | OperaNo supportNo | SafariNo supportNo | Firefox for AndroidFull support57 |
browsingData | ChromeNo supportNo | EdgeNo supportNo | FirefoxFull support77 | OperaNo supportNo | SafariNo supportNo | Firefox for AndroidNo supportNo |
clipboardRead | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support55 | OperaFull supportYes | SafariNo supportNo | Firefox for AndroidFull support55 |
clipboardWrite | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support55 | OperaFull supportYes | SafariFull support14 | Firefox for AndroidFull support55 |
contentSettings | ChromeFull supportYes | EdgeFull support79 | FirefoxNo supportNo | OperaFull supportYes | SafariNo supportNo | Firefox for AndroidNo supportNo |
contextMenus | ChromeFull supportYes | EdgeFull support79 | FirefoxNo supportNo | OperaFull supportYes | SafariFull support14 | Firefox for AndroidNo supportNo |
cookies | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support55 | OperaFull supportYes | SafariFull support14 | Firefox for AndroidFull support55 |
debugger | ChromeFull supportYes | EdgeFull support79 | FirefoxNo supportNo | OperaFull supportYes | SafariNo supportNo | Firefox for AndroidNo supportNo |
downloads | ChromeNo supportNo | EdgeNo supportNo | FirefoxFull support60 | OperaNo supportNo | SafariNo supportNo | Firefox for AndroidFull support60 |
downloads.open | ChromeNo supportNo | EdgeNo supportNo | FirefoxFull support60 | OperaNo supportNo | SafariNo supportNo | Firefox for AndroidFull support60 |
find | ChromeNo supportNo | EdgeNo supportNo | FirefoxFull support57 | OperaNo supportNo | SafariNo supportNo | Firefox for AndroidNo supportNo |
geolocation | ChromeNo supportNo | EdgeNo supportNo | FirefoxFull support55 | OperaNo supportNo | SafariNo supportNo | Firefox for AndroidFull support55 |
history | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support55 | OperaFull supportYes | SafariNo supportNo | Firefox for AndroidNo supportNo |
idle | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support55 | OperaFull supportYes | SafariNo supportNo | Firefox for AndroidFull support55 |
management | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support77 | OperaFull supportYes | SafariNo supportNo | Firefox for AndroidNo supportNo |
notifications | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support55 | OperaFull supportYes | SafariNo supportNo | Firefox for AndroidFull support55 |
pageCapture | ChromeFull supportYes | EdgeFull support79 | FirefoxNo supportNo | OperaFull supportYes | SafariNo supportNo | Firefox for AndroidNo supportNo |
pkcs11 | ChromeNo supportNo | EdgeNo supportNo | FirefoxFull support77 | OperaNo supportNo | SafariNo supportNo | Firefox for AndroidNo supportNo |
privacy | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support75 | OperaFull supportYes | SafariNo supportNo | Firefox for AndroidNo supportNo |
proxy | ChromeNo supportNo | EdgeNo supportNo | FirefoxFull support77 | OperaNo supportNo | SafariNo supportNo | Firefox for AndroidNo supportNo |
sessions | ChromeNo supportNo | EdgeNo supportNo | FirefoxFull support77 | OperaNo supportNo | SafariNo supportNo | Firefox for AndroidNo supportNo |
tabHide | ChromeNo supportNo | EdgeNo supportNo | FirefoxFull support61 | OperaNo supportNo | SafariNo supportNo | Firefox for AndroidNo supportNo |
tabs | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support55 | OperaFull supportYes | SafariFull support14 | Firefox for AndroidFull support55 |
topSites | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support55 | OperaFull supportYes | SafariNo supportNo | Firefox for AndroidFull support55 |
webNavigation | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support55 | OperaFull supportYes | SafariFull support14 | Firefox for AndroidFull support55 |
webRequest | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support55 | OperaFull supportYes | SafariFull support14 | Firefox for AndroidFull support55 |
webRequestBlocking | ChromeFull supportYes | EdgeFull support79 | FirefoxFull support55 | OperaFull supportYes | SafariNo supportNo | Firefox for AndroidFull support55 |
Legend
- Full support
- Full support
- No support
- No support