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

Side by Side Diff: chrome/browser/resources/options/website_settings_edit_page.js

Issue 547433002: Add many more content settings to be set in the Website Settings options (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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.WebsiteSettings', function() { 5 cr.define('options.WebsiteSettings', function() {
6 /** @const */ var Page = cr.ui.pageManager.Page; 6 /** @const */ var Page = cr.ui.pageManager.Page;
7 7
8 ///////////////////////////////////////////////////////////////////////////// 8 /////////////////////////////////////////////////////////////////////////////
9 // WebsiteSettingsEditor class: 9 // WebsiteSettingsEditor class:
10 10
11 /** 11 /**
12 * Encapsulated handling of the website settings editor page. 12 * Encapsulated handling of the website settings editor page.
13 * @constructor 13 * @constructor
14 */ 14 */
15 function WebsiteSettingsEditor() { 15 function WebsiteSettingsEditor() {
16 Page.call(this, 'websiteEdit', 16 Page.call(this, 'websiteEdit',
17 loadTimeData.getString('websitesOptionsPageTabTitle'), 17 loadTimeData.getString('websitesOptionsPageTabTitle'),
18 'website-settings-edit-page'); 18 'website-settings-edit-page');
19 this.permissions = ['geolocation', 'notifications', 'media-stream', 19 this.permissions = ['geolocation', 'notifications', 'media-stream',
20 'cookies']; 20 'cookies', 'multiple-automatic-downloads', 'images',
21 'plugins', 'popups', 'javascript'];
22 this.permissionsLookup = {
23 'geolocation': 'Location',
24 'notifications': 'Notifications',
25 'media-stream': 'MediaStream',
26 'cookies': 'Cookies',
27 'multiple-automatic-downloads': 'MultipleAutomaticDownloads',
Bernhard Bauer 2014/09/05 18:41:36 If we have a custom mapping here anyway, could we
Daniel Nishi 2014/09/05 19:21:38 Done.
28 'images': 'Images',
29 'plugins': 'Plugins',
30 'popups': 'Popups',
31 'javascript': 'Javascript'
32 };
21 } 33 }
22 34
23 cr.addSingletonGetter(WebsiteSettingsEditor); 35 cr.addSingletonGetter(WebsiteSettingsEditor);
24 36
25 WebsiteSettingsEditor.prototype = { 37 WebsiteSettingsEditor.prototype = {
26 __proto__: Page.prototype, 38 __proto__: Page.prototype,
27 39
28 40
29 /** @override */ 41 /** @override */
30 initializePage: function() { 42 initializePage: function() {
31 Page.prototype.initializePage.call(this); 43 Page.prototype.initializePage.call(this);
32 44
33 $('website-settings-storage-delete-button').onclick = function(event) { 45 $('website-settings-storage-delete-button').onclick = function(event) {
34 chrome.send('deleteLocalStorage'); 46 chrome.send('deleteLocalStorage');
35 }; 47 };
36 48
37 $('website-settings-battery-stop-button').onclick = function(event) { 49 $('website-settings-battery-stop-button').onclick = function(event) {
38 chrome.send('stopOrigin'); 50 chrome.send('stopOrigin');
39 }; 51 };
40 52
41 $('websiteSettingsEditorCancelButton').onclick = 53 $('websiteSettingsEditorCancelButton').onclick =
42 PageManager.closeOverlay.bind(PageManager); 54 PageManager.closeOverlay.bind(PageManager);
43 55
44 $('websiteSettingsEditorDoneButton').onclick = function(event) { 56 $('websiteSettingsEditorDoneButton').onclick = function(event) {
45 WebsiteSettingsEditor.getInstance().updatePermissions(); 57 WebsiteSettingsEditor.getInstance().updatePermissions();
46 PageManager.closeOverlay.bind(PageManager)(); 58 PageManager.closeOverlay.bind(PageManager)();
47 }; 59 };
60
61 var permissionList =
62 this.pageDiv.querySelector('.origin-permission-list');
63 for (var key in this.permissions) {
64 permissionList.appendChild(
65 this.makePermissionOption_(this.permissions[key]));
66 }
48 }, 67 },
49 68
50 /** 69 /**
51 * Populates the page with the proper information for a given URL. 70 * Populates the page with the proper information for a given URL.
52 * @param {string} url The URL of the page. 71 * @param {string} url The URL of the page.
53 * @private 72 * @private
54 */ 73 */
55 populatePage: function(url) { 74 populatePage: function(url) {
56 this.url = url; 75 this.url = url;
57 76
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 115
97 updatePermissions: function() { 116 updatePermissions: function() {
98 for (var key in this.permissions) { 117 for (var key in this.permissions) {
99 var selection = $(this.permissions[key] + '-select-option'); 118 var selection = $(this.permissions[key] + '-select-option');
100 if (selection.value != selection.originalValue) { 119 if (selection.value != selection.originalValue) {
101 chrome.send('setOriginPermission', 120 chrome.send('setOriginPermission',
102 [this.permissions[key], selection.value]); 121 [this.permissions[key], selection.value]);
103 } 122 }
104 } 123 }
105 }, 124 },
125
126 /**
127 * Populates the origin permission list with the different usable
128 * permissions.
129 * @param {string} permissionName A string with the permission name.
130 * @return {Element} The element with the usable permission setting.
131 */
132 makePermissionOption_: function(permissionName) {
133 var permissionOption = cr.doc.createElement('div');
134 permissionOption.className = 'permission-option';
135
136 var permissionNameSpan = cr.doc.createElement('span');
137 permissionNameSpan.className = 'permission-name';
138 permissionNameSpan.textContent = loadTimeData.getString('websites' +
139 this.permissionsLookup[permissionName] + 'Description');
140 permissionOption.appendChild(permissionNameSpan);
141
142 var permissionSelector = cr.doc.createElement('select');
143 permissionSelector.setAttribute('id', permissionName + '-select-option');
144 permissionSelector.className = 'weaktrl permission-selection-option';
145 permissionOption.appendChild(permissionSelector);
146 return permissionOption;
147 },
106 }; 148 };
107 149
108 WebsiteSettingsEditor.populateOrigin = function(localStorage, batteryUsage, 150 WebsiteSettingsEditor.populateOrigin = function(localStorage, batteryUsage,
109 permissions, showPage) { 151 permissions, showPage) {
110 WebsiteSettingsEditor.getInstance().populateOrigin_(localStorage, 152 WebsiteSettingsEditor.getInstance().populateOrigin_(localStorage,
111 batteryUsage, 153 batteryUsage,
112 permissions, 154 permissions,
113 showPage); 155 showPage);
114 }; 156 };
115 157
116 // Export 158 // Export
117 return { 159 return {
118 WebsiteSettingsEditor: WebsiteSettingsEditor 160 WebsiteSettingsEditor: WebsiteSettingsEditor
119 }; 161 };
120 162
121 }); 163 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698