Sets the browser action's title. The title is displayed in a tooltip over the browser action's icon. You can pass a tabId in or a windowId as an optional parameter — if you do this then the title is changed only for the given tab or the given window. Tabs or windows without a specific title will inherit the global title text, which defaults to the default_title or name specified in the manifest.


  details // object



object. The new title and optionally the ID of the tab or window to target.


string or null. The string the browser action should display when moused over.

If title is an empty string, the used title will be the extension name, but browserAction.getTitle will still provide the empty string.

If title is null:

  • If tabId is specified, and the tab has a tab-specific title set, then the tab will inherit the title from the window to which it belongs.
  • if windowId is specified, and the window has a window-specific title set, then the window will inherit the global title.
  • Otherwise, the global title will be reset to the manifest title.
tabId Optional

integer. Sets the title only for the given tab.

windowId Optional

integer. Sets the title for the given window.

  • If windowId and tabId are both supplied, the function fails and the title is not set.
  • If windowId and tabId are both omitted, the global title is set.

Browser compatibility

BCD tables only load in the browser


This code switches the title between "this" and "that" each time the user clicks the browser action:

function toggleTitle(title) {
  if (title === "this") {
    browser.browserAction.setTitle({ title: "that" });
  } else {
    browser.browserAction.setTitle({ title: "this" });

browser.browserAction.onClicked.addListener(() => {
  let gettingTitle = browser.browserAction.getTitle({});

Example extensions

Note: This API is based on Chromium's chrome.browserAction API. This documentation is derived from browser_action.json in the Chromium code.