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

Side by Side 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: Rebased on https://codereview.chromium.org/547753004/ 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 cr.define('options', function() { 5 cr.define('options', function() {
6 /** @const */ var Page = cr.ui.pageManager.Page; 6 /** @const */ var Page = cr.ui.pageManager.Page;
7 /** @const */ var PageManager = cr.ui.pageManager.PageManager; 7 /** @const */ var PageManager = cr.ui.pageManager.PageManager;
8 /** @const */ var ArrayDataModel = cr.ui.ArrayDataModel; 8 /** @const */ var ArrayDataModel = cr.ui.ArrayDataModel;
9 9
10 ///////////////////////////////////////////////////////////////////////////// 10 /////////////////////////////////////////////////////////////////////////////
11 // WebsiteSettingsManager class: 11 // WebsiteSettingsManager class:
12 12
13 /** 13 /**
14 * Encapsulated handling of the website settings page. 14 * Encapsulated handling of the website settings page.
15 * @constructor 15 * @constructor
16 */ 16 */
17 function WebsiteSettingsManager() { 17 function WebsiteSettingsManager() {
18 Page.call(this, 'websiteSettings', 18 Page.call(this, 'websiteSettings',
19 loadTimeData.getString('websitesOptionsPageTabTitle'), 19 loadTimeData.getString('websitesOptionsPageTabTitle'),
20 'website-settings-page'); 20 'website-settings-page');
21
Bernhard Bauer 2014/09/09 08:56:21 Nit: remove one blank line.
Daniel Nishi 2014/09/09 16:11:56 Done.
22
23 // Lookup table to generate the i18n strings.
24 this.permissionsLookup = {
Bernhard Bauer 2014/09/09 08:56:21 This can probably be made a constant in a var scop
Daniel Nishi 2014/09/09 16:11:56 Done.
25 'geolocation': 'location_',
26 'notifications': 'notifications_',
27 'media-stream': 'mediaStream',
28 'cookies': 'cookies_',
29 'multiple-automatic-downloads': 'multiple-automatic-downloads_',
30 'images': 'images_',
31 'plugins': 'plugins_',
32 'popups': 'popups_',
33 'javascript': 'javascript_'
34 };
21 } 35 }
22 36
23 cr.addSingletonGetter(WebsiteSettingsManager); 37 cr.addSingletonGetter(WebsiteSettingsManager);
24 38
25 WebsiteSettingsManager.prototype = { 39 WebsiteSettingsManager.prototype = {
26 __proto__: Page.prototype, 40 __proto__: Page.prototype,
27 41
28 /** 42 /**
29 * The saved allowed origins list. 43 * The saved allowed origins list.
30 * @type {OriginList} 44 * @type {OriginList}
(...skipping 14 matching lines...) Expand all
45 59
46 $('website-settings-overlay-confirm').onclick = 60 $('website-settings-overlay-confirm').onclick =
47 PageManager.closeOverlay.bind(PageManager); 61 PageManager.closeOverlay.bind(PageManager);
48 62
49 $('resourceType').onchange = function(event) { 63 $('resourceType').onchange = function(event) {
50 var target = event.target; 64 var target = event.target;
51 assert(target.tagName == 'SELECT'); 65 assert(target.tagName == 'SELECT');
52 WebsiteSettingsManager.getInstance().updatePage_(target.value); 66 WebsiteSettingsManager.getInstance().updatePage_(target.value);
53 }; 67 };
54 68
69 $('global-setting').onchange = function(event) {
70 chrome.send('setDefaultContentSetting', [this.value]);
71 };
72
55 var searchBox = $('website-settings-search-box'); 73 var searchBox = $('website-settings-search-box');
56 searchBox.addEventListener('search', 74 searchBox.addEventListener('search',
57 this.handleSearchQueryChange_.bind(this)); 75 this.handleSearchQueryChange_.bind(this));
58 76
59 searchBox.onkeydown = function(e) { 77 searchBox.onkeydown = function(e) {
60 if (e.keyIdentifier == 'Enter') 78 if (e.keyIdentifier == 'Enter')
61 e.preventDefault(); 79 e.preventDefault();
62 }; 80 };
63 81
64 this.createOriginsList_(); 82 this.createOriginsList_();
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 */ 185 */
168 handleSearchQueryChange_: function(e) { 186 handleSearchQueryChange_: function(e) {
169 if (this.queryDelayTimerId_) 187 if (this.queryDelayTimerId_)
170 window.clearTimeout(this.queryDelayTimerId_); 188 window.clearTimeout(this.queryDelayTimerId_);
171 189
172 this.queryDelayTimerId_ = window.setTimeout(this.searchOrigins.bind(this), 190 this.queryDelayTimerId_ = window.setTimeout(this.searchOrigins.bind(this),
173 160); 191 160);
174 }, 192 },
175 193
176 /** 194 /**
195 * Sets the default content setting dropdown on the page to the current
196 * default.
197 * @param {!Object} dict A dictionary with the management and value of the
198 * default setting for the last selected content setting..
199 */
200 updateDefault: function(dict) {
201 // TODO(dhnishi): Remove duplicate default handling in the Content
202 // Settings page and here.
203 var managedBy = dict.managedBy;
204 var controlledBy = managedBy == 'policy' || managedBy == 'extension' ?
205 managedBy : null;
206 $('global-setting').disabled = (managedBy != 'default');
207
208 var options = $('global-setting').options;
209 for (var i = 0; i < options.length; i++) {
210 if (options[i].value == dict.value) {
211 options.selectedIndex = i;
212 }
213 }
214 },
215
216 /**
177 * Updates the page with the given content setting or resource name's 217 * Updates the page with the given content setting or resource name's
178 * information. 218 * information.
179 * @param {string} typeName The name of the content setting or resource. 219 * @param {string} typeName The name of the content setting or resource.
180 */ 220 */
181 updatePage_: function(typeName) { 221 updatePage_: function(typeName) {
182 if (typeName == 'storage') 222 if (typeName == 'storage')
183 chrome.send('updateLocalStorage'); 223 chrome.send('updateLocalStorage');
184 else if (typeName == 'battery') 224 else if (typeName == 'battery')
185 chrome.send('updateBatteryUsage'); 225 chrome.send('updateBatteryUsage');
186 else 226 else
187 chrome.send('updateOrigins', [typeName]); 227 chrome.send('updateOrigins', [typeName]);
228
229 var permissions = ['allow', 'ask', 'block'];
230 if (typeName == 'media-stream') {
231 permissions = ['Allow', 'Ask', 'Block'];
Bernhard Bauer 2014/09/09 08:56:21 I would rather fix this up in ContentSettingsHandl
Daniel Nishi 2014/09/09 16:11:56 I converted over the Content Setting permission st
232 }
233
234 var options = $('global-setting').options;
235 options.length = 0;
236 var permissionString =
237 this.permissionsLookup[typeName];
238 for (var i = 0; i < permissions.length; i++) {
239 var valueId = permissionString + permissions[i];
240 if (loadTimeData.valueExists(valueId)) {
241 var loadString = loadTimeData.getString(valueId);
242 if (loadString != '')
Bernhard Bauer 2014/09/09 08:56:21 Do you actually need this check?
Daniel Nishi 2014/09/09 16:11:56 Nope. Removed.
243 options.add(new Option(loadTimeData.getString(valueId),
Bernhard Bauer 2014/09/09 08:56:21 You can use loadString here. Also, looking at thi
Daniel Nishi 2014/09/09 16:11:56 Eliminated the use of an intermediate variable all
244 permissions[i].toLowerCase()));
245 }
246 }
247 if (options.length == 0) {
248 $('website-settings-global-controls').hidden = true;
249 }
250 else {
Bernhard Bauer 2014/09/09 08:56:21 Nit: Move this to the same line as the closing bra
Daniel Nishi 2014/09/09 16:11:56 Done.
251 $('website-settings-global-controls').hidden = false;
252 chrome.send('updateDefaultSetting');
253 }
188 } 254 }
189 }; 255 };
190 256
191 WebsiteSettingsManager.populateOrigins = function(allowedDict, blockedDict) { 257 WebsiteSettingsManager.populateOrigins = function(allowedDict, blockedDict) {
Bernhard Bauer 2014/09/09 08:56:21 It might start making sense to create these forwar
Daniel Nishi 2014/09/09 16:11:56 Looking at that made me realize one of these funct
192 WebsiteSettingsManager.getInstance().populateOrigins(allowedDict, 258 WebsiteSettingsManager.getInstance().populateOrigins(allowedDict,
193 blockedDict); 259 blockedDict);
194 }; 260 };
195 261
196 WebsiteSettingsManager.showEditPage = function(url) { 262 WebsiteSettingsManager.showEditPage = function(url) {
197 WebsiteSettingsEditor.getInstance().populatePage(url); 263 WebsiteSettingsEditor.getInstance().populatePage(url);
198 }; 264 };
199 265
266 WebsiteSettingsManager.updateDefault = function(dict) {
267 WebsiteSettingsManager.getInstance().updateDefault(dict);
268 };
269
200 // Export 270 // Export
201 return { 271 return {
202 WebsiteSettingsManager: WebsiteSettingsManager 272 WebsiteSettingsManager: WebsiteSettingsManager
203 }; 273 };
204 }); 274 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698