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(); |
} |