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

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

Issue 594163002: Restore last used user session after crash (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: special case in ChromeUserManagerImpl Created 6 years, 3 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/user_session_manager.cc
diff --git a/chrome/browser/chromeos/login/session/user_session_manager.cc b/chrome/browser/chromeos/login/session/user_session_manager.cc
index bd6bfa911d1ae6f8d6ed823ad18abc310e139370..7f14789cf368f64f04d64ed866125e77bd26f933 100644
--- a/chrome/browser/chromeos/login/session/user_session_manager.cc
+++ b/chrome/browser/chromeos/login/session/user_session_manager.cc
@@ -220,6 +220,7 @@ UserSessionManager::UserSessionManager()
: delegate_(NULL),
has_auth_cookies_(false),
user_sessions_restored_(false),
+ user_sessions_restore_in_progress_(false),
exit_after_session_restore_(false),
session_restore_strategy_(
OAuth2LoginManager::RESTORE_FROM_SAVED_OAUTH2_REFRESH_TOKEN) {
@@ -300,6 +301,7 @@ void UserSessionManager::RestoreAuthenticationSession(Profile* user_profile) {
}
void UserSessionManager::RestoreActiveSessions() {
+ user_sessions_restore_in_progress_ = true;
DBusThreadManager::Get()->GetSessionManagerClient()->RetrieveActiveSessions(
base::Bind(&UserSessionManager::OnRestoreActiveSessions,
base::Unretained(this)));
@@ -310,6 +312,11 @@ bool UserSessionManager::UserSessionsRestored() const {
return user_sessions_restored_;
}
+bool UserSessionManager::UserSessionsRestoreInProgress() const {
+ DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
+ return user_sessions_restore_in_progress_;
+}
+
void UserSessionManager::InitRlz(Profile* profile) {
#if defined(ENABLE_RLZ)
if (!g_browser_process->local_state()->HasPrefPath(prefs::kRLZBrand)) {
@@ -944,6 +951,7 @@ void UserSessionManager::OnRestoreActiveSessions(
void UserSessionManager::RestorePendingUserSessions() {
if (pending_user_sessions_.empty()) {
+ user_manager::UserManager::Get()->SwitchToLastActiveUser();
NotifyPendingUserSessionsRestoreFinished();
return;
}
@@ -991,6 +999,7 @@ void UserSessionManager::RestorePendingUserSessions() {
void UserSessionManager::NotifyPendingUserSessionsRestoreFinished() {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
user_sessions_restored_ = true;
+ user_sessions_restore_in_progress_ = false;
FOR_EACH_OBSERVER(chromeos::UserSessionStateObserver,
session_state_observer_list_,
PendingUserSessionsRestoreFinished());

Powered by Google App Engine
This is Rietveld 408576698