Index: chrome/browser/chromeos/login/login_display_host_impl.cc |
diff --git a/chrome/browser/chromeos/login/login_display_host_impl.cc b/chrome/browser/chromeos/login/login_display_host_impl.cc |
index 72cf58859dde570aa0e69b328b9ac2d76475d2ba..059631f8c6326bc8b5314fb7ed22cf46a3b15e05 100644 |
--- a/chrome/browser/chromeos/login/login_display_host_impl.cc |
+++ b/chrome/browser/chromeos/login/login_display_host_impl.cc |
@@ -23,6 +23,7 @@ |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/browser_shutdown.h" |
#include "chrome/browser/chrome_notification_types.h" |
+#include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" |
#include "chrome/browser/chromeos/customization_document.h" |
#include "chrome/browser/chromeos/input_method/input_method_util.h" |
#include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h" |
@@ -85,6 +86,9 @@ const char kOobeURL[] = "chrome://oobe/oobe"; |
// URL which corresponds to the user adding WebUI. |
const char kUserAddingURL[] = "chrome://oobe/user-adding"; |
+// URL which corresponds to the app launch splash WebUI. |
+const char kAppLaunchSplashURL[] = "chrome://oobe/login#app-launch-splash"; |
xiyuan
2013/08/19 17:40:29
Use '#' to define display in login screen seems ch
Tim Song
2013/08/19 20:05:07
Done. I added the app launch splash screen as a di
|
+ |
// Duration of sign-in transition animation. |
const int kLoginFadeoutTransitionDurationMs = 700; |
@@ -509,6 +513,20 @@ void LoginDisplayHostImpl::PrewarmAuthentication() { |
pointer_factory_.GetWeakPtr())); |
} |
+void LoginDisplayHostImpl::StartAppLaunch(const std::string& app_id) { |
+ LOG(WARNING) << "Login WebUI >> start app launch."; |
+ SetStatusAreaVisible(false); |
+ if (!login_window_) |
+ LoadURL(GURL(kAppLaunchSplashURL)); |
+ |
+ login_view_->set_should_emit_login_prompt_visible(false); |
+ |
+ app_launch_controller_.reset(new AppLaunchController( |
+ app_id, this, GetOobeUI())); |
+ |
+ app_launch_controller_->StartAppLaunch(); |
+} |
+ |
//////////////////////////////////////////////////////////////////////////////// |
// LoginDisplayHostImpl, public |
@@ -875,13 +893,23 @@ void ShowLoginWizard(const std::string& first_screen_name) { |
LoginState::Get()->SetLoggedInState( |
LoginState::LOGGED_IN_NONE, LoginState::LOGGED_IN_USER_NONE); |
} |
+ |
+ LoginDisplayHost* display_host = new LoginDisplayHostImpl(screen_bounds); |
+ |
+ bool show_app_launch_splash_screen = (first_screen_name == |
+ chromeos::WizardController::kAppLaunchSplashScreenName); |
+ |
+ if (show_app_launch_splash_screen) { |
+ const std::string& auto_launch_app_id = |
+ chromeos::KioskAppManager::Get()->GetAutoLaunchApp(); |
+ display_host->StartAppLaunch(auto_launch_app_id); |
+ return; |
+ } |
+ |
bool show_login_screen = |
(first_screen_name.empty() && oobe_complete) || |
first_screen_name == chromeos::WizardController::kLoginScreenName; |
- chromeos::LoginDisplayHost* display_host = |
- new chromeos::LoginDisplayHostImpl(screen_bounds); |
- |
if (show_login_screen) { |
// R11 > R12 migration fix. See http://crosbug.com/p/4898. |
// If user has manually changed locale during R11 OOBE, locale will be set. |