optional_permissions

Type Array
Mandatory No
Example

"optional_permissions": [
  "*://developer.mozilla.org/*",
  "webRequest"
]

Use the optional_permissions key to list permissions which you want to ask for at runtime, after your extension has been installed.

While the permissions key lists permissions which your extension needs if it is to be installed at all, optional_permissions lists permissions which your extension doesn't need at install time, but which it might need to ask for at runtime at some point after it has been installed. To ask for a permission, use the permissions API. Asking for a permission will probably present the user with a dialog asking them to grant the permission to your extension.

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
  • 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

ChromeEdgeFirefoxFirefox for AndroidOpera
Basic support Yes No5555 Yes
activeTab No No5555 No
background Yes No No No Yes
bookmarks Yes No55 No Yes
browserSettings No No5757 No
clipboardRead Yes No5555 Yes
clipboardWrite Yes No5555 Yes
contentSettings Yes No No No Yes
contextMenus Yes No No No Yes
cookies Yes No5555 Yes
debugger Yes No No No Yes
downloads No No6060 No
downloads.open No No6060 No
find No No57 No No
geolocation No No5555 No
history Yes No55 No Yes
idle Yes No5555 Yes
management Yes No No No Yes
notifications Yes No5555 Yes
pageCapture Yes No No No Yes
tabs Yes No5555 Yes
topSites Yes No5555 Yes
webNavigation Yes No5555 Yes
webRequest Yes No5555 Yes
webRequestBlocking Yes No5555 Yes

Document Tags and Contributors

Contributors to this page: glacambre, wbamberg, aswan, stoically, andrewtruongmoz
Last updated by: glacambre,