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 91723aa6b1d54626a98c9e03df45adf7f42bf72b..c495df200b8dbca92915b92e76b0c33a6d707aa9 100644 |
| --- a/chrome/browser/ui/ash/session_state_delegate_chromeos.cc |
| +++ b/chrome/browser/ui/ash/session_state_delegate_chromeos.cc |
| @@ -18,14 +18,10 @@ |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h" |
| -#include "chrome/browser/ui/ash/multi_user/user_switch_util.h" |
| +#include "chrome/browser/ui/ash/session_controller_client.h" |
| #include "chrome/browser/ui/ash/session_util.h" |
| -#include "chrome/common/pref_names.h" |
| #include "chromeos/chromeos_switches.h" |
| -#include "chromeos/dbus/dbus_thread_manager.h" |
| -#include "chromeos/dbus/session_manager_client.h" |
| #include "chromeos/login/login_state.h" |
| -#include "components/prefs/pref_service.h" |
| #include "components/session_manager/core/session_manager.h" |
| #include "components/signin/core/account_id/account_id.h" |
| #include "components/user_manager/user.h" |
| @@ -79,12 +75,7 @@ int SessionStateDelegateChromeos::NumberOfLoggedInUsers() const { |
| ash::AddUserSessionPolicy |
| SessionStateDelegateChromeos::GetAddUserSessionPolicy() const { |
| - if (user_manager::UserManager::Get() |
| - ->GetUsersAllowedForMultiProfile() |
| - .size() == 0) { |
| - return ash::AddUserSessionPolicy::ERROR_NO_ELIGIBLE_USERS; |
| - } |
| - return SessionStateDelegate::GetAddUserSessionPolicy(); |
| + return SessionControllerClient::GetAddUserSessionPolicy(); |
|
James Cook
2016/12/01 23:01:44
I like how you migrated this code directly into st
xiyuan
2016/12/06 00:46:34
I am lucky that those helpers do not have state in
|
| } |
| bool SessionStateDelegateChromeos::IsActiveUserSessionStarted() const { |
| @@ -93,9 +84,7 @@ bool SessionStateDelegateChromeos::IsActiveUserSessionStarted() const { |
| } |
| bool SessionStateDelegateChromeos::CanLockScreen() const { |
| - const user_manager::UserList unlock_users = |
| - user_manager::UserManager::Get()->GetUnlockUsers(); |
| - return !unlock_users.empty(); |
| + return SessionControllerClient::CanLockScreen(); |
| } |
| bool SessionStateDelegateChromeos::IsScreenLocked() const { |
| @@ -104,28 +93,11 @@ bool SessionStateDelegateChromeos::IsScreenLocked() const { |
| } |
| bool SessionStateDelegateChromeos::ShouldLockScreenAutomatically() const { |
| - const user_manager::UserList logged_in_users = |
| - user_manager::UserManager::Get()->GetLoggedInUsers(); |
| - for (user_manager::UserList::const_iterator it = logged_in_users.begin(); |
| - it != logged_in_users.end(); |
| - ++it) { |
| - user_manager::User* user = (*it); |
| - Profile* profile = chromeos::ProfileHelper::Get()->GetProfileByUser(user); |
| - if (profile && |
| - profile->GetPrefs()->GetBoolean(prefs::kEnableAutoScreenLock)) { |
| - return true; |
| - } |
| - } |
| - return false; |
| + return SessionControllerClient::ShouldLockScreenAutomatically(); |
| } |
| void SessionStateDelegateChromeos::LockScreen() { |
| - if (!CanLockScreen()) |
| - return; |
| - |
| - VLOG(1) << "Requesting screen lock from SessionStateDelegate"; |
| - chromeos::DBusThreadManager::Get()->GetSessionManagerClient()-> |
| - RequestLockScreen(); |
| + return SessionControllerClient::DoLockScreen(); |
| } |
| void SessionStateDelegateChromeos::UnlockScreen() { |
| @@ -168,58 +140,11 @@ gfx::ImageSkia SessionStateDelegateChromeos::GetAvatarImageForWindow( |
| void SessionStateDelegateChromeos::SwitchActiveUser( |
| 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( |
| - account_id.GetUserEmail(), |
| - gaia::CanonicalizeEmail(gaia::SanitizeEmail(account_id.GetUserEmail()))); |
| - if (account_id == |
| - user_manager::UserManager::Get()->GetActiveUser()->GetAccountId()) |
| - return; |
| - TryToSwitchUser(account_id); |
| + SessionControllerClient::DoSwitchActiveUser(account_id); |
| } |
| void SessionStateDelegateChromeos::CycleActiveUser(CycleUser cycle_user) { |
| - // Make sure there is a user to switch to. |
| - if (NumberOfLoggedInUsers() <= 1) |
| - return; |
| - |
| - const user_manager::UserList& logged_in_users = |
| - user_manager::UserManager::Get()->GetLoggedInUsers(); |
| - |
| - 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)->GetAccountId() == account_id) |
| - break; |
| - } |
| - |
| - // Active user not found. |
| - if (it == logged_in_users.end()) |
| - return; |
| - |
| - // Get the user's email to select, wrapping to the start/end of the list if |
| - // necessary. |
| - switch (cycle_user) { |
| - case CYCLE_TO_NEXT_USER: |
| - if (++it == logged_in_users.end()) |
| - account_id = (*logged_in_users.begin())->GetAccountId(); |
| - else |
| - account_id = (*it)->GetAccountId(); |
| - break; |
| - case CYCLE_TO_PREVIOUS_USER: |
| - if (it == logged_in_users.begin()) |
| - it = logged_in_users.end(); |
| - account_id = (*(--it))->GetAccountId(); |
| - break; |
| - } |
| - |
| - // Switch using the transformed |account_id|. |
| - TryToSwitchUser(account_id); |
| + SessionControllerClient::DoCycleActiveUser(cycle_user == CYCLE_TO_NEXT_USER); |
| } |
| bool SessionStateDelegateChromeos::IsMultiProfileAllowedByPrimaryUserPolicy() |
| @@ -279,12 +204,3 @@ void SessionStateDelegateChromeos::NotifySessionStateChanged() { |
| for (ash::SessionStateObserver& observer : session_state_observer_list_) |
| observer.SessionStateChanged(session_state_); |
| } |
| - |
| -void DoSwitchUser(const AccountId& account_id) { |
| - user_manager::UserManager::Get()->SwitchActiveUser(account_id); |
| -} |
| - |
| -void SessionStateDelegateChromeos::TryToSwitchUser( |
| - const AccountId& account_id) { |
| - TrySwitchingActiveUser(base::Bind(&DoSwitchUser, account_id)); |
| -} |