We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

Type String
Mandatory No
"incognito": "spanning"
"incognito": "split"
"incognito": "not_allowed"

Use the incognito key to control how the extension works with private browsing windows.

This is a string which may take any of the following values:

  • "spanning" (the default): the extension will see events from private and non-private windows and tabs. Windows and tabs will get an incognito property in the Window or Tab that represents them. This property indicates whether or not the object is private:

    browser.windows.getLastFocused().then((windowInfo) => {
      console.log(`Window is private: ${windowInfo.incognito}`);
  • "split": the extension will be split between private and non-private windows. There are effectively two copies of the extension running: one sees only non-private windows, the other sees only private windows. Each copy has isolated access to Web APIs (so, for example, localStorage is not shared). However, the WebExtension API storage.local is shared.
  • "not_allowed": private tabs and windows are invisible to the extension.


"incognito": "spanning"
"incognito": "split"
"incognito": "not_allowed"

Browser compatibility

ChromeEdgeFirefoxFirefox for AndroidOpera
Basic support Yes No4848 Yes
split Yes17 No No Yes
not_allowed Yes17 No No Yes

Document Tags and Contributors

Contributors to this page: wbamberg, hellosct1, andrewtruongmoz, Brettz9
Last updated by: wbamberg,