Index: chrome/browser/resources/options/clear_browser_data_overlay.js |
diff --git a/chrome/browser/resources/options/clear_browser_data_overlay.js b/chrome/browser/resources/options/clear_browser_data_overlay.js |
index 501e462927513019b5c1a9cc6a1f598b892ab883..0072ffd5de5af49932f995df43350777f1f37b70 100644 |
--- a/chrome/browser/resources/options/clear_browser_data_overlay.js |
+++ b/chrome/browser/resources/options/clear_browser_data_overlay.js |
@@ -36,23 +36,52 @@ cr.define('options', function() { |
$('clearBrowsingDataTimePeriod').initializeValues( |
templateData.clearBrowsingDataTimeList); |
- var f = this.updateCommitButtonState_.bind(this); |
+ var updateCommitButton = this.updateCommitButtonState_.bind(this); |
var types = ['browser.clear_data.browsing_history', |
'browser.clear_data.download_history', |
'browser.clear_data.cache', |
'browser.clear_data.cookies', |
'browser.clear_data.passwords', |
+ 'browser.clear_data.lso_data', |
'browser.clear_data.form_data']; |
types.forEach(function(type) { |
- Preferences.getInstance().addEventListener(type, f); |
+ Preferences.getInstance().addEventListener(type, updateCommitButton); |
}); |
var checkboxes = document.querySelectorAll( |
'#checkboxListData input[type=checkbox]'); |
for (var i = 0; i < checkboxes.length; i++) { |
- checkboxes[i].onclick = f; |
+ checkboxes[i].onclick = updateCommitButton; |
} |
- this.updateCommitButtonState_(); |
+ updateCommitButton(); |
+ |
+ var checkbox = $('deleteLSODataCheckbox'); |
+ // Listen to pref changes. |
+ Preferences.getInstance().addEventListener( |
+ 'browser.clear_data.lso_data', |
+ function(event) { |
+ var value = event.value && event.value['value']; |
+ checkbox.pref_value = Boolean(value); |
+ checkbox.managed = event.value && event.value['managed']; |
+ checkbox.updateState(); |
+ }); |
+ |
+ ClearBrowserDataOverlay.setClearPluginLSODataEnabled = function(enabled) { |
+ checkbox.manually_disabled = !enabled; |
+ checkbox.updateState(); |
+ }; |
+ |
+ // Listen to user events. |
+ checkbox.addEventListener('click', function(e) { |
+ Preferences.setBooleanPref('browser.clear_data.lso_data', |
+ checkbox.checked, checkbox.metric); |
+ }); |
+ |
+ checkbox.updateState = function() { |
+ checkbox.checked = checkbox.pref_value && !checkbox.manually_disabled; |
+ checkbox.disabled = checkbox.managed || checkbox.manually_disabled; |
+ updateCommitButton(); |
+ }; |
// Setup click handler for the clear(Ok) button. |
$('clearBrowsingDataCommit').onclick = function(event) { |
@@ -85,6 +114,7 @@ cr.define('options', function() { |
$('deleteCookiesCheckbox').disabled = state; |
$('deletePasswordsCheckbox').disabled = state; |
$('deleteFormDataCheckbox').disabled = state; |
+ $('deleteLSODataCheckbox').disabled = state; |
$('clearBrowsingDataTimePeriod').disabled = state; |
$('clearBrowsingDataDismiss').disabled = state; |
$('cbdThrobber').style.visibility = state ? 'visible' : 'hidden'; |