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 <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 std::string GetNetworkName(const std::string& service_path) { | 168 std::string GetNetworkName(const std::string& service_path) { |
169 const NetworkState* network = NetworkHandler::Get()->network_state_handler()-> | 169 const NetworkState* network = NetworkHandler::Get()->network_state_handler()-> |
170 GetNetworkState(service_path); | 170 GetNetworkState(service_path); |
171 if (!network) | 171 if (!network) |
172 return std::string(); | 172 return std::string(); |
173 return network->name(); | 173 return network->name(); |
174 } | 174 } |
175 | 175 |
176 static bool SetUserInputMethodImpl( | 176 static bool SetUserInputMethodImpl( |
177 const std::string& username, | 177 const std::string& username, |
178 chromeos::input_method::InputMethodManager* manager) { | 178 const std::string& user_input_method, |
179 PrefService* const local_state = g_browser_process->local_state(); | 179 input_method::InputMethodManager::State* ime_state) { |
180 | 180 if (!chromeos::input_method::InputMethodManager::Get()->IsLoginKeyboard( |
181 const base::DictionaryValue* users_lru_input_methods = | 181 user_input_method)) { |
182 local_state->GetDictionary(prefs::kUsersLRUInputMethod); | |
183 | |
184 if (users_lru_input_methods == NULL) { | |
185 DLOG(WARNING) << "SetUserInputMethod('" << username | |
186 << "'): no kUsersLRUInputMethod"; | |
187 return false; | |
188 } | |
189 | |
190 std::string input_method; | |
191 | |
192 if (!users_lru_input_methods->GetStringWithoutPathExpansion(username, | |
193 &input_method)) { | |
194 DVLOG(0) << "SetUserInputMethod('" << username | |
195 << "'): no input method for this user"; | |
196 return false; | |
197 } | |
198 | |
199 if (input_method.empty()) | |
200 return false; | |
201 | |
202 if (!manager->IsLoginKeyboard(input_method)) { | |
203 LOG(WARNING) << "SetUserInputMethod('" << username | 182 LOG(WARNING) << "SetUserInputMethod('" << username |
204 << "'): stored user LRU input method '" << input_method | 183 << "'): stored user LRU input method '" << user_input_method |
205 << "' is no longer Full Latin Keyboard Language" | 184 << "' is no longer Full Latin Keyboard Language" |
206 << " (entry dropped). Use hardware default instead."; | 185 << " (entry dropped). Use hardware default instead."; |
207 | 186 |
| 187 PrefService* const local_state = g_browser_process->local_state(); |
208 DictionaryPrefUpdate updater(local_state, prefs::kUsersLRUInputMethod); | 188 DictionaryPrefUpdate updater(local_state, prefs::kUsersLRUInputMethod); |
209 | 189 |
210 base::DictionaryValue* const users_lru_input_methods = updater.Get(); | 190 base::DictionaryValue* const users_lru_input_methods = updater.Get(); |
211 if (users_lru_input_methods != NULL) { | 191 if (users_lru_input_methods != NULL) { |
212 users_lru_input_methods->SetStringWithoutPathExpansion(username, ""); | 192 users_lru_input_methods->SetStringWithoutPathExpansion(username, ""); |
213 } | 193 } |
214 return false; | 194 return false; |
215 } | 195 } |
216 | 196 |
217 if (!Contains(manager->GetActiveIMEState()->GetActiveInputMethodIds(), | 197 if (!Contains(ime_state->GetActiveInputMethodIds(), user_input_method)) { |
218 input_method)) { | 198 if (!ime_state->EnableInputMethod(user_input_method)) { |
219 if (!manager->GetActiveIMEState()->EnableInputMethod(input_method)) { | |
220 DLOG(ERROR) << "SigninScreenHandler::SetUserInputMethod('" << username | 199 DLOG(ERROR) << "SigninScreenHandler::SetUserInputMethod('" << username |
221 << "'): user input method '" << input_method | 200 << "'): user input method '" << user_input_method |
222 << "' is not enabled and enabling failed (ignored!)."; | 201 << "' is not enabled and enabling failed (ignored!)."; |
223 } | 202 } |
224 } | 203 } |
225 manager->GetActiveIMEState()->ChangeInputMethod(input_method, | 204 ime_state->ChangeInputMethod(user_input_method, false /* show_message */); |
226 false /* show_message */); | |
227 | 205 |
228 return true; | 206 return true; |
229 } | 207 } |
230 | 208 |
231 } // namespace | 209 } // namespace |
232 | 210 |
233 // LoginScreenContext implementation ------------------------------------------ | 211 // LoginScreenContext implementation ------------------------------------------ |
234 | 212 |
235 LoginScreenContext::LoginScreenContext() { | 213 LoginScreenContext::LoginScreenContext() { |
236 Init(); | 214 Init(); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 error_screen_actor_(error_screen_actor), | 247 error_screen_actor_(error_screen_actor), |
270 core_oobe_actor_(core_oobe_actor), | 248 core_oobe_actor_(core_oobe_actor), |
271 is_first_update_state_call_(true), | 249 is_first_update_state_call_(true), |
272 offline_login_active_(false), | 250 offline_login_active_(false), |
273 last_network_state_(NetworkStateInformer::UNKNOWN), | 251 last_network_state_(NetworkStateInformer::UNKNOWN), |
274 has_pending_auth_ui_(false), | 252 has_pending_auth_ui_(false), |
275 caps_lock_enabled_(chromeos::input_method::InputMethodManager::Get() | 253 caps_lock_enabled_(chromeos::input_method::InputMethodManager::Get() |
276 ->GetImeKeyboard() | 254 ->GetImeKeyboard() |
277 ->CapsLockIsEnabled()), | 255 ->CapsLockIsEnabled()), |
278 gaia_screen_handler_(gaia_screen_handler), | 256 gaia_screen_handler_(gaia_screen_handler), |
| 257 oobe_ui_observer_added_(false), |
279 weak_factory_(this) { | 258 weak_factory_(this) { |
280 DCHECK(network_state_informer_.get()); | 259 DCHECK(network_state_informer_.get()); |
281 DCHECK(error_screen_actor_); | 260 DCHECK(error_screen_actor_); |
282 DCHECK(core_oobe_actor_); | 261 DCHECK(core_oobe_actor_); |
283 DCHECK(gaia_screen_handler_); | 262 DCHECK(gaia_screen_handler_); |
284 gaia_screen_handler_->SetSigninScreenHandler(this); | 263 gaia_screen_handler_->SetSigninScreenHandler(this); |
285 network_state_informer_->AddObserver(this); | 264 network_state_informer_->AddObserver(this); |
286 | 265 |
287 registrar_.Add(this, | 266 registrar_.Add(this, |
288 chrome::NOTIFICATION_AUTH_NEEDED, | 267 chrome::NOTIFICATION_AUTH_NEEDED, |
(...skipping 18 matching lines...) Expand all Loading... |
307 policy::ConsumerManagementService* consumer_management = | 286 policy::ConsumerManagementService* consumer_management = |
308 g_browser_process->platform_part()->browser_policy_connector_chromeos()-> | 287 g_browser_process->platform_part()->browser_policy_connector_chromeos()-> |
309 GetConsumerManagementService(); | 288 GetConsumerManagementService(); |
310 is_enrolling_consumer_management_ = | 289 is_enrolling_consumer_management_ = |
311 consumer_management && | 290 consumer_management && |
312 consumer_management->GetEnrollmentStage() == | 291 consumer_management->GetEnrollmentStage() == |
313 policy::ConsumerManagementService::ENROLLMENT_STAGE_REQUESTED; | 292 policy::ConsumerManagementService::ENROLLMENT_STAGE_REQUESTED; |
314 } | 293 } |
315 | 294 |
316 SigninScreenHandler::~SigninScreenHandler() { | 295 SigninScreenHandler::~SigninScreenHandler() { |
| 296 OobeUI* oobe_ui = GetOobeUI(); |
| 297 if (oobe_ui && oobe_ui_observer_added_) |
| 298 oobe_ui->RemoveObserver(this); |
317 chromeos::input_method::ImeKeyboard* keyboard = | 299 chromeos::input_method::ImeKeyboard* keyboard = |
318 chromeos::input_method::InputMethodManager::Get()->GetImeKeyboard(); | 300 chromeos::input_method::InputMethodManager::Get()->GetImeKeyboard(); |
319 if (keyboard) | 301 if (keyboard) |
320 keyboard->RemoveObserver(this); | 302 keyboard->RemoveObserver(this); |
321 weak_factory_.InvalidateWeakPtrs(); | 303 weak_factory_.InvalidateWeakPtrs(); |
322 if (delegate_) | 304 if (delegate_) |
323 delegate_->SetWebUIHandler(NULL); | 305 delegate_->SetWebUIHandler(NULL); |
324 network_state_informer_->RemoveObserver(this); | 306 network_state_informer_->RemoveObserver(this); |
325 if (max_mode_delegate_) { | 307 if (max_mode_delegate_) { |
326 max_mode_delegate_->RemoveObserver(this); | 308 max_mode_delegate_->RemoveObserver(this); |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
471 void SigninScreenHandler::OnNetworkReady() { | 453 void SigninScreenHandler::OnNetworkReady() { |
472 VLOG(1) << "OnNetworkReady() call."; | 454 VLOG(1) << "OnNetworkReady() call."; |
473 DCHECK(gaia_screen_handler_); | 455 DCHECK(gaia_screen_handler_); |
474 gaia_screen_handler_->MaybePreloadAuthExtension(); | 456 gaia_screen_handler_->MaybePreloadAuthExtension(); |
475 } | 457 } |
476 | 458 |
477 void SigninScreenHandler::UpdateState(ErrorScreenActor::ErrorReason reason) { | 459 void SigninScreenHandler::UpdateState(ErrorScreenActor::ErrorReason reason) { |
478 UpdateStateInternal(reason, false); | 460 UpdateStateInternal(reason, false); |
479 } | 461 } |
480 | 462 |
| 463 void SigninScreenHandler::SetFocusPODCallbackForTesting( |
| 464 base::Closure callback) { |
| 465 test_focus_pod_callback_ = callback; |
| 466 } |
| 467 |
481 // SigninScreenHandler, private: ----------------------------------------------- | 468 // SigninScreenHandler, private: ----------------------------------------------- |
482 | 469 |
483 void SigninScreenHandler::ShowImpl() { | 470 void SigninScreenHandler::ShowImpl() { |
484 if (!page_is_ready()) { | 471 if (!page_is_ready()) { |
485 show_on_init_ = true; | 472 show_on_init_ = true; |
486 return; | 473 return; |
487 } | 474 } |
488 | 475 |
| 476 if (!ime_state_.get()) |
| 477 ime_state_ = input_method::InputMethodManager::Get()->GetActiveIMEState(); |
| 478 |
| 479 if (!oobe_ui_observer_added_) { |
| 480 oobe_ui_observer_added_ = true; |
| 481 GetOobeUI()->AddObserver(this); |
| 482 } |
| 483 |
489 if (oobe_ui_ || is_enrolling_consumer_management_) { | 484 if (oobe_ui_ || is_enrolling_consumer_management_) { |
490 // Shows new user sign-in for OOBE. | 485 // Shows new user sign-in for OOBE. |
491 OnShowAddUser(); | 486 OnShowAddUser(); |
492 } else { | 487 } else { |
493 // Populates account picker. Animation is turned off for now until we | 488 // Populates account picker. Animation is turned off for now until we |
494 // figure out how to make it fast enough. | 489 // figure out how to make it fast enough. |
495 delegate_->HandleGetUsers(); | 490 delegate_->HandleGetUsers(); |
496 | 491 |
497 // Reset Caps Lock state when login screen is shown. | 492 // Reset Caps Lock state when login screen is shown. |
498 input_method::InputMethodManager::Get() | 493 input_method::InputMethodManager::Get() |
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
787 | 782 |
788 // This message is sent by the kiosk app menu, but is handled here | 783 // This message is sent by the kiosk app menu, but is handled here |
789 // so we can tell the delegate to launch the app. | 784 // so we can tell the delegate to launch the app. |
790 AddCallback("launchKioskApp", &SigninScreenHandler::HandleLaunchKioskApp); | 785 AddCallback("launchKioskApp", &SigninScreenHandler::HandleLaunchKioskApp); |
791 } | 786 } |
792 | 787 |
793 void SigninScreenHandler::RegisterPrefs(PrefRegistrySimple* registry) { | 788 void SigninScreenHandler::RegisterPrefs(PrefRegistrySimple* registry) { |
794 registry->RegisterDictionaryPref(prefs::kUsersLRUInputMethod); | 789 registry->RegisterDictionaryPref(prefs::kUsersLRUInputMethod); |
795 } | 790 } |
796 | 791 |
| 792 void SigninScreenHandler::OnCurrentScreenChanged(OobeUI::Screen current_screen, |
| 793 OobeUI::Screen new_screen) { |
| 794 if (new_screen == OobeUI::SCREEN_ACCOUNT_PICKER) { |
| 795 // Restore active IME state if returning to user pod row screen. |
| 796 input_method::InputMethodManager::Get()->SetState(ime_state_); |
| 797 } |
| 798 } |
| 799 |
| 800 std::string SigninScreenHandler::GetUserLRUInputMethod( |
| 801 const std::string& username) const { |
| 802 PrefService* const local_state = g_browser_process->local_state(); |
| 803 const base::DictionaryValue* users_lru_input_methods = |
| 804 local_state->GetDictionary(prefs::kUsersLRUInputMethod); |
| 805 |
| 806 if (users_lru_input_methods == NULL) { |
| 807 DLOG(WARNING) << "GetUserLRUInputMethod('" << username |
| 808 << "'): no kUsersLRUInputMethod"; |
| 809 return std::string(); |
| 810 } |
| 811 |
| 812 std::string input_method; |
| 813 |
| 814 if (!users_lru_input_methods->GetStringWithoutPathExpansion(username, |
| 815 &input_method)) { |
| 816 DVLOG(0) << "GetUserLRUInputMethod('" << username |
| 817 << "'): no input method for this user"; |
| 818 return std::string(); |
| 819 } |
| 820 |
| 821 return input_method; |
| 822 } |
| 823 |
797 void SigninScreenHandler::HandleGetUsers() { | 824 void SigninScreenHandler::HandleGetUsers() { |
798 if (delegate_) | 825 if (delegate_) |
799 delegate_->HandleGetUsers(); | 826 delegate_->HandleGetUsers(); |
800 } | 827 } |
801 | 828 |
802 void SigninScreenHandler::ClearAndEnablePassword() { | 829 void SigninScreenHandler::ClearAndEnablePassword() { |
803 core_oobe_actor_->ResetSignInUI(false); | 830 core_oobe_actor_->ResetSignInUI(false); |
804 } | 831 } |
805 | 832 |
806 void SigninScreenHandler::ClearUserPodPassword() { | 833 void SigninScreenHandler::ClearUserPodPassword() { |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
993 | 1020 |
994 bool SigninScreenHandler::ShouldLoadGaia() const { | 1021 bool SigninScreenHandler::ShouldLoadGaia() const { |
995 // Fetching of the extension is not started before account picker page is | 1022 // Fetching of the extension is not started before account picker page is |
996 // loaded because it can affect the loading speed. | 1023 // loaded because it can affect the loading speed. |
997 // Do not load the extension for the screen locker, see crosbug.com/25018. | 1024 // Do not load the extension for the screen locker, see crosbug.com/25018. |
998 return !ScreenLocker::default_screen_locker() && | 1025 return !ScreenLocker::default_screen_locker() && |
999 is_account_picker_showing_first_time_; | 1026 is_account_picker_showing_first_time_; |
1000 } | 1027 } |
1001 | 1028 |
1002 // Update keyboard layout to least recently used by the user. | 1029 // Update keyboard layout to least recently used by the user. |
1003 void SigninScreenHandler::SetUserInputMethod(const std::string& username) { | 1030 void SigninScreenHandler::SetUserInputMethod( |
| 1031 const std::string& username, |
| 1032 input_method::InputMethodManager::State* ime_state) { |
1004 user_manager::UserManager* user_manager = user_manager::UserManager::Get(); | 1033 user_manager::UserManager* user_manager = user_manager::UserManager::Get(); |
1005 if (user_manager->IsUserLoggedIn()) { | 1034 if (user_manager->IsUserLoggedIn()) { |
1006 // We are on sign-in screen inside user session (adding new user to | 1035 // We are on sign-in screen inside user session (adding new user to |
1007 // the session or on lock screen), don't switch input methods in this case. | 1036 // the session or on lock screen), don't switch input methods in this case. |
1008 // TODO(dpolukhin): adding user and sign-in should be consistent | 1037 // TODO(dpolukhin): adding user and sign-in should be consistent |
1009 // crbug.com/292774 | 1038 // crbug.com/292774 |
1010 return; | 1039 return; |
1011 } | 1040 } |
1012 | 1041 |
1013 chromeos::input_method::InputMethodManager* const manager = | 1042 bool succeed = false; |
1014 chromeos::input_method::InputMethodManager::Get(); | |
1015 | 1043 |
1016 const bool succeed = SetUserInputMethodImpl(username, manager); | 1044 const std::string input_method = GetUserLRUInputMethod(username); |
| 1045 |
| 1046 if (!input_method.empty()) |
| 1047 succeed = SetUserInputMethodImpl(username, input_method, ime_state); |
1017 | 1048 |
1018 // This is also a case when LRU layout is set only for a few local users, | 1049 // This is also a case when LRU layout is set only for a few local users, |
1019 // thus others need to be switched to default locale. | 1050 // thus others need to be switched to default locale. |
1020 // Otherwise they will end up using another user's locale to log in. | 1051 // Otherwise they will end up using another user's locale to log in. |
1021 if (!succeed) { | 1052 if (!succeed) { |
1022 DVLOG(0) << "SetUserInputMethod('" << username | 1053 DVLOG(0) << "SetUserInputMethod('" << username |
1023 << "'): failed to set user layout. Switching to default."; | 1054 << "'): failed to set user layout. Switching to default."; |
1024 | 1055 |
1025 manager->GetActiveIMEState()->SetInputMethodLoginDefault(); | 1056 ime_state->SetInputMethodLoginDefault(); |
1026 } | 1057 } |
1027 } | 1058 } |
1028 | 1059 |
1029 | 1060 |
1030 void SigninScreenHandler::UserSettingsChanged() { | 1061 void SigninScreenHandler::UserSettingsChanged() { |
1031 DCHECK(gaia_screen_handler_); | 1062 DCHECK(gaia_screen_handler_); |
1032 GaiaContext context; | 1063 GaiaContext context; |
1033 if (delegate_) | 1064 if (delegate_) |
1034 context.has_users = !delegate_->GetUsers().empty(); | 1065 context.has_users = !delegate_->GetUsers().empty(); |
1035 gaia_screen_handler_->UpdateGaia(context); | 1066 gaia_screen_handler_->UpdateGaia(context); |
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1318 | 1349 |
1319 void SigninScreenHandler::HandleShowLoadingTimeoutError() { | 1350 void SigninScreenHandler::HandleShowLoadingTimeoutError() { |
1320 UpdateState(ErrorScreenActor::ERROR_REASON_LOADING_TIMEOUT); | 1351 UpdateState(ErrorScreenActor::ERROR_REASON_LOADING_TIMEOUT); |
1321 } | 1352 } |
1322 | 1353 |
1323 void SigninScreenHandler::HandleUpdateOfflineLogin(bool offline_login_active) { | 1354 void SigninScreenHandler::HandleUpdateOfflineLogin(bool offline_login_active) { |
1324 offline_login_active_ = offline_login_active; | 1355 offline_login_active_ = offline_login_active; |
1325 } | 1356 } |
1326 | 1357 |
1327 void SigninScreenHandler::HandleFocusPod(const std::string& user_id) { | 1358 void SigninScreenHandler::HandleFocusPod(const std::string& user_id) { |
1328 SetUserInputMethod(user_id); | 1359 SetUserInputMethod(user_id, ime_state_.get()); |
1329 #if !defined(USE_ATHENA) | 1360 #if !defined(USE_ATHENA) |
1330 // TODO(dpolukhin): crbug.com/408734. | 1361 // TODO(dpolukhin): crbug.com/408734. |
1331 WallpaperManager::Get()->SetUserWallpaperDelayed(user_id); | 1362 WallpaperManager::Get()->SetUserWallpaperDelayed(user_id); |
1332 #endif | 1363 #endif |
1333 ScreenlockBridge::Get()->SetFocusedUser(user_id); | 1364 ScreenlockBridge::Get()->SetFocusedUser(user_id); |
| 1365 if (!test_focus_pod_callback_.is_null()) |
| 1366 test_focus_pod_callback_.Run(); |
1334 } | 1367 } |
1335 | 1368 |
1336 void SigninScreenHandler::HandleHardlockPod(const std::string& user_id) { | 1369 void SigninScreenHandler::HandleHardlockPod(const std::string& user_id) { |
1337 SetAuthType(user_id, | 1370 SetAuthType(user_id, |
1338 ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD, | 1371 ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD, |
1339 base::string16()); | 1372 base::string16()); |
1340 HideUserPodCustomIcon(user_id); | 1373 HideUserPodCustomIcon(user_id); |
1341 } | 1374 } |
1342 | 1375 |
1343 void SigninScreenHandler::HandleRetrieveAuthenticatedUserEmail( | 1376 void SigninScreenHandler::HandleRetrieveAuthenticatedUserEmail( |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1424 return true; | 1457 return true; |
1425 } | 1458 } |
1426 | 1459 |
1427 void SigninScreenHandler::CancelPasswordChangedFlowInternal() { | 1460 void SigninScreenHandler::CancelPasswordChangedFlowInternal() { |
1428 if (delegate_) { | 1461 if (delegate_) { |
1429 ShowImpl(); | 1462 ShowImpl(); |
1430 delegate_->CancelPasswordChangedFlow(); | 1463 delegate_->CancelPasswordChangedFlow(); |
1431 } | 1464 } |
1432 } | 1465 } |
1433 | 1466 |
| 1467 OobeUI* SigninScreenHandler::GetOobeUI() const { |
| 1468 return static_cast<OobeUI*>(web_ui()->GetController()); |
| 1469 } |
| 1470 |
1434 OobeUI::Screen SigninScreenHandler::GetCurrentScreen() const { | 1471 OobeUI::Screen SigninScreenHandler::GetCurrentScreen() const { |
1435 OobeUI::Screen screen = OobeUI::SCREEN_UNKNOWN; | 1472 OobeUI::Screen screen = OobeUI::SCREEN_UNKNOWN; |
1436 OobeUI* oobe_ui = static_cast<OobeUI*>(web_ui()->GetController()); | 1473 OobeUI* oobe_ui = GetOobeUI(); |
1437 if (oobe_ui) | 1474 if (oobe_ui) |
1438 screen = oobe_ui->current_screen(); | 1475 screen = oobe_ui->current_screen(); |
1439 return screen; | 1476 return screen; |
1440 } | 1477 } |
1441 | 1478 |
1442 bool SigninScreenHandler::IsGaiaVisible() const { | 1479 bool SigninScreenHandler::IsGaiaVisible() const { |
1443 return IsSigninScreen(GetCurrentScreen()) && | 1480 return IsSigninScreen(GetCurrentScreen()) && |
1444 ui_state_ == UI_STATE_GAIA_SIGNIN; | 1481 ui_state_ == UI_STATE_GAIA_SIGNIN; |
1445 } | 1482 } |
1446 | 1483 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1517 return gaia_screen_handler_->frame_error(); | 1554 return gaia_screen_handler_->frame_error(); |
1518 } | 1555 } |
1519 | 1556 |
1520 void SigninScreenHandler::OnCapsLockChanged(bool enabled) { | 1557 void SigninScreenHandler::OnCapsLockChanged(bool enabled) { |
1521 caps_lock_enabled_ = enabled; | 1558 caps_lock_enabled_ = enabled; |
1522 if (page_is_ready()) | 1559 if (page_is_ready()) |
1523 CallJS("login.AccountPickerScreen.setCapsLockState", caps_lock_enabled_); | 1560 CallJS("login.AccountPickerScreen.setCapsLockState", caps_lock_enabled_); |
1524 } | 1561 } |
1525 | 1562 |
1526 } // namespace chromeos | 1563 } // namespace chromeos |
OLD | NEW |