ChromeBrowserAction class
class ChromeBrowserAction extends ChromeApi {
static final JsObject _browserAction = chrome['browserAction'];
ChromeBrowserAction._();
bool get available => _browserAction != null;
/**
* Sets the title of the browser action. This shows up in the tooltip.
*/
void setTitle(BrowserActionSetTitleParams details) {
if (_browserAction == null) _throwNotAvailable();
_browserAction.callMethod('setTitle', [jsify(details)]);
}
/**
* Gets the title of the browser action.
*/
Future<String> getTitle(BrowserActionGetTitleParams details) {
if (_browserAction == null) _throwNotAvailable();
var completer = new ChromeCompleter<String>.oneArg();
_browserAction.callMethod('getTitle', [jsify(details), completer.callback]);
return completer.future;
}
/**
* Sets the icon for the browser action. The icon can be specified either as
* the path to an image file or as the pixel data from a canvas element, or as
* dictionary of either one of those. Either the <b>path</b> or the
* <b>imageData</b> property must be specified.
*/
Future setIcon(BrowserActionSetIconParams details) {
if (_browserAction == null) _throwNotAvailable();
var completer = new ChromeCompleter.noArgs();
_browserAction.callMethod('setIcon', [jsify(details), completer.callback]);
return completer.future;
}
/**
* Sets the html document to be opened as a popup when the user clicks on the
* browser action's icon.
*/
void setPopup(BrowserActionSetPopupParams details) {
if (_browserAction == null) _throwNotAvailable();
_browserAction.callMethod('setPopup', [jsify(details)]);
}
/**
* Gets the html document set as the popup for this browser action.
*/
Future<String> getPopup(BrowserActionGetPopupParams details) {
if (_browserAction == null) _throwNotAvailable();
var completer = new ChromeCompleter<String>.oneArg();
_browserAction.callMethod('getPopup', [jsify(details), completer.callback]);
return completer.future;
}
/**
* Sets the badge text for the browser action. The badge is displayed on top
* of the icon.
*/
void setBadgeText(BrowserActionSetBadgeTextParams details) {
if (_browserAction == null) _throwNotAvailable();
_browserAction.callMethod('setBadgeText', [jsify(details)]);
}
/**
* Gets the badge text of the browser action. If no tab is specified, the
* non-tab-specific badge text is returned.
*/
Future<String> getBadgeText(BrowserActionGetBadgeTextParams details) {
if (_browserAction == null) _throwNotAvailable();
var completer = new ChromeCompleter<String>.oneArg();
_browserAction.callMethod('getBadgeText', [jsify(details), completer.callback]);
return completer.future;
}
/**
* Sets the background color for the badge.
*/
void setBadgeBackgroundColor(BrowserActionSetBadgeBackgroundColorParams details) {
if (_browserAction == null) _throwNotAvailable();
_browserAction.callMethod('setBadgeBackgroundColor', [jsify(details)]);
}
/**
* Gets the background color of the browser action.
*/
Future<ColorArray> getBadgeBackgroundColor(BrowserActionGetBadgeBackgroundColorParams details) {
if (_browserAction == null) _throwNotAvailable();
var completer = new ChromeCompleter<ColorArray>.oneArg(_createColorArray);
_browserAction.callMethod('getBadgeBackgroundColor', [jsify(details), completer.callback]);
return completer.future;
}
/**
* Enables the browser action for a tab. By default, browser actions are
* enabled.
*
* [tabId] The id of the tab for which you want to modify the browser action.
*/
void enable([int tabId]) {
if (_browserAction == null) _throwNotAvailable();
_browserAction.callMethod('enable', [tabId]);
}
/**
* Disables the browser action for a tab.
*
* [tabId] The id of the tab for which you want to modify the browser action.
*/
void disable([int tabId]) {
if (_browserAction == null) _throwNotAvailable();
_browserAction.callMethod('disable', [tabId]);
}
/**
* Opens the extension popup window in the active window but does not grant
* tab permissions.
*
* Returns:
* JavaScript 'window' object for the popup window if it was succesfully
* opened.
*/
Future<Map<String, dynamic>> openPopup() {
if (_browserAction == null) _throwNotAvailable();
var completer = new ChromeCompleter<Map<String, dynamic>>.oneArg(mapify);
_browserAction.callMethod('openPopup', [completer.callback]);
return completer.future;
}
/**
* Fired when a browser action icon is clicked. This event will not fire if
* the browser action has a popup.
*/
Stream<Tab> get onClicked => _onClicked.stream;
final ChromeStreamController<Tab> _onClicked =
new ChromeStreamController<Tab>.oneArg(_browserAction, 'onClicked', _createTab);
void _throwNotAvailable() {
throw new UnsupportedError("'chrome.browserAction' is not available");
}
}
Extends
ChromeApi > ChromeBrowserAction
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
bool get available => _browserAction != null;
Methods
void disable([int tabId]) #
Disables the browser action for a tab.
tabId The id of the tab for which you want to modify the browser action.
void disable([int tabId]) {
if (_browserAction == null) _throwNotAvailable();
_browserAction.callMethod('disable', [tabId]);
}
void enable([int tabId]) #
Enables the browser action for a tab. By default, browser actions are enabled.
tabId The id of the tab for which you want to modify the browser action.
void enable([int tabId]) {
if (_browserAction == null) _throwNotAvailable();
_browserAction.callMethod('enable', [tabId]);
}
Future<ColorArray> getBadgeBackgroundColor(BrowserActionGetBadgeBackgroundColorParams details) #
Gets the background color of the browser action.
Future<ColorArray> getBadgeBackgroundColor(BrowserActionGetBadgeBackgroundColorParams details) {
if (_browserAction == null) _throwNotAvailable();
var completer = new ChromeCompleter<ColorArray>.oneArg(_createColorArray);
_browserAction.callMethod('getBadgeBackgroundColor', [jsify(details), completer.callback]);
return completer.future;
}
Future<String> getBadgeText(BrowserActionGetBadgeTextParams details) #
Gets the badge text of the browser action. If no tab is specified, the non-tab-specific badge text is returned.
Future<String> getBadgeText(BrowserActionGetBadgeTextParams details) {
if (_browserAction == null) _throwNotAvailable();
var completer = new ChromeCompleter<String>.oneArg();
_browserAction.callMethod('getBadgeText', [jsify(details), completer.callback]);
return completer.future;
}
Future<String> getPopup(BrowserActionGetPopupParams details) #
Gets the html document set as the popup for this browser action.
Future<String> getPopup(BrowserActionGetPopupParams details) {
if (_browserAction == null) _throwNotAvailable();
var completer = new ChromeCompleter<String>.oneArg();
_browserAction.callMethod('getPopup', [jsify(details), completer.callback]);
return completer.future;
}
Future<String> getTitle(BrowserActionGetTitleParams details) #
Gets the title of the browser action.
Future<String> getTitle(BrowserActionGetTitleParams details) {
if (_browserAction == null) _throwNotAvailable();
var completer = new ChromeCompleter<String>.oneArg();
_browserAction.callMethod('getTitle', [jsify(details), completer.callback]);
return completer.future;
}
Future<Map<String, dynamic>> openPopup() #
Opens the extension popup window in the active window but does not grant tab permissions.
Returns: JavaScript 'window' object for the popup window if it was succesfully opened.
Future<Map<String, dynamic>> openPopup() {
if (_browserAction == null) _throwNotAvailable();
var completer = new ChromeCompleter<Map<String, dynamic>>.oneArg(mapify);
_browserAction.callMethod('openPopup', [completer.callback]);
return completer.future;
}
void setBadgeBackgroundColor(BrowserActionSetBadgeBackgroundColorParams details) #
Sets the background color for the badge.
void setBadgeBackgroundColor(BrowserActionSetBadgeBackgroundColorParams details) {
if (_browserAction == null) _throwNotAvailable();
_browserAction.callMethod('setBadgeBackgroundColor', [jsify(details)]);
}
void setBadgeText(BrowserActionSetBadgeTextParams details) #
Sets the badge text for the browser action. The badge is displayed on top of the icon.
void setBadgeText(BrowserActionSetBadgeTextParams details) {
if (_browserAction == null) _throwNotAvailable();
_browserAction.callMethod('setBadgeText', [jsify(details)]);
}
Future setIcon(BrowserActionSetIconParams details) #
Sets the icon for the browser action. The icon can be specified either as the path to an image file or as the pixel data from a canvas element, or as dictionary of either one of those. Either the <b>path</b> or the <b>imageData</b> property must be specified.
Future setIcon(BrowserActionSetIconParams details) {
if (_browserAction == null) _throwNotAvailable();
var completer = new ChromeCompleter.noArgs();
_browserAction.callMethod('setIcon', [jsify(details), completer.callback]);
return completer.future;
}
void setPopup(BrowserActionSetPopupParams details) #
Sets the html document to be opened as a popup when the user clicks on the browser action's icon.
void setPopup(BrowserActionSetPopupParams details) {
if (_browserAction == null) _throwNotAvailable();
_browserAction.callMethod('setPopup', [jsify(details)]);
}
void setTitle(BrowserActionSetTitleParams details) #
Sets the title of the browser action. This shows up in the tooltip.
void setTitle(BrowserActionSetTitleParams details) {
if (_browserAction == null) _throwNotAvailable();
_browserAction.callMethod('setTitle', [jsify(details)]);
}