Remote Permissions
The remote permission service offers a simple way to set default permissions through remote settings. For a general introduction to the permission system, see the permission manager documentation.
This mechanism is only meant to be used in combination with permissions that
control exceptions for web compatibility. For example, remote permissions are
used to set permissions of type https-only-load-insecure
, allowing
HTTPS-First exceptions to be set through remote settings if a site is known to
be broken with HTTPS-First. A bad example of remote permission would be using
them to set permissions of the type uitour
. Permissions of that type grant
sites access to a set of special APIs. These kinds of permissions should be set
directly in source at browser/app/permissions.
To limit the types of permissions that are allowed to be set through remote settings, the permission types that are allowed to be set through remote permissions are specified in-source. Both updating this allowlist, and adding new remote permissions requires a review.
Implementing an exception list with remote permissions
If you want to set up a new site exception list for your feature with remote permissions, you can roughly follow these steps:
If it doesn’t exist already: Choose a new permission type and set up code that checks for that permission type (for example, using the permission manager’s testExactPermissionFromPrincipal method).
File bug in Core :: Permission Manager and attach a patch updating
ALLOWED_PERMISSION_VALUES
in extensions/permissions/RemotePermissionService.sys.mjs to include your new permission.For each change to your specific remote permissions, open a bug blocking the bug you filed in the step above to request your changes to be added to remote settings
(Optional) If you expect to regularly make updates to the remote permission collection, you can also file a bug in Infrastructure & Operations :: Corporate VPN: ACL requests requesting direct access to the remote settings admin UI and the
remote-permissions
collection. With that, you can request your changes directly in the remote settings admin UI. For transparency reasons, we still ask you though to document the changes you make in the bug you filed in step 2.