Dart Documentationchrome.permissionsChromePermissions

ChromePermissions class

class ChromePermissions extends ChromeApi {
 static final JsObject _permissions = chrome['permissions'];

 ChromePermissions._();

 bool get available => _permissions != null;

 /**
  * Gets the extension's current set of permissions.
  * 
  * Returns:
  * The extension's active permissions.
  */
 Future<Permissions> getAll() {
   if (_permissions == null) _throwNotAvailable();

   var completer = new ChromeCompleter<Permissions>.oneArg(_createPermissions);
   _permissions.callMethod('getAll', [completer.callback]);
   return completer.future;
 }

 /**
  * Checks if the extension has the specified permissions.
  * 
  * Returns:
  * True if the extension has the specified permissions.
  */
 Future<bool> contains(Permissions permissions) {
   if (_permissions == null) _throwNotAvailable();

   var completer = new ChromeCompleter<bool>.oneArg();
   _permissions.callMethod('contains', [jsify(permissions), completer.callback]);
   return completer.future;
 }

 /**
  * Requests access to the specified permissions. These permissions must be
  * defined in the optional_permissions field of the manifest. If there are any
  * problems requesting the permissions, [runtime.lastError] will be set.
  * 
  * Returns:
  * True if the user granted the specified permissions.
  */
 Future<bool> request(Permissions permissions) {
   if (_permissions == null) _throwNotAvailable();

   var completer = new ChromeCompleter<bool>.oneArg();
   _permissions.callMethod('request', [jsify(permissions), completer.callback]);
   return completer.future;
 }

 /**
  * Removes access to the specified permissions. If there are any problems
  * removing the permissions, [runtime.lastError] will be set.
  * 
  * Returns:
  * True if the permissions were removed.
  */
 Future<bool> remove(Permissions permissions) {
   if (_permissions == null) _throwNotAvailable();

   var completer = new ChromeCompleter<bool>.oneArg();
   _permissions.callMethod('remove', [jsify(permissions), completer.callback]);
   return completer.future;
 }

 /**
  * Fired when the extension acquires new permissions.
  */
 Stream<Permissions> get onAdded => _onAdded.stream;

 final ChromeStreamController<Permissions> _onAdded =
     new ChromeStreamController<Permissions>.oneArg(_permissions, 'onAdded', _createPermissions);

 /**
  * Fired when access to permissions has been removed from the extension.
  */
 Stream<Permissions> get onRemoved => _onRemoved.stream;

 final ChromeStreamController<Permissions> _onRemoved =
     new ChromeStreamController<Permissions>.oneArg(_permissions, 'onRemoved', _createPermissions);

 void _throwNotAvailable() {
   throw new UnsupportedError("'chrome.permissions' is not available");
 }
}

Extends

ChromeApi > ChromePermissions

Properties

final bool available #

Returns true if the API is available. The common causes of an API not being avilable are:

  • a permission is missing in the application's manifest.json file
  • the API is defined on a newer version of Chrome then the current runtime
docs inherited from ChromeApi
bool get available => _permissions != null;

final Stream<Permissions> onAdded #

Fired when the extension acquires new permissions.

Stream<Permissions> get onAdded => _onAdded.stream;

final Stream<Permissions> onRemoved #

Fired when access to permissions has been removed from the extension.

Stream<Permissions> get onRemoved => _onRemoved.stream;

Methods

Future<bool> contains(Permissions permissions) #

Checks if the extension has the specified permissions.

Returns: True if the extension has the specified permissions.

Future<bool> contains(Permissions permissions) {
 if (_permissions == null) _throwNotAvailable();

 var completer = new ChromeCompleter<bool>.oneArg();
 _permissions.callMethod('contains', [jsify(permissions), completer.callback]);
 return completer.future;
}

Future<Permissions> getAll() #

Gets the extension's current set of permissions.

Returns: The extension's active permissions.

Future<Permissions> getAll() {
 if (_permissions == null) _throwNotAvailable();

 var completer = new ChromeCompleter<Permissions>.oneArg(_createPermissions);
 _permissions.callMethod('getAll', [completer.callback]);
 return completer.future;
}

Future<bool> remove(Permissions permissions) #

Removes access to the specified permissions. If there are any problems removing the permissions, runtime.lastError will be set.

Returns: True if the permissions were removed.

Future<bool> remove(Permissions permissions) {
 if (_permissions == null) _throwNotAvailable();

 var completer = new ChromeCompleter<bool>.oneArg();
 _permissions.callMethod('remove', [jsify(permissions), completer.callback]);
 return completer.future;
}

Future<bool> request(Permissions permissions) #

Requests access to the specified permissions. These permissions must be defined in the optional_permissions field of the manifest. If there are any problems requesting the permissions, runtime.lastError will be set.

Returns: True if the user granted the specified permissions.

Future<bool> request(Permissions permissions) {
 if (_permissions == null) _throwNotAvailable();

 var completer = new ChromeCompleter<bool>.oneArg();
 _permissions.callMethod('request', [jsify(permissions), completer.callback]);
 return completer.future;
}