Chromium Code Reviews| Index: chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc |
| diff --git a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc |
| index b8af080d9695ef9fc214f227832bee6448916d8f..fcb7ae250e2b5123b7c4d02d517007363d7cbf6d 100644 |
| --- a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc |
| +++ b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.cc |
| @@ -199,24 +199,29 @@ void KioskModeScreensaver::OnUserActivity() { |
| ash::Shell::GetInstance()->user_activity_detector()->RemoveObserver(this); |
| // Find the retail mode login page. |
| - CHECK(WebUILoginDisplayHost::default_host()); |
| - WebUILoginDisplayHost* webui_host = |
| - static_cast<WebUILoginDisplayHost*>( |
| - WebUILoginDisplayHost::default_host()); |
| - OobeUI* oobe_ui = webui_host->GetOobeUI(); |
| - |
| - // Show the login spinner. |
| - CHECK(oobe_ui); |
| - oobe_ui->ShowRetailModeLoginSpinner(); |
| - |
| - // Close the screensaver, our login spinner is already showing. |
| - ash::CloseScreensaver(); |
| - |
| - // Log us in. |
| - ExistingUserController* controller = |
| - ExistingUserController::current_controller(); |
| - CHECK(controller); |
| - controller->LoginAsDemoUser(); |
| + if (WebUILoginDisplayHost::default_host()) { |
| + WebUILoginDisplayHost* webui_host = |
| + static_cast<WebUILoginDisplayHost*>( |
| + WebUILoginDisplayHost::default_host()); |
| + OobeUI* oobe_ui = webui_host->GetOobeUI(); |
| + |
| + // Show the login spinner. |
| + if (oobe_ui) |
| + oobe_ui->ShowRetailModeLoginSpinner(); |
| + |
| + // Close the screensaver, our login spinner is already showing. |
| + ash::CloseScreensaver(); |
| + |
| + // Log us in. |
| + ExistingUserController* controller = |
| + ExistingUserController::current_controller(); |
| + if (controller && !chromeos::UserManager::Get()->IsSessionStarted()) |
|
Nikita (slow)
2012/11/08 17:58:40
This should still use IsUserLoggedIn() as there's
rkc
2012/11/08 20:06:57
Done.
|
| + controller->LoginAsDemoUser(); |
| + } else { |
| + // No default host for the WebUiLoginDisplay means that we're already in the |
| + // process of logging in - shut down screensaver and do nothing else. |
| + ash::CloseScreensaver(); |
| + } |
| ShutdownKioskModeScreensaver(); |
| } |