How can I enable my chrome extension in incognito mode?

Solution 1:

It's not possible to automatically activate incognito mode for Chrome extensions.

Instead of letting the user figure out where the option can be found, just instruct the user to put a check on the checkbox at the extension.

  • To detect whether incognito is enabled, use the chrome.extension.isAllowedIncognitoAccess method.
  • After showing the instructons to the user, use chrome.tabs.create or chrome.tabs.update to open chrome://extensions/?id=YOUR EXTENSION ID HERE. The extension ID can be read programatically through the chrome.runtime.id property. Chrome recognizes the id query parameter and highlights the specified extension in the list of extensions, as seen in the next picture (notice the gray background):

In terms of code:

chrome.extension.isAllowedIncognitoAccess(function(isAllowedAccess) {
    if (isAllowedAccess) return; // Great, we've got access

    // alert for a quick demonstration, please create your own user-friendly UI
    alert('Please allow incognito mode in the following screen.');

    chrome.tabs.create({
        url: 'chrome://extensions/?id=' + chrome.runtime.id
    });
});

Solution 2:

Users may manually enable specific extensions in incognito mode by visiting the extensions settings page.

  • Chrome menu
  • Settings
  • Extensions (on left side navigation bar)
  • Check "Allow in incognito" next to the individual extension to be enabled.

See Manage your extensions in Chrome help.