Ask for the set of permissions listed in the given 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.