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

Unified Diff: chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc

Issue 23494053: Remove NOTIFICATION_SYSTEM_SETTING_CHANGED, switch CrosSettings to base::CallbackRegistry. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: trailing space Created 7 years, 3 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/chromeos/login/signin_screen_handler.cc
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
index 56614f2b9881026669c381489d1b65284ad2fc79..497945c120b28e38a598f592d65da024faab6795 100644
--- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
@@ -403,8 +403,14 @@ SigninScreenHandler::SigninScreenHandler(
DCHECK(error_screen_actor_);
DCHECK(core_oobe_actor_);
network_state_informer_->AddObserver(this);
- CrosSettings::Get()->AddSettingsObserver(kAccountsPrefAllowNewUser, this);
- CrosSettings::Get()->AddSettingsObserver(kAccountsPrefAllowGuest, this);
+ allow_new_user_subscription_ = CrosSettings::Get()->AddSettingsObserver(
+ kAccountsPrefAllowNewUser,
+ base::Bind(&SigninScreenHandler::UserSettingsChanged,
+ base::Unretained(this)));
+ allow_guest_subscription_ = CrosSettings::Get()->AddSettingsObserver(
+ kAccountsPrefAllowGuest,
+ base::Bind(&SigninScreenHandler::UserSettingsChanged,
+ base::Unretained(this)));
registrar_.Add(this,
chrome::NOTIFICATION_AUTH_NEEDED,
@@ -426,8 +432,6 @@ SigninScreenHandler::~SigninScreenHandler() {
if (delegate_)
delegate_->SetWebUIHandler(NULL);
network_state_informer_->RemoveObserver(this);
- CrosSettings::Get()->RemoveSettingsObserver(kAccountsPrefAllowNewUser, this);
- CrosSettings::Get()->RemoveSettingsObserver(kAccountsPrefAllowGuest, this);
}
void SigninScreenHandler::DeclareLocalizedValues(
@@ -993,11 +997,6 @@ void SigninScreenHandler::Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) {
switch (type) {
- case chrome::NOTIFICATION_SYSTEM_SETTING_CHANGED: {
- UpdateAuthExtension();
- UpdateAddButtonStatus();
- break;
- }
case chrome::NOTIFICATION_AUTH_NEEDED: {
has_pending_auth_ui_ = true;
break;
@@ -1181,6 +1180,11 @@ void SigninScreenHandler::LoadAuthExtension(
CallJS("login.GaiaSigninScreen.loadAuthExtension", params);
}
+void SigninScreenHandler::UserSettingsChanged() {
+ UpdateAuthExtension();
+ UpdateAddButtonStatus();
+}
+
void SigninScreenHandler::UpdateAuthExtension() {
DictionaryValue params;
UpdateAuthParams(&params);

Powered by Google App Engine
This is Rietveld 408576698