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

Unified Diff: chrome/browser/ui/ash/session_state_delegate_chromeos.cc

Issue 2545723003: ash: Add SessionController/Client mojo interfaces (Closed)
Patch Set: rebase, use ash_util::GetAshServiceName Created 4 years 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
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();
}
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));
-}
« no previous file with comments | « chrome/browser/ui/ash/session_controller_client.cc ('k') | chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698