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 |