summaryrefslogtreecommitdiffstats
path: root/chrome/browser/resources
diff options
context:
space:
mode:
authormpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-25 22:10:50 +0000
committermpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-25 22:10:50 +0000
commitdb7331aecb1f0c01aecf4cd4627d08a8d5b08bc2 (patch)
tree5a33fc21cb1628462f9e365add27aeaf058d60fc /chrome/browser/resources
parentf56abff188b90b7f2d67a094930d7d9407df507d (diff)
downloadchromium_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.html34
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)"