Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(606)

Unified Diff: chrome/browser/chromeos/login/session/chrome_session_manager.cc

Issue 2444383008: session_manager: Create ChromeSessionManager early (Closed)
Patch Set: fix compile, StubLoginSessionInitializer -> StubSessionInitializer Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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() {

Powered by Google App Engine
This is Rietveld 408576698