Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 }); |
| OLD | NEW |