Chromium Code Reviews| Index: chrome/browser/ui/ash/session_state_delegate_chromeos.cc |
| diff --git a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc |
| index c37dd6dc7560d2c366badb86b4b48039b2d43558..662dfcd8cfb3c031cc224d8a7fff2c83873d2f65 100644 |
| --- a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc |
| +++ b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc |
| @@ -158,14 +158,16 @@ gfx::ImageSkia SessionStateDelegateChromeos::GetAvatarImageForWindow( |
| } |
| void SessionStateDelegateChromeos::SwitchActiveUser( |
| - const std::string& user_id) { |
| + const AccountId& account_id) { |
| // Disallow switching to an already active user since that might crash. |
| // Also check that we got a user id and not an email address. |
| - DCHECK_EQ(user_id, |
| - gaia::CanonicalizeEmail(gaia::SanitizeEmail(user_id))); |
| - if (user_id == user_manager::UserManager::Get()->GetActiveUser()->email()) |
| + DCHECK_EQ( |
| + account_id.GetUserEmail(), |
| + gaia::CanonicalizeEmail(gaia::SanitizeEmail(account_id.GetUserEmail()))); |
|
stevenjb
2015/11/06 17:45:29
Is this DCHECK really necessary any more?
Alexander Alekseev
2015/11/06 23:38:59
It is still needed for the transition time. I'll d
|
| + if (account_id == |
| + user_manager::UserManager::Get()->GetActiveUser()->GetAccountId()) |
| return; |
| - TryToSwitchUser(user_id); |
| + TryToSwitchUser(account_id); |
| } |
| void SessionStateDelegateChromeos::CycleActiveUser(CycleUser cycle_user) { |
| @@ -176,14 +178,14 @@ void SessionStateDelegateChromeos::CycleActiveUser(CycleUser cycle_user) { |
| const user_manager::UserList& logged_in_users = |
| user_manager::UserManager::Get()->GetLoggedInUsers(); |
| - std::string user_id = |
| - user_manager::UserManager::Get()->GetActiveUser()->email(); |
| + AccountId account_id = |
| + user_manager::UserManager::Get()->GetActiveUser()->GetAccountId(); |
| // Get an iterator positioned at the active user. |
| user_manager::UserList::const_iterator it; |
| for (it = logged_in_users.begin(); |
| it != logged_in_users.end(); ++it) { |
| - if ((*it)->email() == user_id) |
| + if ((*it)->GetAccountId() == account_id) |
| break; |
| } |
| @@ -196,19 +198,19 @@ void SessionStateDelegateChromeos::CycleActiveUser(CycleUser cycle_user) { |
| switch (cycle_user) { |
| case CYCLE_TO_NEXT_USER: |
| if (++it == logged_in_users.end()) |
| - user_id = (*logged_in_users.begin())->email(); |
| + account_id = (*logged_in_users.begin())->GetAccountId(); |
| else |
| - user_id = (*it)->email(); |
| + account_id = (*it)->GetAccountId(); |
| break; |
| case CYCLE_TO_PREVIOUS_USER: |
| if (it == logged_in_users.begin()) |
| it = logged_in_users.end(); |
| - user_id = (*(--it))->email(); |
| + account_id = (*(--it))->GetAccountId(); |
| break; |
| } |
| - // Switch using the transformed |user_id|. |
| - TryToSwitchUser(user_id); |
| + // Switch using the transformed |account_id|. |
| + TryToSwitchUser(account_id); |
| } |
| bool SessionStateDelegateChromeos::IsMultiProfileAllowedByPrimaryUserPolicy() |
| @@ -234,16 +236,14 @@ void SessionStateDelegateChromeos::LoggedInStateChanged() { |
| void SessionStateDelegateChromeos::ActiveUserChanged( |
| const user_manager::User* active_user) { |
| - FOR_EACH_OBSERVER(ash::SessionStateObserver, |
| - session_state_observer_list_, |
| - ActiveUserChanged(active_user->email())); |
| + FOR_EACH_OBSERVER(ash::SessionStateObserver, session_state_observer_list_, |
| + ActiveUserChanged(active_user->GetAccountId())); |
| } |
| void SessionStateDelegateChromeos::UserAddedToSession( |
| const user_manager::User* added_user) { |
| - FOR_EACH_OBSERVER(ash::SessionStateObserver, |
| - session_state_observer_list_, |
| - UserAddedToSession(added_user->email())); |
| + FOR_EACH_OBSERVER(ash::SessionStateObserver, session_state_observer_list_, |
| + UserAddedToSession(added_user->GetAccountId())); |
| } |
| void SessionStateDelegateChromeos::OnUserAddingStarted() { |
| @@ -269,12 +269,11 @@ void SessionStateDelegateChromeos::NotifySessionStateChanged() { |
| SessionStateChanged(session_state_)); |
| } |
| -void DoSwitchUser(const std::string& user_id) { |
| - user_manager::UserManager::Get()->SwitchActiveUser( |
| - AccountId::FromUserEmail(user_id)); |
| +void DoSwitchUser(const AccountId& account_id) { |
| + user_manager::UserManager::Get()->SwitchActiveUser(account_id); |
| } |
| void SessionStateDelegateChromeos::TryToSwitchUser( |
| - const std::string& user_id) { |
| - ash::TrySwitchingActiveUser(base::Bind(&DoSwitchUser, user_id)); |
| + const AccountId& account_id) { |
| + ash::TrySwitchingActiveUser(base::Bind(&DoSwitchUser, account_id)); |
| } |