If you specify a popup, it will be shown — and the content will be loaded — when the user clicks the icon. If you do not specify a popup, then when the user clicks the icon an event is dispatched to your extension.
You can define most of a browser action's properties declaratively using the browser_action key in the manifest.json.
With the browserAction API, you can:
- use
browserAction.onClickedto listen for clicks on the icon. - get and set the icon's properties — icon, title, popup, and so on. You can get and set these globally across all tabs, or for a specific tab by passing the tab ID as an additional argument.
See also the section on browser actions in User interface components.
Types
browserAction.ColorArray- An array of four integers in the range 0-255 defining an RGBA color.
browserAction.ImageDataType- Pixel data for an image. Must be an
ImageDataobject (for example, from a<canvas>element).
Functions
browserAction.setTitle()- Sets the browser action's title. This will be displayed in a tooltip.
browserAction.getTitle()- Gets the browser action's title.
browserAction.setIcon()- Sets the browser action's icon.
browserAction.setPopup()- Sets the HTML document to be opened as a popup when the user clicks on the browser action's icon.
browserAction.getPopup()- Gets the HTML document set as the browser action's popup.
browserAction.setBadgeText()- Sets the browser action's badge text. The badge is displayed on top of the icon.
browserAction.getBadgeText()- Gets the browser action's badge text.
browserAction.setBadgeBackgroundColor()- Sets the badge's background color.
browserAction.getBadgeBackgroundColor()- Gets the badge's background color.
browserAction.enable()- Enables the browser action for a tab. By default, browser actions are enabled for all tabs.
browserAction.disable()- Disables the browser action for a tab, meaning that it cannot be clicked when that tab is active.
Events
browserAction.onClicked- Fired when a browser action icon is clicked. This event will not fire if the browser action has a popup.
Browser compatibility
| Chrome | Edge | Firefox | Firefox for Android | Opera | |
|---|---|---|---|---|---|
ColorArray |
Yes | Yes | 45.0 | No | 33 |
ImageDataType |
Yes | Yes | 45.0 | No | 33 |
disable |
Yes | Yes | 45.0 | No | 33 |
enable |
Yes | Yes | 45.0 | No | 33 |
getBadgeBackgroundColor |
Yes | Yes | 45.0 | No | 33 |
getBadgeText |
Yes | Yes | 45.0 | No | 33 |
getPopup |
Yes | No | 45.0 | No | 33 |
getTitle |
Yes | No | 45.0 | No | 33 |
onClicked |
Yes | Yes | 45.0 | No | 33 |
setBadgeBackgroundColor |
Yes | Yes | 45.0 | No | 33 |
setBadgeText |
Yes | Yes | 45.0 | No | 33 |
setIcon |
Yes | Yes | 45.0 | No | 33 |
setPopup |
Yes | Yes | 45.0 | No | 33 |
setTitle |
Yes | No | 45.0 | No | 33 |
The "Chrome incompatibilities" section is included from https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Chrome_incompatibilities using the WebExtChromeCompat macro.
If you need to update this content, edit https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Chrome_incompatibilities, then shift-refresh this page to see your changes.
Edge incompatibilities
Promises are not supported in Edge. Use callbacks instead.
Chrome incompatibilities
None.
Example add-ons
This API is based on Chromium's chrome.browserAction API. This documentation is derived from browser_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.
// Copyright 2015 The Chromium Authors. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.