A page action is a clickable icon inside the browser's address bar.

You can listen for clicks on the icon, or specify a popup that will open when the icon is clicked.

If you specify a popup, you can define its contents and behavior using HTML, CSS, and JavaScript, just like a normal web page. JavaScript running in the popup gets access to all the same WebExtension APIs as your background scripts.

You can define most of a page action's properties declaratively using the page_action key in your manifest.json, but can also redefine them programmatically using this API.

Page actions are for actions that are only relevant to particular pages. If your icon should always be available, use a browser action instead.


Pixel data for an image.

Shows the page action for a given tab.
Hides the page action for a given tab.
Sets the page action's title. This is displayed in a tooltip over the page action.
Gets the page action's title.
Sets the page action's icon.
Sets the URL for the page action's popup.
Gets the URL for the page action's popup.


Fired when a page action icon is clicked. This event will not fire if the page action has a popup.

Browser compatibility

Chrome Edge Firefox Firefox for Android Opera
ImageDataType Yes No 45.0 No 33
getPopup Yes Yes 45.0 50.0 * 33
getTitle Yes Yes 45.0 No 33
hide Yes Yes 45.0 50.0 * 33
onClicked Yes Yes 45.0 50.0 33
setIcon Yes Yes * 45.0 No 33
setPopup Yes Yes 45.0 50.0 * 33
setTitle Yes Yes 45.0 No 33
show Yes Yes 45.0 50.0 * 33

Edge incompatibilities

Promises are not supported in Edge. Use callbacks instead.

Example add-ons


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: wbamberg, abbycar, chrisdavidmills, kmaglione
 Last updated by: wbamberg,