Source code

Revision control

Copy as Markdown

Other Tools

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
interface nsIPrincipal;
/**
* Service to import default permissions from Remote Settings. Will be
* initialized by permission manager after it itself has completed its
* initialization, and will then import default permissions from Remote Settings
* asynchronously. This also means default permissions aren't guranteed to be
* available directly after startup.
*/
[scriptable, uuid(a4b1b3b1-b68a-4129-aa2f-eb086162a8c7)]
interface nsIRemotePermissionService : nsISupports {
/**
* Asynchonously import all default permissions from remote settings into
* the permission manager. Also, if not already done, set up remote settings
* event listener to keep remote permissions in sync.
*/
void init();
/**
* Promise that is resolved when the remote permission service has been
* fully initialized, meaning all intial permissions have been imported and
* the remote settings sync event listener has been set up. If any errors
* are encountered during inizialization, this promise will be rejected.
*/
readonly attribute Promise isInitialized;
/**
* Allowed permission types and values to be set through remote settings.
* See RemotePermissionService.sys.mjs for further documentation. Exposed
* only for testing purposes.
*/
attribute jsval testAllowedPermissionValues;
};
%{C++
#define NS_REMOTEPERMISSIONSERVICE_CONTRACTID "@mozilla.org/remote-permission-service;1"
%}