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

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

Issue 543983005: Add a dropdown to change the default content setting to the Website Settings page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix CrOS build error. Created 6 years, 3 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/website_settings.js
diff --git a/chrome/browser/resources/options/website_settings.js b/chrome/browser/resources/options/website_settings.js
index fb687b24f09f4777bbdb70bdc22146925b815add..4c909ac40cda7810fd42ee325e30ab3f4f21bbc9 100644
--- a/chrome/browser/resources/options/website_settings.js
+++ b/chrome/browser/resources/options/website_settings.js
@@ -7,6 +7,19 @@ cr.define('options', function() {
/** @const */ var PageManager = cr.ui.pageManager.PageManager;
/** @const */ var ArrayDataModel = cr.ui.ArrayDataModel;
+ // Lookup table to generate the i18n strings.
+ /** @const */ var permissionsLookup = {
+ 'geolocation': 'location',
+ 'notifications': 'notifications',
+ 'media-stream': 'mediaStream',
+ 'cookies': 'cookies',
+ 'multiple-automatic-downloads': 'multipleAutomaticDownloads',
+ 'images': 'images',
+ 'plugins': 'plugins',
+ 'popups': 'popups',
+ 'javascript': 'javascript'
+ };
+
/////////////////////////////////////////////////////////////////////////////
// WebsiteSettingsManager class:
@@ -52,6 +65,10 @@ cr.define('options', function() {
WebsiteSettingsManager.getInstance().updatePage_(target.value);
};
+ $('global-setting').onchange = function(event) {
+ chrome.send('setDefaultContentSetting', [this.value]);
+ };
+
var searchBox = $('website-settings-search-box');
searchBox.addEventListener('search',
this.handleSearchQueryChange_.bind(this));
@@ -170,6 +187,28 @@ cr.define('options', function() {
},
/**
+ * Sets the default content setting dropdown on the page to the current
+ * default.
+ * @param {!Object} dict A dictionary with the management and value of the
+ * default setting for the last selected content setting..
+ */
+ updateDefault: function(dict) {
+ // TODO(dhnishi): Remove duplicate default handling in the Content
+ // Settings page and here.
+ var managedBy = dict.managedBy;
+ var controlledBy = managedBy == 'policy' || managedBy == 'extension' ?
+ managedBy : null;
+ $('global-setting').disabled = (managedBy != 'default');
+
+ var options = $('global-setting').options;
+ for (var i = 0; i < options.length; i++) {
+ if (options[i].value == dict.value) {
+ options.selectedIndex = i;
+ }
+ }
+ },
+
+ /**
* Updates the page with the given content setting or resource name's
* information.
* @param {string} typeName The name of the content setting or resource.
@@ -181,6 +220,24 @@ cr.define('options', function() {
chrome.send('updateBatteryUsage');
else
chrome.send('updateOrigins', [typeName]);
+
+ var options = $('global-setting').options;
+ options.length = 0;
+ var permissionString = permissionsLookup[typeName];
+ var permissions = ['Allow', 'Ask', 'Block'];
+ for (var i = 0; i < permissions.length; i++) {
+ var valueId = permissionString + permissions[i];
+ if (loadTimeData.valueExists(valueId)) {
+ options.add(new Option(loadTimeData.getString(valueId),
+ permissions[i].toLowerCase()));
+ }
+ }
+ if (options.length == 0) {
+ $('website-settings-global-controls').hidden = true;
+ } else {
+ $('website-settings-global-controls').hidden = false;
+ chrome.send('updateDefaultSetting');
+ }
}
};
@@ -189,8 +246,8 @@ cr.define('options', function() {
blockedDict);
};
- WebsiteSettingsManager.showEditPage = function(url) {
- WebsiteSettingsEditor.getInstance().populatePage(url);
+ WebsiteSettingsManager.updateDefault = function(dict) {
+ WebsiteSettingsManager.getInstance().updateDefault(dict);
};
// Export
« no previous file with comments | « chrome/browser/resources/options/website_settings.html ('k') | chrome/browser/resources/options/website_settings_edit_page.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698