Index: chrome/browser/chromeos/login/session/chrome_session_manager.cc |
diff --git a/chrome/browser/chromeos/login/session/chrome_session_manager.cc b/chrome/browser/chromeos/login/session/chrome_session_manager.cc |
index 26fde418705d60e3e7ebb7241cb03b33e5c79d7a..12883514499592429aab5041db8c429c733a5aa6 100644 |
--- a/chrome/browser/chromeos/login/session/chrome_session_manager.cc |
+++ b/chrome/browser/chromeos/login/session/chrome_session_manager.cc |
@@ -12,10 +12,10 @@ |
#include "chrome/browser/chrome_notification_types.h" |
#include "chrome/browser/chromeos/app_mode/kiosk_app_launch_error.h" |
#include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" |
-#include "chrome/browser/chromeos/login/session/kiosk_auto_launcher_session_manager_delegate.h" |
-#include "chrome/browser/chromeos/login/session/login_oobe_session_manager_delegate.h" |
-#include "chrome/browser/chromeos/login/session/restore_after_crash_session_manager_delegate.h" |
-#include "chrome/browser/chromeos/login/session/stub_login_session_manager_delegate.h" |
+#include "chrome/browser/chromeos/login/session/kiosk_auto_launcher_session_initializer.h" |
+#include "chrome/browser/chromeos/login/session/login_oobe_session_initializer.h" |
+#include "chrome/browser/chromeos/login/session/restore_after_crash_session_initializer.h" |
+#include "chrome/browser/chromeos/login/session/stub_session_initializer.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chromeos/chromeos_switches.h" |
#include "chromeos/cryptohome/cryptohome_parameters.h" |
@@ -38,9 +38,10 @@ bool ShouldAutoLaunchKioskApp(const base::CommandLine& command_line) { |
} // namespace |
-// static |
-std::unique_ptr<session_manager::SessionManager> |
-ChromeSessionManager::CreateSessionManager( |
+ChromeSessionManager::ChromeSessionManager() {} |
+ChromeSessionManager::~ChromeSessionManager() {} |
+ |
+void ChromeSessionManager::Initialize( |
const base::CommandLine& parsed_command_line, |
Profile* profile, |
bool is_running_test) { |
@@ -58,42 +59,35 @@ ChromeSessionManager::CreateSessionManager( |
KioskAppManager::RemoveObsoleteCryptohomes(); |
if (ShouldAutoLaunchKioskApp(parsed_command_line)) { |
- VLOG(1) << "Starting Chrome with KioskAutoLauncherSessionManagerDelegate"; |
- return std::unique_ptr<session_manager::SessionManager>( |
- new ChromeSessionManager( |
- new KioskAutoLauncherSessionManagerDelegate())); |
- } else if (parsed_command_line.HasSwitch(switches::kLoginManager) && |
- (!is_running_test || force_login_screen_in_test)) { |
- VLOG(1) << "Starting Chrome with LoginOobeSessionManagerDelegate"; |
- return std::unique_ptr<session_manager::SessionManager>( |
- new ChromeSessionManager(new LoginOobeSessionManagerDelegate())); |
- } else if (!base::SysInfo::IsRunningOnChromeOS() && |
- login_account_id == login::StubAccountId()) { |
- VLOG(1) << "Starting Chrome with StubLoginSessionManagerDelegate"; |
- return std::unique_ptr<session_manager::SessionManager>( |
- new ChromeSessionManager(new StubLoginSessionManagerDelegate( |
- profile, login_account_id.GetUserEmail()))); |
- } else { |
- VLOG(1) << "Starting Chrome with RestoreAfterCrashSessionManagerDelegate"; |
- // Restarting Chrome inside existing user session. Possible cases: |
- // 1. Chrome is restarted after crash. |
- // 2. Chrome is restarted for Guest session. |
- // 3. Chrome is started in browser_tests skipping the login flow. |
- // 4. Chrome is started on dev machine i.e. not on Chrome OS device w/o |
- // login flow. In that case --login-user=[chromeos::login::kStubUser] is |
- // added. See PreEarlyInitialization(). |
- return std::unique_ptr<session_manager::SessionManager>( |
- new ChromeSessionManager(new RestoreAfterCrashSessionManagerDelegate( |
- profile, login_account_id.GetUserEmail()))); |
+ VLOG(1) << "Starting Chrome with KioskAutoLauncherSessionInitializer"; |
+ KioskAutoLauncherSessionInitializer().Start(); |
+ return; |
} |
-} |
-ChromeSessionManager::ChromeSessionManager( |
- session_manager::SessionManagerDelegate* delegate) { |
- Initialize(delegate); |
-} |
+ if (parsed_command_line.HasSwitch(switches::kLoginManager) && |
+ (!is_running_test || force_login_screen_in_test)) { |
+ VLOG(1) << "Starting Chrome with LoginOobeSessionInitializer"; |
+ LoginOobeSessionInitializer().Start(); |
+ return; |
+ } |
+ |
+ if (!base::SysInfo::IsRunningOnChromeOS() && |
+ login_account_id == login::StubAccountId()) { |
+ VLOG(1) << "Starting Chrome with StubSessionInitializer"; |
+ StubSessionInitializer(profile, login_account_id.GetUserEmail()).Start(); |
+ return; |
+ } |
-ChromeSessionManager::~ChromeSessionManager() { |
+ VLOG(1) << "Starting Chrome with RestoreAfterCrashSessionInitializer"; |
+ // Restarting Chrome inside existing user session. Possible cases: |
+ // 1. Chrome is restarted after crash. |
+ // 2. Chrome is restarted for Guest session. |
+ // 3. Chrome is started in browser_tests skipping the login flow. |
+ // 4. Chrome is started on dev machine i.e. not on Chrome OS device w/o |
+ // login flow. In that case --login-user=[chromeos::login::kStubUser] is |
+ // added. See PreEarlyInitialization(). |
+ RestoreAfterCrashSessionInitializer(profile, login_account_id.GetUserEmail()) |
+ .Start(); |
} |
void ChromeSessionManager::SessionStarted() { |