| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/login/session/chrome_session_manager.h" | 5 #include "chrome/browser/chromeos/login/session/chrome_session_manager.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 PrefService* local_state = g_browser_process->local_state(); | 78 PrefService* local_state = g_browser_process->local_state(); |
| 79 local_state->ClearPref(prefs::kRebootAfterUpdate); | 79 local_state->ClearPref(prefs::kRebootAfterUpdate); |
| 80 } | 80 } |
| 81 } | 81 } |
| 82 | 82 |
| 83 // Restores user sessions for a crash-and-restarted chrome. | 83 // Restores user sessions for a crash-and-restarted chrome. |
| 84 void StartRestoreAfterCrashSession(Profile* user_profile, | 84 void StartRestoreAfterCrashSession(Profile* user_profile, |
| 85 const std::string& login_user_id) { | 85 const std::string& login_user_id) { |
| 86 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); | 86 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
| 87 | 87 |
| 88 session_manager::SessionManager::Get()->SetSessionState( | |
| 89 session_manager::SessionState::ACTIVE); | |
| 90 | |
| 91 // TODO(xiyuan): Identify tests that do not set this kLoginUser flag but | 88 // TODO(xiyuan): Identify tests that do not set this kLoginUser flag but |
| 92 // still rely on "stub user" session. Keeping existing behavior to avoid | 89 // still rely on "stub user" session. Keeping existing behavior to avoid |
| 93 // breaking tests. | 90 // breaking tests. |
| 94 if (command_line->HasSwitch(chromeos::switches::kLoginUser)) { | 91 if (command_line->HasSwitch(chromeos::switches::kLoginUser)) { |
| 95 // This is done in SessionManager::OnProfileCreated during normal login. | 92 // This is done in SessionManager::OnProfileCreated during normal login. |
| 96 UserSessionManager* user_session_mgr = UserSessionManager::GetInstance(); | 93 UserSessionManager* user_session_mgr = UserSessionManager::GetInstance(); |
| 97 user_manager::UserManager* user_manager = user_manager::UserManager::Get(); | 94 user_manager::UserManager* user_manager = user_manager::UserManager::Get(); |
| 98 const user_manager::User* user = user_manager->GetActiveUser(); | 95 const user_manager::User* user = user_manager->GetActiveUser(); |
| 99 if (!user) { | 96 if (!user) { |
| 100 // This is possible if crash occured after profile removal | 97 // This is possible if crash occured after profile removal |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 // We did not log in (we crashed or are debugging), so we need to | 137 // We did not log in (we crashed or are debugging), so we need to |
| 141 // restore Sync. | 138 // restore Sync. |
| 142 UserSessionManager::GetInstance()->RestoreAuthenticationSession( | 139 UserSessionManager::GetInstance()->RestoreAuthenticationSession( |
| 143 user_profile); | 140 user_profile); |
| 144 } | 141 } |
| 145 } | 142 } |
| 146 | 143 |
| 147 // Starts a user session with stub user. | 144 // Starts a user session with stub user. |
| 148 void StartStubLoginSession(Profile* user_profile, | 145 void StartStubLoginSession(Profile* user_profile, |
| 149 const std::string& login_user_id) { | 146 const std::string& login_user_id) { |
| 150 session_manager::SessionManager::Get()->SetSessionState( | |
| 151 session_manager::SessionState::ACTIVE); | |
| 152 | |
| 153 // For dev machines and stub user emulate as if sync has been initialized. | 147 // For dev machines and stub user emulate as if sync has been initialized. |
| 154 SigninManagerFactory::GetForProfile(user_profile) | 148 SigninManagerFactory::GetForProfile(user_profile) |
| 155 ->SetAuthenticatedAccountInfo(login_user_id, login_user_id); | 149 ->SetAuthenticatedAccountInfo(login_user_id, login_user_id); |
| 156 StartRestoreAfterCrashSession(user_profile, login_user_id); | 150 StartRestoreAfterCrashSession(user_profile, login_user_id); |
| 157 } | 151 } |
| 158 | 152 |
| 159 } // namespace | 153 } // namespace |
| 160 | 154 |
| 161 ChromeSessionManager::ChromeSessionManager() {} | 155 ChromeSessionManager::ChromeSessionManager() {} |
| 162 ChromeSessionManager::~ChromeSessionManager() {} | 156 ChromeSessionManager::~ChromeSessionManager() {} |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 const std::string& user_id_hash, | 232 const std::string& user_id_hash, |
| 239 bool browser_restart) { | 233 bool browser_restart) { |
| 240 BootTimesRecorder* btl = BootTimesRecorder::Get(); | 234 BootTimesRecorder* btl = BootTimesRecorder::Get(); |
| 241 btl->AddLoginTimeMarker("UserLoggedIn-Start", false); | 235 btl->AddLoginTimeMarker("UserLoggedIn-Start", false); |
| 242 session_manager::SessionManager::NotifyUserLoggedIn( | 236 session_manager::SessionManager::NotifyUserLoggedIn( |
| 243 user_account_id, user_id_hash, browser_restart); | 237 user_account_id, user_id_hash, browser_restart); |
| 244 btl->AddLoginTimeMarker("UserLoggedIn-End", false); | 238 btl->AddLoginTimeMarker("UserLoggedIn-End", false); |
| 245 } | 239 } |
| 246 | 240 |
| 247 } // namespace chromeos | 241 } // namespace chromeos |
| OLD | NEW |