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

Unified Diff: chrome/browser/resources/options2/content_settings.js

Issue 8895023: Options2: Pull the trigger. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: DIAF. Created 9 years 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/options2/content_settings.js
diff --git a/chrome/browser/resources/options2/content_settings.js b/chrome/browser/resources/options2/content_settings.js
new file mode 100644
index 0000000000000000000000000000000000000000..94faa90440dfb93af95225ceab410cbc3d36ae53
--- /dev/null
+++ b/chrome/browser/resources/options2/content_settings.js
@@ -0,0 +1,154 @@
+// Copyright (c) 2011 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() {
+
+ var OptionsPage = options.OptionsPage;
+
+ //////////////////////////////////////////////////////////////////////////////
+ // ContentSettings class:
+
+ /**
+ * Encapsulated handling of content settings page.
+ * @constructor
+ */
+ function ContentSettings() {
+ this.activeNavTab = null;
+ OptionsPage.call(this, 'content', templateData.contentSettingsPageTabTitle,
+ 'content-settings-page');
+ }
+
+ cr.addSingletonGetter(ContentSettings);
+
+ ContentSettings.prototype = {
+ __proto__: OptionsPage.prototype,
+
+ initializePage: function() {
+ OptionsPage.prototype.initializePage.call(this);
+
+ chrome.send('getContentFilterSettings');
+
+ var exceptionsButtons =
+ this.pageDiv.querySelectorAll('.exceptions-list-button');
+ for (var i = 0; i < exceptionsButtons.length; i++) {
+ exceptionsButtons[i].onclick = function(event) {
+ var page = ContentSettingsExceptionsArea.getInstance();
+ page.showList(
+ event.target.getAttribute('contentType'));
+ OptionsPage.navigateToPage('contentExceptions');
+ // Add on the proper hash for the content type, and store that in the
+ // history so back/forward and tab restore works.
+ var hash = event.target.getAttribute('contentType');
+ window.history.replaceState({pageName: page.name}, page.title,
+ '/' + page.name + "#" + hash);
+ };
+ }
+
+ var manageHandlersButton = $('manage-handlers-button');
+ if (manageHandlersButton) {
+ manageHandlersButton.onclick = function(event) {
+ OptionsPage.navigateToPage('handlers');
+ };
+ }
+
+ var manageIntentsButton = $('manage-intents-button');
+ if (manageIntentsButton) {
+ manageIntentsButton.onclick = function(event) {
+ OptionsPage.navigateToPage('intents');
+ };
+ }
+
+ // Cookies filter page ---------------------------------------------------
+ $('show-cookies-button').onclick = function(event) {
+ chrome.send('coreOptionsUserMetricsAction', ['Options_ShowCookies']);
+ OptionsPage.navigateToPage('cookies');
+ };
+
+ if (!templateData.enable_click_to_play)
+ $('click_to_play').hidden = true;
+
+ if (!templateData.enable_web_intents && $('intent-section'))
+ $('intent-section').hidden = true;
+ },
+ };
+
+ ContentSettings.updateHandlersEnabledRadios = function(enabled) {
+ var selector = '#content-settings-page input[type=radio][value=' +
+ (enabled ? 'allow' : 'block') + '].handler-radio';
+ document.querySelector(selector).checked = true;
+ };
+
+ /**
+ * Sets the values for all the content settings radios.
+ * @param {Object} dict A mapping from radio groups to the checked value for
+ * that group.
+ */
+ ContentSettings.setContentFilterSettingsValue = function(dict) {
+ for (var group in dict) {
+ document.querySelector('input[type=radio][name=' + group + '][value=' +
+ dict[group]['value'] + ']').checked = true;
+ var radios = document.querySelectorAll('input[type=radio][name=' +
+ group + ']');
+ var managedBy = dict[group]['managedBy'];
+ for (var i = 0, len = radios.length; i < len; i++) {
+ radios[i].disabled = (managedBy != 'default');
+ radios[i].controlledBy = managedBy;
+ }
+ }
+ OptionsPage.updateManagedBannerVisibility();
+ };
+
+ /**
+ * Initializes an exceptions list.
+ * @param {string} type The content type that we are setting exceptions for.
+ * @param {Array} list An array of pairs, where the first element of each pair
+ * is the filter string, and the second is the setting (allow/block).
+ */
+ ContentSettings.setExceptions = function(type, list) {
+ var exceptionsList =
+ document.querySelector('div[contentType=' + type + ']' +
+ ' list[mode=normal]');
+ exceptionsList.setExceptions(list);
+ };
+
+ ContentSettings.setHandlers = function(list) {
+ $('handlers-list').setHandlers(list);
+ };
+
+ ContentSettings.setIgnoredHandlers = function(list) {
+ $('ignored-handlers-list').setHandlers(list);
+ };
+
+ ContentSettings.setOTRExceptions = function(type, list) {
+ var exceptionsList =
+ document.querySelector('div[contentType=' + type + ']' +
+ ' list[mode=otr]');
+
+ exceptionsList.parentNode.hidden = false;
+ exceptionsList.setExceptions(list);
+ };
+
+ /**
+ * The browser's response to a request to check the validity of a given URL
+ * pattern.
+ * @param {string} type The content type.
+ * @param {string} mode The browser mode.
+ * @param {string} pattern The pattern.
+ * @param {bool} valid Whether said pattern is valid in the context of
+ * a content exception setting.
+ */
+ ContentSettings.patternValidityCheckComplete =
+ function(type, mode, pattern, valid) {
+ var exceptionsList =
+ document.querySelector('div[contentType=' + type + '] ' +
+ 'list[mode=' + mode + ']');
+ exceptionsList.patternValidityCheckComplete(pattern, valid);
+ };
+
+ // Export
+ return {
+ ContentSettings: ContentSettings
+ };
+
+});

Powered by Google App Engine
This is Rietveld 408576698