| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 var Page = cr.ui.pageManager.Page; | 6 var Page = cr.ui.pageManager.Page; |
| 7 var PageManager = cr.ui.pageManager.PageManager; | 7 var PageManager = cr.ui.pageManager.PageManager; |
| 8 | 8 |
| 9 /** | 9 /** |
| 10 * ClearBrowserDataOverlay class | 10 * ClearBrowserDataOverlay class |
| 11 * Encapsulated handling of the 'Clear Browser Data' overlay page. | 11 * Encapsulated handling of the 'Clear Browser Data' overlay page. |
| 12 * @class | 12 * @class |
| 13 */ | 13 */ |
| 14 function ClearBrowserDataOverlay() { | 14 function ClearBrowserDataOverlay() { |
| 15 Page.call(this, 'clearBrowserData', | 15 Page.call( |
| 16 loadTimeData.getString('clearBrowserDataOverlayTabTitle'), | 16 this, 'clearBrowserData', |
| 17 'clear-browser-data-overlay'); | 17 loadTimeData.getString('clearBrowserDataOverlayTabTitle'), |
| 18 'clear-browser-data-overlay'); |
| 18 } | 19 } |
| 19 | 20 |
| 20 cr.addSingletonGetter(ClearBrowserDataOverlay); | 21 cr.addSingletonGetter(ClearBrowserDataOverlay); |
| 21 | 22 |
| 22 ClearBrowserDataOverlay.prototype = { | 23 ClearBrowserDataOverlay.prototype = { |
| 23 // Inherit ClearBrowserDataOverlay from Page. | 24 // Inherit ClearBrowserDataOverlay from Page. |
| 24 __proto__: Page.prototype, | 25 __proto__: Page.prototype, |
| 25 | 26 |
| 26 /** | 27 /** |
| 27 * Whether deleting history and downloads is allowed. | 28 * Whether deleting history and downloads is allowed. |
| (...skipping 18 matching lines...) Expand all Loading... |
| 46 * @type {boolean} | 47 * @type {boolean} |
| 47 * @private | 48 * @private |
| 48 */ | 49 */ |
| 49 isInitializationComplete_: false, | 50 isInitializationComplete_: false, |
| 50 | 51 |
| 51 /** @override */ | 52 /** @override */ |
| 52 initializePage: function() { | 53 initializePage: function() { |
| 53 Page.prototype.initializePage.call(this); | 54 Page.prototype.initializePage.call(this); |
| 54 | 55 |
| 55 var f = this.updateStateOfControls_.bind(this); | 56 var f = this.updateStateOfControls_.bind(this); |
| 56 var types = ['browser.clear_data.browsing_history', | 57 var types = [ |
| 57 'browser.clear_data.download_history', | 58 'browser.clear_data.browsing_history', |
| 58 'browser.clear_data.cache', | 59 'browser.clear_data.download_history', 'browser.clear_data.cache', |
| 59 'browser.clear_data.cookies', | 60 'browser.clear_data.cookies', 'browser.clear_data.passwords', |
| 60 'browser.clear_data.passwords', | 61 'browser.clear_data.form_data', 'browser.clear_data.hosted_apps_data', |
| 61 'browser.clear_data.form_data', | 62 'browser.clear_data.media_licenses' |
| 62 'browser.clear_data.hosted_apps_data', | 63 ]; |
| 63 'browser.clear_data.media_licenses']; | |
| 64 types.forEach(function(type) { | 64 types.forEach(function(type) { |
| 65 Preferences.getInstance().addEventListener(type, f); | 65 Preferences.getInstance().addEventListener(type, f); |
| 66 }); | 66 }); |
| 67 | 67 |
| 68 var checkboxes = document.querySelectorAll( | 68 var checkboxes = |
| 69 '#cbd-content-area input[type=checkbox]'); | 69 document.querySelectorAll('#cbd-content-area input[type=checkbox]'); |
| 70 for (var i = 0; i < checkboxes.length; i++) { | 70 for (var i = 0; i < checkboxes.length; i++) { |
| 71 checkboxes[i].onclick = f; | 71 checkboxes[i].onclick = f; |
| 72 } | 72 } |
| 73 | 73 |
| 74 $('clear-browser-data-dismiss').onclick = function(event) { | 74 $('clear-browser-data-dismiss').onclick = function(event) { |
| 75 ClearBrowserDataOverlay.dismiss(); | 75 ClearBrowserDataOverlay.dismiss(); |
| 76 }; | 76 }; |
| 77 $('clear-browser-data-commit').onclick = function(event) { | 77 $('clear-browser-data-commit').onclick = function(event) { |
| 78 ClearBrowserDataOverlay.setClearing(true); | 78 ClearBrowserDataOverlay.setClearing(true); |
| 79 chrome.send('performClearBrowserData'); | 79 chrome.send('performClearBrowserData'); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 105 * @private | 105 * @private |
| 106 */ | 106 */ |
| 107 createFooter_: function(simple, syncing, showHistoryFooter) { | 107 createFooter_: function(simple, syncing, showHistoryFooter) { |
| 108 // The localized string is of the form "Saved [content settings] and | 108 // The localized string is of the form "Saved [content settings] and |
| 109 // {search engines} will not be cleared and may reflect your browsing | 109 // {search engines} will not be cleared and may reflect your browsing |
| 110 // habits.", or of the form "Some settings that may reflect browsing | 110 // habits.", or of the form "Some settings that may reflect browsing |
| 111 // habits |will not be cleared|." if the simplified support string | 111 // habits |will not be cleared|." if the simplified support string |
| 112 // experiment is enabled. The following parses out the parts in brackets | 112 // experiment is enabled. The following parses out the parts in brackets |
| 113 // and braces and converts them into buttons whereas the remainders are | 113 // and braces and converts them into buttons whereas the remainders are |
| 114 // represented as span elements. | 114 // represented as span elements. |
| 115 var footer = | 115 var footer = document.querySelector('#some-stuff-remains-footer p span'); |
| 116 document.querySelector('#some-stuff-remains-footer p span'); | |
| 117 var footerFragments = | 116 var footerFragments = |
| 118 loadTimeData.getString('clearBrowserDataSupportString') | 117 loadTimeData.getString('clearBrowserDataSupportString') |
| 119 .split(/([|#])/); | 118 .split(/([|#])/); |
| 120 | 119 |
| 121 if (simple) { | 120 if (simple) { |
| 122 footerFragments.unshift( | 121 footerFragments.unshift( |
| 123 loadTimeData.getString('clearBrowserDataSyncWarning') + | 122 loadTimeData.getString('clearBrowserDataSyncWarning') + |
| 124 ' ' // Padding between the sync warning and the rest of the footer. | 123 ' ' // Padding between the sync warning and the rest of the footer. |
| 125 ); | 124 ); |
| 126 } | 125 } |
| 127 | 126 |
| 128 for (var i = 0; i < footerFragments.length;) { | 127 for (var i = 0; i < footerFragments.length;) { |
| 129 var linkId = ''; | 128 var linkId = ''; |
| 130 if (i + 2 < footerFragments.length) { | 129 if (i + 2 < footerFragments.length) { |
| 131 if (footerFragments[i] == '|' && footerFragments[i + 2] == '|') { | 130 if (footerFragments[i] == '|' && footerFragments[i + 2] == '|') { |
| 132 linkId = 'open-content-settings-from-clear-browsing-data'; | 131 linkId = 'open-content-settings-from-clear-browsing-data'; |
| 133 } else if (footerFragments[i] == '#' && | 132 } else if ( |
| 134 footerFragments[i + 2] == '#') { | 133 footerFragments[i] == '#' && footerFragments[i + 2] == '#') { |
| 135 linkId = 'open-search-engines-from-clear-browsing-data'; | 134 linkId = 'open-search-engines-from-clear-browsing-data'; |
| 136 } | 135 } |
| 137 } | 136 } |
| 138 | 137 |
| 139 if (linkId) { | 138 if (linkId) { |
| 140 var link = new ActionLink; | 139 var link = new ActionLink; |
| 141 link.id = linkId; | 140 link.id = linkId; |
| 142 link.textContent = footerFragments[i + 1]; | 141 link.textContent = footerFragments[i + 1]; |
| 143 footer.appendChild(link); | 142 footer.appendChild(link); |
| 144 i += 3; | 143 i += 3; |
| 145 } else { | 144 } else { |
| 146 var span = document.createElement('span'); | 145 var span = document.createElement('span'); |
| 147 span.textContent = footerFragments[i]; | 146 span.textContent = footerFragments[i]; |
| 148 if (simple && i == 0) { | 147 if (simple && i == 0) { |
| 149 span.id = 'clear-browser-data-sync-warning'; | 148 span.id = 'clear-browser-data-sync-warning'; |
| 150 span.hidden = !syncing; | 149 span.hidden = !syncing; |
| 151 } | 150 } |
| 152 footer.appendChild(span); | 151 footer.appendChild(span); |
| 153 i += 1; | 152 i += 1; |
| 154 } | 153 } |
| 155 } | 154 } |
| 156 | 155 |
| 157 if (!simple) { | 156 if (!simple) { |
| 158 $('open-content-settings-from-clear-browsing-data').onclick = | 157 $('open-content-settings-from-clear-browsing-data').onclick = function( |
| 159 function(event) { | 158 event) { |
| 160 PageManager.showPageByName('content'); | 159 PageManager.showPageByName('content'); |
| 161 }; | 160 }; |
| 162 $('open-search-engines-from-clear-browsing-data').onclick = | 161 $('open-search-engines-from-clear-browsing-data').onclick = function( |
| 163 function(event) { | 162 event) { |
| 164 PageManager.showPageByName('searchEngines'); | 163 PageManager.showPageByName('searchEngines'); |
| 165 }; | 164 }; |
| 166 } | 165 } |
| 167 | 166 |
| 168 $('clear-browser-data-old-learn-more-link').hidden = simple; | 167 $('clear-browser-data-old-learn-more-link').hidden = simple; |
| 169 $('clear-browser-data-footer-learn-more-link').hidden = !simple; | 168 $('clear-browser-data-footer-learn-more-link').hidden = !simple; |
| 170 $('flash-storage-settings').hidden = simple; | 169 $('flash-storage-settings').hidden = simple; |
| 171 $('clear-browser-data-history-footer').hidden = !showHistoryFooter; | 170 $('clear-browser-data-history-footer').hidden = !showHistoryFooter; |
| 172 }, | 171 }, |
| 173 | 172 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 * @private | 220 * @private |
| 222 */ | 221 */ |
| 223 updateStateOfControls_: function() { | 222 updateStateOfControls_: function() { |
| 224 // The commit button is enabled if at least one data type selected to be | 223 // The commit button is enabled if at least one data type selected to be |
| 225 // cleared, and if we are not already in the process of clearing. | 224 // cleared, and if we are not already in the process of clearing. |
| 226 // To prevent the commit button from being hazardously enabled for a very | 225 // To prevent the commit button from being hazardously enabled for a very |
| 227 // short time before setClearing() is called the first time by the native | 226 // short time before setClearing() is called the first time by the native |
| 228 // side, also disable the button if |isInitializationComplete_| is false. | 227 // side, also disable the button if |isInitializationComplete_| is false. |
| 229 var enabled = false; | 228 var enabled = false; |
| 230 if (this.isInitializationComplete_ && !this.isClearingInProgress_) { | 229 if (this.isInitializationComplete_ && !this.isClearingInProgress_) { |
| 231 var checkboxes = document.querySelectorAll( | 230 var checkboxes = |
| 232 '#cbd-content-area input[type=checkbox]'); | 231 document.querySelectorAll('#cbd-content-area input[type=checkbox]'); |
| 233 for (var i = 0; i < checkboxes.length; i++) { | 232 for (var i = 0; i < checkboxes.length; i++) { |
| 234 if (checkboxes[i].checked) { | 233 if (checkboxes[i].checked) { |
| 235 enabled = true; | 234 enabled = true; |
| 236 break; | 235 break; |
| 237 } | 236 } |
| 238 } | 237 } |
| 239 } | 238 } |
| 240 $('clear-browser-data-commit').disabled = !enabled; | 239 $('clear-browser-data-commit').disabled = !enabled; |
| 241 | 240 |
| 242 // The checkboxes for clearing history/downloads are enabled unless they | 241 // The checkboxes for clearing history/downloads are enabled unless they |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 286 ClearBrowserDataOverlay.getInstance().setAllowDeletingHistory_(allowed); | 285 ClearBrowserDataOverlay.getInstance().setAllowDeletingHistory_(allowed); |
| 287 }; | 286 }; |
| 288 | 287 |
| 289 ClearBrowserDataOverlay.updateCounter = function(pref_name, text) { | 288 ClearBrowserDataOverlay.updateCounter = function(pref_name, text) { |
| 290 ClearBrowserDataOverlay.getInstance().updateCounter_(pref_name, text); | 289 ClearBrowserDataOverlay.getInstance().updateCounter_(pref_name, text); |
| 291 }; | 290 }; |
| 292 | 291 |
| 293 ClearBrowserDataOverlay.createFooter = function( | 292 ClearBrowserDataOverlay.createFooter = function( |
| 294 simple, syncing, showHistoryFooter) { | 293 simple, syncing, showHistoryFooter) { |
| 295 ClearBrowserDataOverlay.getInstance().createFooter_( | 294 ClearBrowserDataOverlay.getInstance().createFooter_( |
| 296 simple, syncing, showHistoryFooter); | 295 simple, syncing, showHistoryFooter); |
| 297 }; | 296 }; |
| 298 | 297 |
| 299 ClearBrowserDataOverlay.updateSyncWarningAndHistoryFooter = function( | 298 ClearBrowserDataOverlay.updateSyncWarningAndHistoryFooter = function( |
| 300 syncing, showHistoryFooter) { | 299 syncing, showHistoryFooter) { |
| 301 ClearBrowserDataOverlay.getInstance().updateSyncWarningAndHistoryFooter_( | 300 ClearBrowserDataOverlay.getInstance().updateSyncWarningAndHistoryFooter_( |
| 302 syncing, showHistoryFooter); | 301 syncing, showHistoryFooter); |
| 303 }; | 302 }; |
| 304 | 303 |
| 305 ClearBrowserDataOverlay.setClearing = function(clearing) { | 304 ClearBrowserDataOverlay.setClearing = function(clearing) { |
| 306 ClearBrowserDataOverlay.getInstance().setClearing_(clearing); | 305 ClearBrowserDataOverlay.getInstance().setClearing_(clearing); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 328 }, 200); | 327 }, 200); |
| 329 }; | 328 }; |
| 330 | 329 |
| 331 ClearBrowserDataOverlay.dismiss = function() { | 330 ClearBrowserDataOverlay.dismiss = function() { |
| 332 var topmostVisiblePage = PageManager.getTopmostVisiblePage(); | 331 var topmostVisiblePage = PageManager.getTopmostVisiblePage(); |
| 333 if (topmostVisiblePage && topmostVisiblePage.name == 'clearBrowserData') | 332 if (topmostVisiblePage && topmostVisiblePage.name == 'clearBrowserData') |
| 334 PageManager.closeOverlay(); | 333 PageManager.closeOverlay(); |
| 335 }; | 334 }; |
| 336 | 335 |
| 337 // Export | 336 // Export |
| 338 return { | 337 return {ClearBrowserDataOverlay: ClearBrowserDataOverlay}; |
| 339 ClearBrowserDataOverlay: ClearBrowserDataOverlay | |
| 340 }; | |
| 341 }); | 338 }); |
| OLD | NEW |