| 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())));
|
| + 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));
|
| }
|
|
|