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

Unified Diff: chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc

Issue 1961183002: MD Settings: Update some Settings handlers to use new JS lifecycle management. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
diff --git a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
index 638c0fda7361115379b00e9fd174aee64203d8f9..ac540c0a011704314a55c04370aa4e2778bebfe0 100644
--- a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
+++ b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
@@ -22,6 +22,7 @@ namespace settings {
ClearBrowsingDataHandler::ClearBrowsingDataHandler(content::WebUI* webui)
: sync_service_(nullptr),
+ sync_service_observer_(this),
remover_(nullptr),
should_show_history_footer_(false),
weak_ptr_factory_(this) {
@@ -29,10 +30,6 @@ ClearBrowsingDataHandler::ClearBrowsingDataHandler(content::WebUI* webui)
clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled, prefs);
pepper_flash_settings_enabled_.Init(prefs::kPepperFlashSettingsEnabled,
prefs);
- allow_deleting_browser_history_.Init(
- prefs::kAllowDeletingBrowserHistory, prefs,
- base::Bind(&ClearBrowsingDataHandler::OnBrowsingHistoryPrefChanged,
- base::Unretained(this)));
sync_service_ =
ProfileSyncServiceFactory::GetForProfile(Profile::FromWebUI(webui));
}
@@ -55,13 +52,19 @@ void ClearBrowsingDataHandler::RegisterMessages() {
}
void ClearBrowsingDataHandler::OnJavascriptAllowed() {
+ PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs();
+ allow_deleting_browser_history_.Init(
+ prefs::kAllowDeletingBrowserHistory, prefs,
+ base::Bind(&ClearBrowsingDataHandler::OnBrowsingHistoryPrefChanged,
+ base::Unretained(this)));
+
if (sync_service_)
- sync_service_->AddObserver(this);
+ sync_service_observer_.Add(sync_service_);
}
void ClearBrowsingDataHandler::OnJavascriptDisallowed() {
- if (sync_service_)
- sync_service_->RemoveObserver(this);
+ allow_deleting_browser_history_.Destroy();
+ sync_service_observer_.RemoveAll();
}
void ClearBrowsingDataHandler::HandleClearBrowsingData(
@@ -168,7 +171,7 @@ void ClearBrowsingDataHandler::OnBrowsingDataRemoverDone() {
}
void ClearBrowsingDataHandler::OnBrowsingHistoryPrefChanged() {
- web_ui()->CallJavascriptFunction(
+ CallJavascriptFunction(
"cr.webUIListenerCallback",
base::StringValue("browsing-history-pref-changed"),
base::FundamentalValue(*allow_deleting_browser_history_));
@@ -181,7 +184,7 @@ void ClearBrowsingDataHandler::HandleInitialize(const base::ListValue* args) {
}
void ClearBrowsingDataHandler::OnStateChanged() {
- web_ui()->CallJavascriptFunction(
+ CallJavascriptFunction(
"cr.webUIListenerCallback",
base::StringValue("update-footer"),
base::FundamentalValue(sync_service_ && sync_service_->IsSyncActive()),

Powered by Google App Engine
This is Rietveld 408576698