diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-25 22:10:50 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-25 22:10:50 +0000 |
commit | db7331aecb1f0c01aecf4cd4627d08a8d5b08bc2 (patch) | |
tree | 5a33fc21cb1628462f9e365add27aeaf058d60fc /chrome/browser/resources | |
parent | f56abff188b90b7f2d67a094930d7d9407df507d (diff) | |
download | chromium_src-db7331aecb1f0c01aecf4cd4627d08a8d5b08bc2.zip chromium_src-db7331aecb1f0c01aecf4cd4627d08a8d5b08bc2.tar.gz chromium_src-db7331aecb1f0c01aecf4cd4627d08a8d5b08bc2.tar.bz2 |
Allow users to enable extensions in incognito. Requires
--enable-experimental-extension-apis . The UI needs work. Tab and window
events are hooked up so that they work with incognito tabs/windows when
enabled.
BUG=32365
BUG=36292
Review URL: http://codereview.chromium.org/657041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40057 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/resources')
-rw-r--r-- | chrome/browser/resources/extensions_ui.html | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/chrome/browser/resources/extensions_ui.html b/chrome/browser/resources/extensions_ui.html index 39a6956..465fdcc 100644 --- a/chrome/browser/resources/extensions_ui.html +++ b/chrome/browser/resources/extensions_ui.html @@ -349,6 +349,7 @@ var extensionDataFormat = { "description": "Extension long format description", "version": "1.0.231", "enabled": "true", + "enabledIncognito": "false", "allow_reload": true, "order": 1, "options_url": "options.html", @@ -388,6 +389,7 @@ var extensionDataFormat = { "description": "Extension long format description", "version": "1.0.231", "enabled": "true", + "enabledIncognito": "false", "allow_reload": false, "order": 2, "icon": "", @@ -427,6 +429,9 @@ function toggleDevModeExpanded() { chrome.send('toggleDeveloperMode', []); } +// Experimental flag that enables toggling an extension as incognito enabled. +var experimentalIncognito = false; + /** * Takes the |extensionsData| input argument which represents data about the * currently installed/running extensions and populates the html jstemplate with @@ -475,6 +480,7 @@ var rendered_once_ = false; function returnExtensionsData(extensionsData){ domui_responded_ = true; devModeExpanded = extensionsData.developerMode; + experimentalIncognito = extensionsData.experimentalIncognito; var bodyContainer = document.getElementById('body-container'); var body = document.getElementsByTagName('body')[0]; @@ -549,6 +555,19 @@ function handleEnableExtension(node, enable) { } /** + * Handles a 'enableIncognito' or 'disableIncognito' button getting clicked. + */ +function handleEnableExtensionIncognito(node, enable) { + // Tell the C++ ExtensionDOMHandler to reload the extension. + if (enable && !node.incognitoSafe) { + if (!confirm(templateData["enableIncognitoWarning"])) + return; + } + chrome.send('enableIncognito', [node.extensionId, String(enable)]); + requestExtensionsData(); +} + +/** * Handles an 'uninstall' button getting clicked. */ function handleUninstallExtension(node) { @@ -815,6 +834,21 @@ function autoUpdate() { >RELOAD</a> <span jsdisplay="enabled && allow_reload">-</span> <a + jsvalues=".extensionId:id;.enabled:enabled" + jsdisplay="enabled && enabledIncognito && experimentalIncognito" + onclick="handleEnableExtensionIncognito(this, false)" + href="javascript:void();" + i18n-content="disableIncognito" + >DISABLE INCOGNITO</a> + <a + jsvalues=".extensionId:id;.enabled=enabled" + jsdisplay="enabled && !enabledIncognito && experimentalIncognito" + onclick="handleEnableExtensionIncognito(this, true)" + href="javascript:void();" + i18n-content="enableIncognito" + >ENABLE INCOGNITO</a> + <span jsdisplay="enabled && experimentalIncognito">-</span> + <a jsvalues=".extensionId:id" jsdisplay="enabled" onclick="handleEnableExtension(this, false)" |