ash: Use SessionController instead of SessionStateDelegate
- Switch SessionStateDelegate callers to SessionController;
- Remove all migrated methods from SessionStateDelegate;
- Update tests;
- Update ash_shell_with_content;
- Changed ScreenLocker to set SessionState::ACTIVE before destroying
LockWindow so that focus is properly restored after lock;
- Changed UserSessionManager to set SessionState::ACTIVE before
creating browser window so that the created window receives focus;
BUG=648964,699234
Review-Url: https://codereview.chromium.org/2734933004
Cr-Commit-Position: refs/heads/master@{#458168}
diff --git a/ash/shell/shell_delegate_impl.cc b/ash/shell/shell_delegate_impl.cc
index e77396a..5da0db9 100644
--- a/ash/shell/shell_delegate_impl.cc
+++ b/ash/shell/shell_delegate_impl.cc
@@ -59,59 +59,19 @@
class SessionStateDelegateImpl : public SessionStateDelegate {
public:
- SessionStateDelegateImpl()
- : screen_locked_(false), user_info_(new user_manager::UserInfoImpl()) {}
+ SessionStateDelegateImpl() : user_info_(new user_manager::UserInfoImpl()) {}
~SessionStateDelegateImpl() override {}
// SessionStateDelegate:
- int GetMaximumNumberOfLoggedInUsers() const override { return 3; }
- int NumberOfLoggedInUsers() const override {
- // ash_shell has 2 users.
- return 2;
- }
- bool IsActiveUserSessionStarted() const override { return true; }
- bool CanLockScreen() const override { return true; }
- bool IsScreenLocked() const override { return screen_locked_; }
- bool ShouldLockScreenAutomatically() const override { return false; }
- void LockScreen() override {
- shell::CreateLockScreen();
- screen_locked_ = true;
- Shell::GetInstance()->UpdateShelfVisibility();
- }
- void UnlockScreen() override {
- screen_locked_ = false;
- Shell::GetInstance()->UpdateShelfVisibility();
- }
- bool IsUserSessionBlocked() const override {
- return !IsActiveUserSessionStarted() || IsScreenLocked();
- }
- session_manager::SessionState GetSessionState() const override {
- // Assume that if session is not active we're at login.
- return IsActiveUserSessionStarted()
- ? session_manager::SessionState::ACTIVE
- : session_manager::SessionState::LOGIN_PRIMARY;
- }
- const user_manager::UserInfo* GetUserInfo(UserIndex index) const override {
- return user_info_.get();
- }
bool ShouldShowAvatar(WmWindow* window) const override {
return !user_info_->GetImage().isNull();
}
gfx::ImageSkia GetAvatarImageForWindow(WmWindow* window) const override {
return gfx::ImageSkia();
}
- void SwitchActiveUser(const AccountId& account_id) override {}
- void CycleActiveUser(CycleUserDirection direction) override {}
- bool IsMultiProfileAllowedByPrimaryUserPolicy() const override {
- return true;
- }
- void AddSessionStateObserver(SessionStateObserver* observer) override {}
- void RemoveSessionStateObserver(SessionStateObserver* observer) override {}
private:
- bool screen_locked_;
-
// A pseudo user info.
std::unique_ptr<user_manager::UserInfo> user_info_;