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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" 5 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/chromeos/chromeos_version.h" 8 #include "base/chromeos/chromeos_version.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 error_screen_actor_(error_screen_actor), 396 error_screen_actor_(error_screen_actor),
397 core_oobe_actor_(core_oobe_actor), 397 core_oobe_actor_(core_oobe_actor),
398 is_first_update_state_call_(true), 398 is_first_update_state_call_(true),
399 offline_login_active_(false), 399 offline_login_active_(false),
400 last_network_state_(NetworkStateInformer::UNKNOWN), 400 last_network_state_(NetworkStateInformer::UNKNOWN),
401 has_pending_auth_ui_(false) { 401 has_pending_auth_ui_(false) {
402 DCHECK(network_state_informer_.get()); 402 DCHECK(network_state_informer_.get());
403 DCHECK(error_screen_actor_); 403 DCHECK(error_screen_actor_);
404 DCHECK(core_oobe_actor_); 404 DCHECK(core_oobe_actor_);
405 network_state_informer_->AddObserver(this); 405 network_state_informer_->AddObserver(this);
406 CrosSettings::Get()->AddSettingsObserver(kAccountsPrefAllowNewUser, this); 406 allow_new_user_subscription_ = CrosSettings::Get()->AddSettingsObserver(
407 CrosSettings::Get()->AddSettingsObserver(kAccountsPrefAllowGuest, this); 407 kAccountsPrefAllowNewUser,
408 base::Bind(&SigninScreenHandler::UserSettingsChanged,
409 base::Unretained(this)));
410 allow_guest_subscription_ = CrosSettings::Get()->AddSettingsObserver(
411 kAccountsPrefAllowGuest,
412 base::Bind(&SigninScreenHandler::UserSettingsChanged,
413 base::Unretained(this)));
408 414
409 registrar_.Add(this, 415 registrar_.Add(this,
410 chrome::NOTIFICATION_AUTH_NEEDED, 416 chrome::NOTIFICATION_AUTH_NEEDED,
411 content::NotificationService::AllSources()); 417 content::NotificationService::AllSources());
412 registrar_.Add(this, 418 registrar_.Add(this,
413 chrome::NOTIFICATION_AUTH_SUPPLIED, 419 chrome::NOTIFICATION_AUTH_SUPPLIED,
414 content::NotificationService::AllSources()); 420 content::NotificationService::AllSources());
415 registrar_.Add(this, 421 registrar_.Add(this,
416 chrome::NOTIFICATION_AUTH_CANCELLED, 422 chrome::NOTIFICATION_AUTH_CANCELLED,
417 content::NotificationService::AllSources()); 423 content::NotificationService::AllSources());
418 } 424 }
419 425
420 SigninScreenHandler::~SigninScreenHandler() { 426 SigninScreenHandler::~SigninScreenHandler() {
421 weak_factory_.InvalidateWeakPtrs(); 427 weak_factory_.InvalidateWeakPtrs();
422 SystemKeyEventListener* key_event_listener = 428 SystemKeyEventListener* key_event_listener =
423 SystemKeyEventListener::GetInstance(); 429 SystemKeyEventListener::GetInstance();
424 if (key_event_listener) 430 if (key_event_listener)
425 key_event_listener->RemoveCapsLockObserver(this); 431 key_event_listener->RemoveCapsLockObserver(this);
426 if (delegate_) 432 if (delegate_)
427 delegate_->SetWebUIHandler(NULL); 433 delegate_->SetWebUIHandler(NULL);
428 network_state_informer_->RemoveObserver(this); 434 network_state_informer_->RemoveObserver(this);
429 CrosSettings::Get()->RemoveSettingsObserver(kAccountsPrefAllowNewUser, this);
430 CrosSettings::Get()->RemoveSettingsObserver(kAccountsPrefAllowGuest, this);
431 } 435 }
432 436
433 void SigninScreenHandler::DeclareLocalizedValues( 437 void SigninScreenHandler::DeclareLocalizedValues(
434 LocalizedValuesBuilder* builder) { 438 LocalizedValuesBuilder* builder) {
435 builder->Add("signinScreenTitle", IDS_SIGNIN_SCREEN_TITLE); 439 builder->Add("signinScreenTitle", IDS_SIGNIN_SCREEN_TITLE);
436 builder->Add("signinScreenPasswordChanged", 440 builder->Add("signinScreenPasswordChanged",
437 IDS_SIGNIN_SCREEN_PASSWORD_CHANGED); 441 IDS_SIGNIN_SCREEN_PASSWORD_CHANGED);
438 builder->Add("passwordHint", IDS_LOGIN_POD_EMPTY_PASSWORD_TEXT); 442 builder->Add("passwordHint", IDS_LOGIN_POD_EMPTY_PASSWORD_TEXT);
439 builder->Add("podMenuButtonAccessibleName", 443 builder->Add("podMenuButtonAccessibleName",
440 IDS_LOGIN_POD_MENU_BUTTON_ACCESSIBLE_NAME); 444 IDS_LOGIN_POD_MENU_BUTTON_ACCESSIBLE_NAME);
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after
986 990
987 void SigninScreenHandler::OnCapsLockChange(bool enabled) { 991 void SigninScreenHandler::OnCapsLockChange(bool enabled) {
988 if (page_is_ready()) 992 if (page_is_ready())
989 CallJS("login.AccountPickerScreen.setCapsLockState", enabled); 993 CallJS("login.AccountPickerScreen.setCapsLockState", enabled);
990 } 994 }
991 995
992 void SigninScreenHandler::Observe(int type, 996 void SigninScreenHandler::Observe(int type,
993 const content::NotificationSource& source, 997 const content::NotificationSource& source,
994 const content::NotificationDetails& details) { 998 const content::NotificationDetails& details) {
995 switch (type) { 999 switch (type) {
996 case chrome::NOTIFICATION_SYSTEM_SETTING_CHANGED: {
997 UpdateAuthExtension();
998 UpdateAddButtonStatus();
999 break;
1000 }
1001 case chrome::NOTIFICATION_AUTH_NEEDED: { 1000 case chrome::NOTIFICATION_AUTH_NEEDED: {
1002 has_pending_auth_ui_ = true; 1001 has_pending_auth_ui_ = true;
1003 break; 1002 break;
1004 } 1003 }
1005 case chrome::NOTIFICATION_AUTH_SUPPLIED: 1004 case chrome::NOTIFICATION_AUTH_SUPPLIED:
1006 has_pending_auth_ui_ = false; 1005 has_pending_auth_ui_ = false;
1007 if (IsSigninScreenHiddenByError()) { 1006 if (IsSigninScreenHiddenByError()) {
1008 // Hide error screen and reload auth extension. 1007 // Hide error screen and reload auth extension.
1009 HideOfflineMessage(network_state_informer_->state(), 1008 HideOfflineMessage(network_state_informer_->state(),
1010 ErrorScreenActor::ERROR_REASON_PROXY_AUTH_SUPPLIED); 1009 ErrorScreenActor::ERROR_REASON_PROXY_AUTH_SUPPLIED);
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
1174 CommandLine::ForCurrentProcess()->HasSwitch(::switches::kGaiaUrl) ? 1173 CommandLine::ForCurrentProcess()->HasSwitch(::switches::kGaiaUrl) ?
1175 GURL(CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 1174 GURL(CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
1176 ::switches::kGaiaUrl)) : 1175 ::switches::kGaiaUrl)) :
1177 GaiaUrls::GetInstance()->gaia_url(); 1176 GaiaUrls::GetInstance()->gaia_url();
1178 params.SetString("gaiaUrl", gaia_url.spec()); 1177 params.SetString("gaiaUrl", gaia_url.spec());
1179 1178
1180 frame_state_ = FRAME_STATE_LOADING; 1179 frame_state_ = FRAME_STATE_LOADING;
1181 CallJS("login.GaiaSigninScreen.loadAuthExtension", params); 1180 CallJS("login.GaiaSigninScreen.loadAuthExtension", params);
1182 } 1181 }
1183 1182
1183 void SigninScreenHandler::UserSettingsChanged() {
1184 UpdateAuthExtension();
1185 UpdateAddButtonStatus();
1186 }
1187
1184 void SigninScreenHandler::UpdateAuthExtension() { 1188 void SigninScreenHandler::UpdateAuthExtension() {
1185 DictionaryValue params; 1189 DictionaryValue params;
1186 UpdateAuthParams(&params); 1190 UpdateAuthParams(&params);
1187 CallJS("login.GaiaSigninScreen.updateAuthExtension", params); 1191 CallJS("login.GaiaSigninScreen.updateAuthExtension", params);
1188 } 1192 }
1189 1193
1190 void SigninScreenHandler::UpdateAddButtonStatus() { 1194 void SigninScreenHandler::UpdateAddButtonStatus() {
1191 CallJS("cr.ui.login.DisplayManager.updateAddUserButtonStatus", 1195 CallJS("cr.ui.login.DisplayManager.updateAddUserButtonStatus",
1192 AllWhitelistedUsersPresent()); 1196 AllWhitelistedUsersPresent());
1193 } 1197 }
(...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after
1768 rvh->ExecuteJavascriptInWebFrame( 1772 rvh->ExecuteJavascriptInWebFrame(
1769 ASCIIToUTF16("//iframe[@id='signin-frame']\n//iframe"), 1773 ASCIIToUTF16("//iframe[@id='signin-frame']\n//iframe"),
1770 ASCIIToUTF16(code)); 1774 ASCIIToUTF16(code));
1771 1775
1772 // Test properties are cleared in HandleCompleteLogin because the form 1776 // Test properties are cleared in HandleCompleteLogin because the form
1773 // submission might fail and login will not be attempted after reloading 1777 // submission might fail and login will not be attempted after reloading
1774 // if they are cleared here. 1778 // if they are cleared here.
1775 } 1779 }
1776 1780
1777 } // namespace chromeos 1781 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698