Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2217)

Unified Diff: chrome/browser/resources/options/extension_list.js

Issue 9814030: get rid of old options pages (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more fixes Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/options/extension_list.js
diff --git a/chrome/browser/resources/options/extension_list.js b/chrome/browser/resources/options/extension_list.js
deleted file mode 100644
index d674c47b034fda0e96ca39701eddae325f57946c..0000000000000000000000000000000000000000
--- a/chrome/browser/resources/options/extension_list.js
+++ /dev/null
@@ -1,773 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-cr.define('options', function() {
- 'use strict';
-
- /**
- * A lookup helper function to find the first node that has an id (starting
- * at |node| and going up the parent chain).
- * @param {Element} node The node to start looking at.
- */
- function findIdNode(node) {
- while (node && !node.id) {
- node = node.parentNode;
- }
- return node;
- }
-
- /**
- * Creates a new list of extensions.
- * @param {Object=} opt_propertyBag Optional properties.
- * @constructor
- * @extends {cr.ui.div}
- */
- var ExtensionsList = cr.ui.define('div');
-
- var handlersInstalled = false;
-
- /**
- * @type {Object.<string, boolean>} A map from extension id to a boolean
- * indicating whether its details section is expanded. This persists
- * between calls to decorate.
- */
- var showingDetails = {};
-
- /**
- * @type {Object.<string, boolean>} A map from extension id to a boolean
- * indicating whether the incognito warning is showing. This persists
- * between calls to decorate.
- */
- var showingWarning = {};
-
- ExtensionsList.prototype = {
- __proto__: HTMLDivElement.prototype,
-
- /** @inheritDoc */
- decorate: function() {
- this.initControlsAndHandlers_();
-
- this.deleteExistingExtensionNodes_();
-
- this.showExtensionNodes_();
- },
-
- /**
- * Initializes the controls (toggle section and button) and installs
- * handlers.
- * @private
- */
- initControlsAndHandlers_: function() {
- // Make sure developer mode section is set correctly as per saved setting.
- var toggleButton = $('toggle-dev-on');
- var toggleSection = $('dev');
- if (this.data_.developerMode) {
- toggleSection.classList.add('dev-open');
- toggleSection.classList.remove('dev-closed');
- toggleButton.checked = true;
- } else {
- toggleSection.classList.remove('dev-open');
- toggleSection.classList.add('dev-closed');
- }
-
- // Instal global event handlers.
- if (!handlersInstalled) {
- var searchPage = SearchPage.getInstance();
- searchPage.addEventListener('searchChanged',
- this.searchChangedHandler_.bind(this));
-
- // Support full keyboard accessibility without making things ugly
- // for users who click, by hiding some focus outlines when the user
- // clicks anywhere, but showing them when the user presses any key.
- this.ownerDocument.body.classList.add('hide-some-focus-outlines');
- this.ownerDocument.addEventListener('click', (function(e) {
- this.ownerDocument.body.classList.add('hide-some-focus-outlines');
- return true;
- }).bind(this), true);
- this.ownerDocument.addEventListener('keydown', (function(e) {
- this.ownerDocument.body.classList.remove('hide-some-focus-outlines');
- return true;
- }).bind(this), true);
-
- handlersInstalled = true;
- }
- },
-
- /**
- * Deletes the existing Extension nodes from the page to make room for new
- * ones.
- * @private
- */
- deleteExistingExtensionNodes_: function() {
- while (this.hasChildNodes()){
- this.removeChild(this.firstChild);
- }
- },
-
- /**
- * Handles decorating the details section.
- * @param {Element} details The div that the details should be attached to.
- * @param {Object} extension The extension we are showing the details for.
- * @private
- */
- showExtensionNodes_: function() {
- // Iterate over the extension data and add each item to the list.
- for (var i = 0; i < this.data_.extensions.length; i++) {
- var extension = this.data_.extensions[i];
- var id = extension.id;
-
- var wrapper = this.ownerDocument.createElement('div');
-
- var expanded = showingDetails[id];
- var butterbar = showingWarning[id];
-
- wrapper.classList.add(expanded ? 'extension-list-item-expanded' :
- 'extension-list-item-collaped');
- if (!extension.enabled)
- wrapper.classList.add('disabled');
- wrapper.id = id;
- this.appendChild(wrapper);
-
- var vboxOuter = this.ownerDocument.createElement('div');
- vboxOuter.classList.add('vbox');
- vboxOuter.classList.add('extension-list-item');
- wrapper.appendChild(vboxOuter);
-
- var hbox = this.ownerDocument.createElement('div');
- hbox.classList.add('hbox');
- vboxOuter.appendChild(hbox);
-
- // Add a container div for the zippy, so we can extend the hit area.
- var container = this.ownerDocument.createElement('div');
- // Clicking anywhere on the div expands/collapses the details.
- container.classList.add('extension-zippy-container');
- container.title = expanded ?
- localStrings.getString('extensionSettingsHideDetails') :
- localStrings.getString('extensionSettingsShowDetails');
- container.tabIndex = 0;
- container.setAttribute('role', 'button');
- container.setAttribute('aria-controls', extension.id + '_details');
- container.setAttribute('aria-expanded', expanded);
- container.addEventListener('click', this.handleZippyClick_.bind(this));
- container.addEventListener('keydown',
- this.handleZippyKeyDown_.bind(this));
- hbox.appendChild(container);
-
- // On the far left we have the zippy icon.
- var div = this.ownerDocument.createElement('div');
- div.id = id + '_zippy';
- div.classList.add('extension-zippy-default');
- div.classList.add(expanded ? 'extension-zippy-expanded' :
- 'extension-zippy-collapsed');
- container.appendChild(div);
-
- // Next to it, we have the extension icon.
- var icon = this.ownerDocument.createElement('img');
- icon.classList.add('extension-icon');
- icon.src = extension.icon;
- hbox.appendChild(icon);
-
- // Start a vertical box for showing the details.
- var vbox = this.ownerDocument.createElement('div');
- vbox.classList.add('vbox');
- vbox.classList.add('stretch');
- vbox.classList.add('details-view');
- hbox.appendChild(vbox);
-
- div = this.ownerDocument.createElement('div');
- vbox.appendChild(div);
-
- // Title comes next.
- var title = this.ownerDocument.createElement('span');
- title.classList.add('extension-title');
- title.textContent = extension.name;
- vbox.appendChild(title);
-
- // Followed by version.
- var version = this.ownerDocument.createElement('span');
- version.classList.add('extension-version');
- version.textContent = extension.version;
- vbox.appendChild(version);
-
- // And the additional info label (unpacked/crashed).
- if (extension.terminated || extension.isUnpacked) {
- var version = this.ownerDocument.createElement('span');
- version.classList.add('extension-version');
- version.textContent = extension.terminated ?
- localStrings.getString('extensionSettingsCrashMessage') :
- localStrings.getString('extensionSettingsInDevelopment');
- vbox.appendChild(version);
- }
-
- div = this.ownerDocument.createElement('div');
- vbox.appendChild(div);
-
- // And below that we have description (if provided).
- if (extension.description.length > 0) {
- var description = this.ownerDocument.createElement('span');
- description.classList.add('extension-description');
- description.textContent = extension.description;
- vbox.appendChild(description);
- }
-
- // Immediately following the description, we have the
- // Options link (optional).
- if (extension.options_url) {
- var link = this.ownerDocument.createElement('a');
- link.classList.add('extension-links-trailing');
- link.textContent = localStrings.getString('extensionSettingsOptions');
- link.href = '#';
- link.addEventListener('click', this.handleOptions_.bind(this));
- vbox.appendChild(link);
- }
-
- if (extension.allow_activity) {
- var link = this.ownerDocument.createElement('a');
- link.classList.add('extension-links-trailing');
- link.textContent =
- localStrings.getString('extensionSettingsActivity');
- link.href = 'chrome://extension-activity?extensionId=' + extension.id;
- vbox.appendChild(link);
- }
-
- // Then the optional Visit Website link.
- if (extension.homepageUrl) {
- var link = this.ownerDocument.createElement('a');
- link.classList.add('extension-links-trailing');
- link.textContent =
- localStrings.getString('extensionSettingsVisitWebsite');
- link.href = extension.homepageUrl;
- vbox.appendChild(link);
- }
-
- if (extension.warnings.length > 0) {
- var warningsDiv = this.ownerDocument.createElement('div');
- warningsDiv.classList.add('extension-warnings');
-
- var warningsHeader = this.ownerDocument.createElement('span');
- warningsHeader.classList.add('extension-warnings-title');
- warningsHeader.textContent =
- localStrings.getString('extensionSettingsWarningsTitle');
- warningsDiv.appendChild(warningsHeader);
-
- var warningList = this.ownerDocument.createElement('ul');
- for (var j = 0; j < extension.warnings.length; ++j) {
- var warningEntry = this.ownerDocument.createElement('li');
- warningEntry.textContent = extension.warnings[j];
- warningList.appendChild(warningEntry);
- }
- warningsDiv.appendChild(warningList);
-
- vbox.appendChild(warningsDiv);
- }
-
- // And now the details section that is normally hidden.
- var details = this.ownerDocument.createElement('div');
- details.classList.add('vbox');
- vbox.appendChild(details);
-
- this.decorateDetailsSection_(details, extension, expanded, butterbar);
-
- // And on the right of the details we have the Enable/Enabled checkbox.
- div = this.ownerDocument.createElement('div');
- hbox.appendChild(div);
-
- var section = this.ownerDocument.createElement('section');
- section.classList.add('extension-enabling');
- div.appendChild(section);
-
- if (!extension.terminated) {
- // The Enable checkbox.
- var input = this.ownerDocument.createElement('input');
- input.addEventListener('click', this.handleEnable_.bind(this));
- input.type = 'checkbox';
- input.name = 'toggle-' + id;
- input.disabled = !extension.mayDisable;
- if (extension.enabled)
- input.checked = true;
- input.id = 'toggle-' + id;
- section.appendChild(input);
- var label = this.ownerDocument.createElement('label');
- label.classList.add('extension-enabling-label');
- if (extension.enabled)
- label.classList.add('extension-enabling-label-bold');
- label.htmlFor = 'toggle-' + id;
- label.id = 'toggle-' + id + '-label';
- if (extension.enabled) {
- // Enabled (with a d).
- label.textContent =
- localStrings.getString('extensionSettingsEnabled');
- } else {
- // Enable (no d).
- label.textContent =
- localStrings.getString('extensionSettingsEnable');
- }
- section.appendChild(label);
- } else {
- // Extension has been terminated, show a Reload link.
- var link = this.ownerDocument.createElement('a');
- link.classList.add('extension-links-trailing');
- link.id = extension.id;
- link.textContent =
- localStrings.getString('extensionSettingsReload');
- link.href = '#';
- link.addEventListener('click', this.handleReload_.bind(this));
- section.appendChild(link);
- }
-
- // And, on the far right we have the uninstall button.
- var button = this.ownerDocument.createElement('button');
- button.classList.add('extension-delete');
- button.id = id;
- if (!extension.mayDisable)
- button.disabled = true;
- button.textContent = localStrings.getString('extensionSettingsRemove');
- button.addEventListener('click', this.handleUninstall_.bind(this));
- hbox.appendChild(button);
- }
-
- // Do one pass to find what the size of the checkboxes should be.
- var minCheckboxWidth = Infinity;
- var maxCheckboxWidth = 0;
- for (var i = 0; i < this.data_.extensions.length; ++i) {
- var label = $('toggle-' + this.data_.extensions[i].id + '-label');
- if (label.offsetWidth > maxCheckboxWidth)
- maxCheckboxWidth = label.offsetWidth;
- if (label.offsetWidth < minCheckboxWidth)
- minCheckboxWidth = label.offsetWidth;
- }
-
- // Do another pass, making sure checkboxes line up.
- var difference = maxCheckboxWidth - minCheckboxWidth;
- for (var i = 0; i < this.data_.extensions.length; ++i) {
- var label = $('toggle-' + this.data_.extensions[i].id + '-label');
- if (label.offsetWidth < maxCheckboxWidth)
- label.style.WebkitMarginEnd = difference.toString() + 'px';
- }
- },
-
- /**
- * Handles decorating the details section.
- * @param {Element} details The div that the details should be attached to.
- * @param {Object} extension The extension we are shoting the details for.
- * @param {boolean} expanded Whether to show the details expanded or not.
- * @param {boolean} showButterbar Whether to show the incognito warning or
- * not.
- * @private
- */
- decorateDetailsSection_: function(details, extension,
- expanded, showButterbar) {
- // This container div is needed because vbox display
- // overrides display:hidden.
- var detailsContents = this.ownerDocument.createElement('div');
- detailsContents.classList.add(expanded ? 'extension-details-visible' :
- 'extension-details-hidden');
- detailsContents.id = extension.id + '_details';
- details.appendChild(detailsContents);
-
- var div = this.ownerDocument.createElement('div');
- div.classList.add('informative-text');
- detailsContents.appendChild(div);
-
- // Keep track of how many items we'll show in the details section.
- var itemsShown = 0;
-
- if (this.data_.developerMode) {
- // First we have the id.
- var content = this.ownerDocument.createElement('div');
- content.textContent =
- localStrings.getString('extensionSettingsExtensionId') +
- ' ' + extension.id;
- div.appendChild(content);
- itemsShown++;
-
- // Then, the path, if provided by unpacked extension.
- if (extension.isUnpacked) {
- content = this.ownerDocument.createElement('div');
- content.textContent =
- localStrings.getString('extensionSettingsExtensionPath') +
- ' ' + extension.path;
- div.appendChild(content);
- itemsShown++;
- }
-
- // Then, the 'managed, cannot uninstall/disable' message.
- if (!extension.mayDisable) {
- content = this.ownerDocument.createElement('div');
- content.textContent =
- localStrings.getString('extensionSettingsPolicyControlled');
- div.appendChild(content);
- itemsShown++;
- }
-
- // Then active views:
- if (extension.views.length > 0) {
- var table = this.ownerDocument.createElement('table');
- table.classList.add('extension-inspect-table');
- div.appendChild(table);
- var tr = this.ownerDocument.createElement('tr');
- table.appendChild(tr);
- var td = this.ownerDocument.createElement('td');
- td.classList.add('extension-inspect-left-column');
- tr.appendChild(td);
- var span = this.ownerDocument.createElement('span');
- td.appendChild(span);
- span.textContent =
- localStrings.getString('extensionSettingsInspectViews');
-
- td = this.ownerDocument.createElement('td');
- for (var i = 0; i < extension.views.length; ++i) {
- // Then active views:
- content = this.ownerDocument.createElement('div');
- var link = this.ownerDocument.createElement('a');
- link.classList.add('extension-links-view');
- link.textContent = extension.views[i].path;
- link.id = extension.id;
- link.href = '#';
- link.addEventListener('click', this.sendInspectMessage_.bind(this));
- content.appendChild(link);
-
- if (extension.views[i].incognito) {
- var incognito = this.ownerDocument.createElement('span');
- incognito.classList.add('extension-links-view');
- incognito.textContent =
- localStrings.getString('viewIncognito');
- content.appendChild(incognito);
- }
-
- td.appendChild(content);
- tr.appendChild(td);
-
- itemsShown++;
- }
- }
- }
-
- var content = this.ownerDocument.createElement('div');
- detailsContents.appendChild(content);
-
- // Then Reload:
- if (extension.enabled && extension.allow_reload) {
- this.addLinkTo_(content,
- localStrings.getString('extensionSettingsReload'),
- extension.id,
- this.handleReload_.bind(this));
- itemsShown++;
- }
-
- // Then Show (Browser Action) Button:
- if (extension.enabled && extension.enable_show_button) {
- this.addLinkTo_(content,
- localStrings.getString('extensionSettingsShowButton'),
- extension.id,
- this.handleShowButton_.bind(this));
- itemsShown++;
- }
-
- if (extension.enabled) {
- // The 'allow in incognito' checkbox.
- var label = this.ownerDocument.createElement('label');
- label.classList.add('extension-checkbox-label');
- content.appendChild(label);
- var input = this.ownerDocument.createElement('input');
- input.addEventListener('click',
- this.handleToggleEnableIncognito_.bind(this));
- input.id = extension.id;
- input.type = 'checkbox';
- if (extension.enabledIncognito)
- input.checked = true;
- label.appendChild(input);
- var span = this.ownerDocument.createElement('span');
- span.classList.add('extension-checkbox-span');
- span.textContent =
- localStrings.getString('extensionSettingsEnableIncognito');
- label.appendChild(span);
- itemsShown++;
- }
-
- if (extension.enabled && extension.wantsFileAccess) {
- // The 'allow access to file URLs' checkbox.
- label = this.ownerDocument.createElement('label');
- label.classList.add('extension-checkbox-label');
- content.appendChild(label);
- var input = this.ownerDocument.createElement('input');
- input.addEventListener('click',
- this.handleToggleAllowFileUrls_.bind(this));
- input.id = extension.id;
- input.type = 'checkbox';
- if (extension.allowFileAccess)
- input.checked = true;
- label.appendChild(input);
- var span = this.ownerDocument.createElement('span');
- span.classList.add('extension-checkbox-span');
- span.textContent =
- localStrings.getString('extensionSettingsAllowFileAccess');
- label.appendChild(span);
- itemsShown++;
- }
-
- if (extension.enabled && !extension.is_hosted_app) {
- // And add a hidden warning message for allowInIncognito.
- content = this.ownerDocument.createElement('div');
- content.id = extension.id + '_incognitoWarning';
- content.classList.add('butter-bar');
- content.hidden = !showButterbar;
- detailsContents.appendChild(content);
-
- var span = this.ownerDocument.createElement('span');
- span.innerHTML =
- localStrings.getString('extensionSettingsIncognitoWarning');
- content.appendChild(span);
- itemsShown++;
- }
-
- var zippy = extension.id + '_zippy';
- $(zippy).hidden = !itemsShown;
-
- // If this isn't expanded now, make sure the newly-added controls
- // are not part of the tab order.
- if (!expanded) {
- var detailsControls = details.querySelectorAll('a, input');
- for (var i = 0; i < detailsControls.length; i++)
- detailsControls[i].tabIndex = -1;
- }
- },
-
- /**
- * A helper function to add contextual actions for extensions (action links)
- * to the page.
- */
- addLinkTo_: function(parent, linkText, id, handler) {
- var link = this.ownerDocument.createElement('a');
- link.className = 'extension-links-trailing';
- link.textContent = linkText;
- link.id = id;
- link.href = '#';
- link.addEventListener('click', handler);
- parent.appendChild(link);
- },
-
- /**
- * A lookup helper function to find an extension based on an id.
- * @param {string} id The |id| of the extension to look up.
- * @private
- */
- getExtensionWithId_: function(id) {
- for (var i = 0; i < this.data_.extensions.length; ++i) {
- if (this.data_.extensions[i].id == id)
- return this.data_.extensions[i];
- }
- return null;
- },
-
- /**
- * Handles a key down on the zippy icon.
- * @param {Event} e Key event.
- * @private
- */
- handleZippyKeyDown_: function(e) {
- if (e.keyCode == 13 || e.keyCode == 32) // Enter or Space.
- this.handleZippyClick_(e);
- },
-
- /**
- * Handles the mouseclick on the zippy icon (that expands and collapses the
- * details section).
- * @param {Event} e Mouse event.
- * @private
- */
- handleZippyClick_: function(e) {
- var node = findIdNode(e.target.parentNode);
- var iter = this.firstChild;
- while (iter) {
- var zippy = $(iter.id + '_zippy');
- var details = $(iter.id + '_details');
- var container = zippy.parentElement;
- if (iter.id == node.id) {
- // Toggle visibility.
- if (iter.classList.contains('extension-list-item-expanded')) {
- // Hide yo kids! Hide yo wife!
- showingDetails[iter.id] = false;
- zippy.classList.remove('extension-zippy-expanded');
- zippy.classList.add('extension-zippy-collapsed');
- details.classList.remove('extension-details-visible');
- details.classList.add('extension-details-hidden');
- iter.classList.remove('extension-list-item-expanded');
- iter.classList.add('extension-list-item-collaped');
- container.setAttribute('aria-expanded', 'false');
- container.title =
- localStrings.getString('extensionSettingsShowDetails');
- var detailsControls = details.querySelectorAll('a, input');
- for (var i = 0; i < detailsControls.length; i++)
- detailsControls[i].tabIndex = -1;
-
- // Hide yo incognito warning.
- var butterBar =
- this.querySelector('#' + iter.id + '_incognitoWarning');
- if (butterBar !== null) {
- butterBar.hidden = true;
- showingWarning[iter.id] = false;
- }
- } else {
- // Show the contents.
- showingDetails[iter.id] = true;
- zippy.classList.remove('extension-zippy-collapsed');
- zippy.classList.add('extension-zippy-expanded');
- details.classList.remove('extension-details-hidden');
- details.classList.add('extension-details-visible');
- iter.classList.remove('extension-list-item-collaped');
- iter.classList.add('extension-list-item-expanded');
- container.setAttribute('aria-expanded', 'true');
- container.title =
- localStrings.getString('extensionSettingsHideDetails');
- var detailsControls = details.querySelectorAll('a, input');
- for (var i = 0; i < detailsControls.length; i++)
- detailsControls[i].tabIndex = 0;
- }
- }
- iter = iter.nextSibling;
- }
- },
-
- /**
- * Handles the 'searchChanged' event. This is used to limit the number of
- * items to show in the list, when the user is searching for items with the
- * search box. Otherwise, if one match is found, the whole list of
- * extensions would be shown when we only want the matching items to be
- * found.
- * @param {Event} e Change event.
- * @private
- */
- searchChangedHandler_: function(e) {
- var searchString = e.searchText;
- var child = this.firstChild;
- while (child) {
- var extension = this.getExtensionWithId_(child.id);
- if (searchString.length == 0) {
- // Show all.
- child.classList.remove('search-suppress');
- } else {
- // If the search string does not appear within the text of the
- // extension, then hide it.
- if ((extension.name.toLowerCase().indexOf(searchString) < 0) &&
- (extension.version.toLowerCase().indexOf(searchString) < 0) &&
- (extension.description.toLowerCase().indexOf(searchString) < 0)) {
- // Hide yo extension!
- child.classList.add('search-suppress');
- } else {
- // Show yourself!
- child.classList.remove('search-suppress');
- }
- }
- child = child.nextSibling;
- }
- },
-
- /**
- * Handles the Reload Extension functionality.
- * @param {Event} e Change event.
- * @private
- */
- handleReload_: function(e) {
- var node = findIdNode(e.target);
- chrome.send('extensionSettingsReload', [node.id]);
- },
-
- /**
- * Handles the Show (Browser Action) Button functionality.
- * @param {Event} e Change event.
- * @private
- */
- handleShowButton_: function(e) {
- var node = findIdNode(e.target);
- chrome.send('extensionSettingsShowButton', [node.id]);
- },
-
- /**
- * Handles the Enable/Disable Extension functionality.
- * @param {Event} e Change event.
- * @private
- */
- handleEnable_: function(e) {
- var node = findIdNode(e.target.parentNode);
- var extension = this.getExtensionWithId_(node.id);
- chrome.send('extensionSettingsEnable',
- [node.id, extension.enabled ? 'false' : 'true']);
- chrome.send('extensionSettingsRequestExtensionsData');
- },
-
- /**
- * Handles the Uninstall Extension functionality.
- * @param {Event} e Change event.
- * @private
- */
- handleUninstall_: function(e) {
- var node = findIdNode(e.target.parentNode);
- chrome.send('extensionSettingsUninstall', [node.id]);
- chrome.send('extensionSettingsRequestExtensionsData');
- },
-
- /**
- * Handles the View Options link.
- * @param {Event} e Change event.
- * @private
- */
- handleOptions_: function(e) {
- var node = findIdNode(e.target.parentNode);
- var extension = this.getExtensionWithId_(node.id);
- chrome.send('extensionSettingsOptions', [extension.id]);
- e.preventDefault();
- },
-
- /**
- * Handles the Enable Extension In Incognito functionality.
- * @param {Event} e Change event.
- * @private
- */
- handleToggleEnableIncognito_: function(e) {
- var node = findIdNode(e.target);
- var butterBar = document.getElementById(node.id + '_incognitoWarning');
- butterBar.hidden = !e.target.checked;
- showingWarning[node.id] = e.target.checked;
- chrome.send('extensionSettingsEnableIncognito',
- [node.id, String(e.target.checked)]);
- },
-
- /**
- * Handles the Allow On File URLs functionality.
- * @param {Event} e Change event.
- * @private
- */
- handleToggleAllowFileUrls_: function(e) {
- var node = findIdNode(e.target);
- chrome.send('extensionSettingsAllowFileAccess',
- [node.id, String(e.target.checked)]);
- },
-
- /**
- * Tell the C++ ExtensionDOMHandler to inspect the page detailed in
- * |viewData|.
- * @param {Event} e Change event.
- * @private
- */
- sendInspectMessage_: function(e) {
- var extension = this.getExtensionWithId_(e.srcElement.id);
- for (var i = 0; i < extension.views.length; ++i) {
- if (extension.views[i].path == e.srcElement.innerText) {
- // TODO(aa): This is ghetto, but WebUIBindings doesn't support sending
- // anything other than arrays of strings, and this is all going to get
- // replaced with V8 extensions soon anyway.
- chrome.send('extensionSettingsInspect', [
- String(extension.views[i].renderProcessId),
- String(extension.views[i].renderViewId)
- ]);
- }
- }
- },
- };
-
- return {
- ExtensionsList: ExtensionsList
- };
-});

Powered by Google App Engine
This is Rietveld 408576698