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

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

Issue 1988463002: MD Settings: Convert C++ handlers to be JavaScript-lifecycle aware. (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_default_browser_handler.cc
diff --git a/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc b/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
index 15d38bbbbfb63ee4ff20944f1e9eceee2fdea323..bee0953d2ec9abf75a18f6a7df95bf52a204b849 100644
--- a/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
+++ b/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
@@ -28,10 +28,6 @@ DefaultBrowserHandler::DefaultBrowserHandler(content::WebUI* webui)
default_browser_worker_ = new shell_integration::DefaultBrowserWorker(
base::Bind(&DefaultBrowserHandler::OnDefaultBrowserWorkerFinished,
weak_ptr_factory_.GetWeakPtr()));
- default_browser_policy_.Init(
- prefs::kDefaultBrowserSettingEnabled, g_browser_process->local_state(),
- base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState,
- base::Unretained(this), nullptr));
}
DefaultBrowserHandler::~DefaultBrowserHandler() {}
@@ -47,8 +43,21 @@ void DefaultBrowserHandler::RegisterMessages() {
base::Unretained(this)));
}
+void DefaultBrowserHandler::OnJavascriptAllowed() {
+ default_browser_policy_.Init(
+ prefs::kDefaultBrowserSettingEnabled, g_browser_process->local_state(),
+ base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState,
+ base::Unretained(this), nullptr));
+}
+
+void DefaultBrowserHandler::OnJavascriptDisallowed() {
+ default_browser_policy_.Destroy();
+}
+
void DefaultBrowserHandler::RequestDefaultBrowserState(
const base::ListValue* /*args*/) {
+ AllowJavascript();
+
default_browser_worker_->StartCheckIsDefault();
}
@@ -79,8 +88,8 @@ void DefaultBrowserHandler::OnDefaultBrowserWorkerFinished(
!IsDisabledByPolicy(default_browser_policy_) &&
shell_integration::CanSetAsDefaultBrowser());
- web_ui()->CallJavascriptFunction("Settings.updateDefaultBrowserState",
- is_default, can_be_default);
+ CallJavascriptFunction("Settings.updateDefaultBrowserState", is_default,
+ can_be_default);
}
} // namespace settings

Powered by Google App Engine
This is Rietveld 408576698