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

Unified Diff: chrome/browser/chromeos/login/users/user_manager_impl.cc

Issue 385633002: UserManager refactoring: move active user session restoration to UserSessionManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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
« no previous file with comments | « chrome/browser/chromeos/login/users/user_manager_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/login/users/user_manager_impl.cc
diff --git a/chrome/browser/chromeos/login/users/user_manager_impl.cc b/chrome/browser/chromeos/login/users/user_manager_impl.cc
index 522a472d94fdbdafba364b38372e6eaffc2d4270..c1bf048d54fb4ecd861f98feec355825946efc3c 100644
--- a/chrome/browser/chromeos/login/users/user_manager_impl.cc
+++ b/chrome/browser/chromeos/login/users/user_manager_impl.cc
@@ -38,14 +38,12 @@
#include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h"
#include "chrome/browser/chromeos/login/users/remove_user_delegate.h"
#include "chrome/browser/chromeos/login/users/supervised_user_manager_impl.h"
-#include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
#include "chrome/browser/chromeos/policy/device_local_account.h"
#include "chrome/browser/chromeos/profiles/multiprofiles_session_aborted_dialog.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/chromeos/session_length_limiter.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/supervised_user/chromeos/manager_password_service_factory.h"
#include "chrome/browser/supervised_user/chromeos/supervised_user_password_service_factory.h"
#include "chrome/common/chrome_constants.h"
@@ -184,7 +182,6 @@ UserManagerImpl::UserManagerImpl()
active_user_(NULL),
primary_user_(NULL),
session_started_(false),
- user_sessions_restored_(false),
is_current_user_owner_(false),
is_current_user_new_(false),
is_current_user_ephemeral_regular_user_(false),
@@ -493,12 +490,6 @@ void UserManagerImpl::SwitchActiveUser(const std::string& user_id) {
NotifyActiveUserChanged(active_user_);
}
-void UserManagerImpl::RestoreActiveSessions() {
- DBusThreadManager::Get()->GetSessionManagerClient()->RetrieveActiveSessions(
- base::Bind(&UserManagerImpl::OnRestoreActiveSessions,
- base::Unretained(this)));
-}
-
void UserManagerImpl::SessionStarted() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
session_started_ = true;
@@ -953,11 +944,6 @@ bool UserManagerImpl::IsSessionStarted() const {
return session_started_;
}
-bool UserManagerImpl::UserSessionsRestored() const {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- return user_sessions_restored_;
-}
-
bool UserManagerImpl::IsUserNonCryptohomeDataEphemeral(
const std::string& user_id) const {
// Data belonging to the guest, retail mode and stub users is always
@@ -1022,23 +1008,6 @@ void UserManagerImpl::NotifyLocalStateChanged() {
LocalStateChanged(this));
}
-void UserManagerImpl::OnProfilePrepared(Profile* profile) {
- LoginUtils::Get()->DoBrowserLaunch(profile,
- NULL); // host_, not needed here
-
- if (!CommandLine::ForCurrentProcess()->HasSwitch(::switches::kTestName)) {
- // Did not log in (we crashed or are debugging), need to restore Sync.
- // TODO(nkostylev): Make sure that OAuth state is restored correctly for all
- // users once it is fully multi-profile aware. http://crbug.com/238987
- // For now if we have other user pending sessions they'll override OAuth
- // session restore for previous users.
- UserSessionManager::GetInstance()->RestoreAuthenticationSession(profile);
- }
-
- // Restore other user sessions if any.
- RestorePendingUserSessions();
-}
-
void UserManagerImpl::EnsureUsersLoaded() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
if (!g_browser_process || !g_browser_process->local_state())
@@ -1699,14 +1668,6 @@ void UserManagerImpl::NotifyActiveUserHashChanged(const std::string& hash) {
ActiveUserHashChanged(hash));
}
-void UserManagerImpl::NotifyPendingUserSessionsRestoreFinished() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- user_sessions_restored_ = true;
- FOR_EACH_OBSERVER(UserManager::UserSessionStateObserver,
- session_state_observer_list_,
- PendingUserSessionsRestoreFinished());
-}
-
void UserManagerImpl::UpdateLoginState() {
if (!LoginState::IsInitialized())
return; // LoginState may not be intialized in tests.
@@ -1749,73 +1710,6 @@ void UserManagerImpl::SetLRUUser(User* user) {
lru_logged_in_users_.insert(lru_logged_in_users_.begin(), user);
}
-void UserManagerImpl::OnRestoreActiveSessions(
- const SessionManagerClient::ActiveSessionsMap& sessions,
- bool success) {
- if (!success) {
- LOG(ERROR) << "Could not get list of active user sessions after crash.";
- // If we could not get list of active user sessions it is safer to just
- // sign out so that we don't get in the inconsistent state.
- DBusThreadManager::Get()->GetSessionManagerClient()->StopSession();
- return;
- }
-
- // One profile has been already loaded on browser start.
- DCHECK(GetLoggedInUsers().size() == 1);
- DCHECK(GetActiveUser());
- std::string active_user_id = GetActiveUser()->email();
-
- SessionManagerClient::ActiveSessionsMap::const_iterator it;
- for (it = sessions.begin(); it != sessions.end(); ++it) {
- if (active_user_id == it->first)
- continue;
- pending_user_sessions_[it->first] = it->second;
- }
- RestorePendingUserSessions();
-}
-
-void UserManagerImpl::RestorePendingUserSessions() {
- if (pending_user_sessions_.empty()) {
- NotifyPendingUserSessionsRestoreFinished();
- return;
- }
-
- // Get next user to restore sessions and delete it from list.
- SessionManagerClient::ActiveSessionsMap::const_iterator it =
- pending_user_sessions_.begin();
- std::string user_id = it->first;
- std::string user_id_hash = it->second;
- DCHECK(!user_id.empty());
- DCHECK(!user_id_hash.empty());
- pending_user_sessions_.erase(user_id);
-
- // Check that this user is not logged in yet.
- UserList logged_in_users = GetLoggedInUsers();
- bool user_already_logged_in = false;
- for (UserList::const_iterator it = logged_in_users.begin();
- it != logged_in_users.end(); ++it) {
- const User* user = (*it);
- if (user->email() == user_id) {
- user_already_logged_in = true;
- break;
- }
- }
- DCHECK(!user_already_logged_in);
-
- if (!user_already_logged_in) {
- UserContext user_context(user_id);
- user_context.SetUserIDHash(user_id_hash);
- user_context.SetIsUsingOAuth(false);
- // Will call OnProfilePrepared() once profile has been loaded.
- LoginUtils::Get()->PrepareProfile(user_context,
- false, // has_auth_cookies
- true, // has_active_session
- this);
- } else {
- RestorePendingUserSessions();
- }
-}
-
void UserManagerImpl::SendRegularUserLoginMetrics(const std::string& user_id) {
// If this isn't the first time Chrome was run after the system booted,
// assume that Chrome was restarted because a previous session ended.
« no previous file with comments | « chrome/browser/chromeos/login/users/user_manager_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698