| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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(¶ms); | 1190 UpdateAuthParams(¶ms); |
| 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 Loading... |
| 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 |
| OLD | NEW |