Chromium Code Reviews| Index: chrome/browser/chromeos/login/app_launch_controller.h |
| diff --git a/chrome/browser/chromeos/app_mode/startup_app_launcher.h b/chrome/browser/chromeos/login/app_launch_controller.h |
| similarity index 59% |
| rename from chrome/browser/chromeos/app_mode/startup_app_launcher.h |
| rename to chrome/browser/chromeos/login/app_launch_controller.h |
| index ac7e5ae67e8196975c824fd7e484e187667518e8..43f861fda4811cebdc476d5836cd2b955f8e5b77 100644 |
| --- a/chrome/browser/chromeos/app_mode/startup_app_launcher.h |
| +++ b/chrome/browser/chromeos/login/app_launch_controller.h |
| @@ -2,8 +2,8 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#ifndef CHROME_BROWSER_CHROMEOS_APP_MODE_STARTUP_APP_LAUNCHER_H_ |
| -#define CHROME_BROWSER_CHROMEOS_APP_MODE_STARTUP_APP_LAUNCHER_H_ |
| +#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_APP_LAUNCH_CONTROLLER_H_ |
| +#define CHROME_BROWSER_CHROMEOS_LOGIN_APP_LAUNCH_CONTROLLER_H_ |
| #include <string> |
| @@ -12,9 +12,10 @@ |
| #include "base/memory/weak_ptr.h" |
| #include "base/timer/timer.h" |
| #include "chrome/browser/chromeos/app_mode/kiosk_app_launch_error.h" |
| +#include "chrome/browser/chromeos/app_mode/kiosk_profile_loader.h" |
| +#include "chrome/browser/chromeos/login/screens/app_launch_splash_screen_actor.h" |
| #include "chrome/browser/signin/oauth2_token_service.h" |
| #include "net/base/network_change_notifier.h" |
| -#include "ui/base/events/event_handler.h" |
| class Profile; |
| @@ -24,8 +25,12 @@ class WebstoreStandaloneInstaller; |
| namespace chromeos { |
| -// Launches the app at startup. The flow roughly looks like this: |
| +class LoginDisplayHost; |
| +class OobeDisplay; |
| + |
| +// Controls the launch of a kiosk app. The flow roughly looks like this: |
| // - Starts the app launch splash screen; |
| +// - Loads the user's profile; |
| // - Checks if the app is installed in user profile (aka app profile); |
| // - If the app is installed, launch it and finish the flow; |
| // - If not installed, prepare to start install by checking network online |
| @@ -33,17 +38,20 @@ namespace chromeos { |
| // - If network gets online in time, start to install the app from web store; |
| // - If all goes good, launches the app and finish the flow; |
| // If anything goes wrong, it exits app mode and goes back to login screen. |
| -class StartupAppLauncher |
| - : public base::SupportsWeakPtr<StartupAppLauncher>, |
| +class AppLaunchController |
| + : public base::SupportsWeakPtr<AppLaunchController>, |
| public OAuth2TokenService::Observer, |
| - public net::NetworkChangeNotifier::NetworkChangeObserver, |
| - public ui::EventHandler { |
| + public AppLaunchSplashScreenActor::Delegate, |
| + public KioskProfileLoader::Delegate, |
| + public net::NetworkChangeNotifier::NetworkChangeObserver { |
| public: |
| - StartupAppLauncher(Profile* profile, const std::string& app_id); |
| + AppLaunchController(const std::string& app_id, |
| + LoginDisplayHost* host, |
| + OobeDisplay* oobe_display); |
| + |
| + virtual ~AppLaunchController(); |
| - // Starts app launcher. If |skip_auth_setup| is set, we will skip |
| - // TokenService initialization. |
| - void Start(); |
| + void StartAppLaunch(); |
| private: |
| // OAuth parameters from /home/chronos/kiosk_auth file. |
| @@ -53,8 +61,9 @@ class StartupAppLauncher |
| std::string client_secret; |
| }; |
| - // Private dtor because this class manages its own lifetime. |
| - virtual ~StartupAppLauncher(); |
| + // KioskProfileLoader::Delegate overrides: |
| + void OnProfileLoaded(Profile* profile); |
| + void OnProfileLoadFailed(KioskAppLaunchError::Error error); |
|
xiyuan
2013/08/15 18:19:42
nit: virtual ... OVERRIDE;
Tim Song
2013/08/16 19:07:59
Done.
|
| void Cleanup(); |
| void OnLaunchSuccess(); |
| @@ -74,29 +83,33 @@ class StartupAppLauncher |
| static void LoadOAuthFileOnBlockingPool(KioskOAuthParams* auth_params); |
| void OnOAuthFileLoaded(KioskOAuthParams* auth_params); |
| - // OAuth2TokenService::Observer overrides. |
| + // OAuth2TokenService::Observer overrides: |
| virtual void OnRefreshTokenAvailable(const std::string& account_id) OVERRIDE; |
| virtual void OnRefreshTokensLoaded() OVERRIDE; |
| + // AppLaunchSplashScreenActor::Delegate overrides: |
| + virtual void OnConfigureNetwork() OVERRIDE; |
| + virtual void OnCancelAppLaunch() OVERRIDE; |
| + |
| // net::NetworkChangeNotifier::NetworkChangeObserver overrides: |
| virtual void OnNetworkChanged( |
| net::NetworkChangeNotifier::ConnectionType type) OVERRIDE; |
| - // ui::EventHandler overrides: |
| - virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; |
| - |
| Profile* profile_; |
| - const std::string app_id_; |
| + std::string app_id_; |
|
xiyuan
2013/08/15 18:19:42
nit: put back const if |app_id_| is not going to c
Tim Song
2013/08/16 19:07:59
Done.
|
| + LoginDisplayHost* host_; |
| + OobeDisplay* oobe_display_; |
| + AppLaunchSplashScreenActor* app_launch_splash_screen_actor_; |
| int64 launch_splash_start_time_; |
| scoped_refptr<extensions::WebstoreStandaloneInstaller> installer_; |
| - base::OneShotTimer<StartupAppLauncher> network_wait_timer_; |
| + base::OneShotTimer<AppLaunchController> network_wait_timer_; |
| KioskOAuthParams auth_params_; |
| - DISALLOW_COPY_AND_ASSIGN(StartupAppLauncher); |
| + DISALLOW_COPY_AND_ASSIGN(AppLaunchController); |
| }; |
| } // namespace chromeos |
| -#endif // CHROME_BROWSER_CHROMEOS_APP_MODE_STARTUP_APP_LAUNCHER_H_ |
| +#endif // CHROME_BROWSER_CHROMEOS_LOGIN_APP_LAUNCH_CONTROLLER_H_ |