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

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

Issue 9703022: Set valid profile image when logging in as demo user (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 9 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/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/user_manager_impl.cc
diff --git a/chrome/browser/chromeos/login/user_manager_impl.cc b/chrome/browser/chromeos/login/user_manager_impl.cc
index 88a4c763102b8639b8e306545c4514d15d3f9de0..1f52a25efb3e4d6efe94203636aca71c93f75fa8 100644
--- a/chrome/browser/chromeos/login/user_manager_impl.cc
+++ b/chrome/browser/chromeos/login/user_manager_impl.cc
@@ -321,52 +321,48 @@ void UserManagerImpl::UserLoggedIn(const std::string& email) {
is_user_logged_in_ = true;
if (email == kGuestUser) {
- is_current_user_ephemeral_ = true;
GuestUserLoggedIn();
return;
}
if (email == kDemoUser) {
- is_current_user_ephemeral_ = true;
DemoUserLoggedIn();
return;
}
if (IsEphemeralUser(email)) {
+ EphemeralUserLoggedIn(email);
+ return;
+ }
+
+ EnsureUsersLoaded();
+
+ // Clear the prefs view of the users.
+ PrefService* prefs = g_browser_process->local_state();
+ ListPrefUpdate prefs_users_update(prefs, UserManager::kLoggedInUsers);
+ prefs_users_update->Clear();
+
+ // Make sure this user is first.
+ prefs_users_update->Append(Value::CreateStringValue(email));
+ UserList::iterator logged_in_user = users_.end();
+ for (UserList::iterator it = users_.begin(); it != users_.end(); ++it) {
+ std::string user_email = (*it)->email();
+ // Skip the most recent user.
+ if (email != user_email)
+ prefs_users_update->Append(Value::CreateStringValue(user_email));
+ else
+ logged_in_user = it;
+ }
+
+ if (logged_in_user == users_.end()) {
is_current_user_new_ = true;
- is_current_user_ephemeral_ = true;
logged_in_user_ = CreateUser(email);
- SetInitialUserImage(email);
} else {
- EnsureUsersLoaded();
-
- // Clear the prefs view of the users.
- PrefService* prefs = g_browser_process->local_state();
- ListPrefUpdate prefs_users_update(prefs, UserManager::kLoggedInUsers);
- prefs_users_update->Clear();
-
- // Make sure this user is first.
- prefs_users_update->Append(Value::CreateStringValue(email));
- UserList::iterator logged_in_user = users_.end();
- for (UserList::iterator it = users_.begin(); it != users_.end(); ++it) {
- std::string user_email = (*it)->email();
- // Skip the most recent user.
- if (email != user_email)
- prefs_users_update->Append(Value::CreateStringValue(user_email));
- else
- logged_in_user = it;
- }
-
- if (logged_in_user == users_.end()) {
- is_current_user_new_ = true;
- logged_in_user_ = CreateUser(email);
- } else {
- logged_in_user_ = *logged_in_user;
- users_.erase(logged_in_user);
- }
- // This user must be in the front of the user list.
- users_.insert(users_.begin(), logged_in_user_);
+ logged_in_user_ = *logged_in_user;
+ users_.erase(logged_in_user);
}
+ // This user must be in the front of the user list.
+ users_.insert(users_.begin(), logged_in_user_);
NotifyOnLogin();
@@ -404,15 +400,27 @@ void UserManagerImpl::UserLoggedIn(const std::string& email) {
}
void UserManagerImpl::DemoUserLoggedIn() {
+ is_current_user_new_ = true;
+ is_current_user_ephemeral_ = true;
logged_in_user_ = &demo_user_;
+ SetInitialUserImage(kDemoUser);
NotifyOnLogin();
}
void UserManagerImpl::GuestUserLoggedIn() {
+ is_current_user_ephemeral_ = true;
logged_in_user_ = &guest_user_;
NotifyOnLogin();
}
+void UserManagerImpl::EphemeralUserLoggedIn(const std::string& email) {
+ is_current_user_new_ = true;
+ is_current_user_ephemeral_ = true;
+ logged_in_user_ = CreateUser(email);
+ SetInitialUserImage(email);
+ NotifyOnLogin();
+}
+
void UserManagerImpl::RemoveUser(const std::string& email,
RemoveUserDelegate* delegate) {
if (!IsKnownUser(email))
« no previous file with comments | « chrome/browser/chromeos/login/user_manager_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698