pageAction.setIcon()

Sets the icon for the page action. The icon can be specified as any of:

  • The path to an image file
  • The pixel data from a <canvas> element.
  • A dictionary of either one of those, enabling you to supply the icon in multiple sizes (see below for more details).

Syntax

chrome.pageAction.setIcon(
  details,         // object
  function() {...} // optional function
)

This API is also available as browser.pageAction.setIcon() in a version that returns a promise.

Parameters

details
object. The details object has the following properties:
tabId
integer. The ID of the tab whose icon you want to set.
imageDataOptional
An pageAction.ImageDataType object or a dictionary containing multiple entries, with each entry representing an icon of a particular size. The key is the size of the icon, and the value is an ImageData object of that size. For example:
{
  19: image_data_19,
  38: image_data_38
}
The image used is chosen depending on the screen's pixel density. "19" is used in normal-density screens, and "38" is used in high-density screens.
pathOptional
A string representing a relative image path to the icon or a dictionary object of the structure {size : relative image path}, with each entry representing an icon of a particular size. The key is the size of the icon, and the value is a path to an image file of that size. For example:
{
  19: "path/to/image_19.png",
  38: "path/to/image_38.png"
}
The image used is chosen depending on the screen's pixel density. "19" is used in normal-density screens, and "38" is used in high-density screens.
callbackOptional
A function, called with no arguments once the icon has been set.

Browser compatibility

Chrome Edge Firefox Firefox for Android Opera
Basic support Yes Yes 45.0 No 33

Compatibility notes

Edge

  • ImageData is not supported.

Examples

Set the icon for the page action when the user clicks it:

chrome.pageAction.onClicked.addListener((tab) => {
  chrome.pageAction.setIcon({
    tabId: tab.id, path: "icons/page-48.png"
  });
});

Acknowledgements

This API is based on Chromium's chrome.pageAction API. This documentation is derived from page_action.json in the Chromium code.

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

Document Tags and Contributors

 Contributors to this page: Makyen, chrisdavidmills, wbamberg
 Last updated by: Makyen,