| <h1 id="incognito">Manifest - Incognito</h1> |
| |
| <p> |
| Use the <code>"incognito"</code> manifest key with either |
| <code>"spanning"</code> or <code>"split"</code> to specify how this |
| {{platform}} will behave if allowed to run in incognito mode. |
| </p> |
| |
| <p> |
| Only extensions can choose. Apps will always use the default value for the app |
| type; <code>"spanning"</code> for Chrome apps and <code>"split"</code> for |
| installable web and legacy packaged apps. |
| </p> |
| |
| <h2 id="spanning">Spanning mode</h2> |
| <p> |
| The default for extensions and Chrome apps is <code>"spanning"</code>, which |
| means that it will run in a single shared process. Any events or messages from |
| an incognito tab will be sent to the shared process, with an <em>incognito</em> |
| flag indicating where it came from. Because incognito tabs cannot use this |
| shared process, an extension using the <code>"spanning"</code> incognito mode |
| will not be able to load pages from its extension package into the main frame |
| of an incognito tab. |
| </p> |
| |
| <h2 id="split">Split mode</h2> |
| <p> |
| The default for installable web apps and legacy packaged apps is |
| <code>"split"</code>, which means that all app pages in an incognito window |
| will run in their own incognito process. If the app or extension contains a |
| background page, that will also run in the incognito process. This incognito |
| process runs along side the regular process, but has a separate memory-only |
| cookie store. Each process sees events and messages only from its own context |
| (for example, the incognito process will see only incognito tab updates). The |
| processes are unable to communicate with each other. |
| </p> |
| |
| <h2 id="how-to-choose">How to choose</h2> |
| <p> |
| As a rule of thumb, if your extension or app needs to load a tab in an |
| incognito browser, use <em>split</em> incognito behavior. If your extension or |
| app needs to be logged into a remote server use <em>spanning</em> incognito |
| behavior. |
| </p> |
| |
| <p> |
| <a href="/{{platform}}s/storage.html#property-sync">chrome.storage.sync</a> and |
| <a href="/{{platform}}s/storage.html#property-local">chrome.storage.local</a> |
| are <em>always</em> shared between regular and incognito processes. It is |
| recommended to use them for persisting your {{platform}}'s settings. |
| </p> |