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

Unified Diff: ash/mus/bridge/wm_shell_mus.cc

Issue 2041233004: mash: Move //ash/session to //ash/common/session (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 6 months 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
« no previous file with comments | « ash/mus/bridge/wm_shell_mus.h ('k') | ash/root_window_controller.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/mus/bridge/wm_shell_mus.cc
diff --git a/ash/mus/bridge/wm_shell_mus.cc b/ash/mus/bridge/wm_shell_mus.cc
index dc0c299e59838c4160d6d0a95107fa0345818203..effc0ec58b469c140938b8fbf46d539c35b902a7 100644
--- a/ash/mus/bridge/wm_shell_mus.cc
+++ b/ash/mus/bridge/wm_shell_mus.cc
@@ -4,6 +4,7 @@
#include "ash/mus/bridge/wm_shell_mus.h"
+#include "ash/common/session/session_state_delegate.h"
#include "ash/common/shell_window_ids.h"
#include "ash/common/wm/window_resizer.h"
#include "ash/common/wm_activation_observer.h"
@@ -16,11 +17,76 @@
#include "components/mus/common/util.h"
#include "components/mus/public/cpp/window.h"
#include "components/mus/public/cpp/window_tree_client.h"
+#include "components/user_manager/user_info_impl.h"
namespace ash {
namespace mus {
-WmShellMus::WmShellMus(::mus::WindowTreeClient* client) : client_(client) {
+namespace {
+
+// TODO(jamescook): After ShellDelegate is ported to ash/common use
+// ShellDelegate::CreateSessionStateDelegate() to construct the mus version
+// of SessionStateDelegate.
+class SessionStateDelegateStub : public SessionStateDelegate {
+ public:
+ SessionStateDelegateStub()
+ : screen_locked_(false), user_info_(new user_manager::UserInfoImpl()) {}
+
+ ~SessionStateDelegateStub() 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 ShouldLockScreenBeforeSuspending() const override { return false; }
+ void LockScreen() override {
+ screen_locked_ = true;
+ NOTIMPLEMENTED();
+ }
+ void UnlockScreen() override {
+ NOTIMPLEMENTED();
+ screen_locked_ = false;
+ }
+ bool IsUserSessionBlocked() const override { return false; }
+ SessionState GetSessionState() const override { return SESSION_STATE_ACTIVE; }
+ const user_manager::UserInfo* GetUserInfo(UserIndex index) const override {
+ return user_info_.get();
+ }
+ bool ShouldShowAvatar(WmWindow* window) const override {
+ NOTIMPLEMENTED();
+ return !user_info_->GetImage().isNull();
+ }
+ gfx::ImageSkia GetAvatarImageForWindow(WmWindow* window) const override {
+ NOTIMPLEMENTED();
+ return gfx::ImageSkia();
+ }
+ void SwitchActiveUser(const AccountId& account_id) override {}
+ void CycleActiveUser(CycleUser cycle_user) override {}
+ bool IsMultiProfileAllowedByPrimaryUserPolicy() const override {
+ return true;
+ }
+ void AddSessionStateObserver(ash::SessionStateObserver* observer) override {}
+ void RemoveSessionStateObserver(
+ ash::SessionStateObserver* observer) override {}
+
+ private:
+ bool screen_locked_;
+
+ // A pseudo user info.
+ std::unique_ptr<user_manager::UserInfo> user_info_;
+
+ DISALLOW_COPY_AND_ASSIGN(SessionStateDelegateStub);
+};
+
+} // namespace
+
+WmShellMus::WmShellMus(::mus::WindowTreeClient* client)
+ : client_(client), session_state_delegate_(new SessionStateDelegateStub) {
client_->AddObserver(this);
WmShell::Set(this);
}
@@ -109,16 +175,6 @@ bool WmShellMus::IsForceMaximizeOnFirstRun() {
return false;
}
-bool WmShellMus::IsUserSessionBlocked() {
- NOTIMPLEMENTED();
- return false;
-}
-
-bool WmShellMus::IsScreenLocked() {
- NOTIMPLEMENTED();
- return false;
-}
-
bool WmShellMus::CanShowWindowForUser(WmWindow* window) {
NOTIMPLEMENTED();
return true;
@@ -160,6 +216,10 @@ bool WmShellMus::IsOverviewModeRestoringMinimizedWindows() {
return false;
}
+SessionStateDelegate* WmShellMus::GetSessionStateDelegate() {
+ return session_state_delegate_.get();
+}
+
void WmShellMus::AddActivationObserver(WmActivationObserver* observer) {
activation_observers_.AddObserver(observer);
}
« no previous file with comments | « ash/mus/bridge/wm_shell_mus.h ('k') | ash/root_window_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698