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

Unified Diff: ash/common/wm_shell.h

Issue 2573703003: chromeos: Fix shelf appearing at login screen under mash (Closed)
Patch Set: rebase on session change, fix tests 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: ash/common/wm_shell.h
diff --git a/ash/common/wm_shell.h b/ash/common/wm_shell.h
index e0267f04a05c795cba5f7bd8aed92f5414640c69..38e8d726efdf8baf81b3b8de4d0115295f9f4e24 100644
--- a/ash/common/wm_shell.h
+++ b/ash/common/wm_shell.h
@@ -13,6 +13,7 @@
#include "ash/ash_export.h"
#include "ash/common/metrics/gesture_action_type.h"
#include "ash/common/metrics/user_metrics_action.h"
+#include "ash/common/session/session_state_observer.h"
#include "ash/common/wm/lock_state_observer.h"
#include "base/observer_list.h"
#include "components/ui_devtools/devtools_server.h"
@@ -100,7 +101,7 @@ class VpnList;
#endif
// Similar to ash::Shell. Eventually the two will be merged.
-class ASH_EXPORT WmShell {
+class ASH_EXPORT WmShell : public SessionStateObserver {
msw 2016/12/16 16:26:20 Hmm, this is a little unfortunate; how tough would
James Cook 2016/12/20 04:02:42 I don't have an elegant way to get rid of this. I
msw 2016/12/20 15:37:30 I guess it's okay for the shell to observe session
James Cook 2016/12/20 17:27:18 Per offline discussion, keeping as-is. We also mi
public:
// This is necessary for a handful of places that is difficult to plumb
// through context.
@@ -343,9 +344,6 @@ class ASH_EXPORT WmShell {
// Initializes the appropriate shelves. Does nothing for any existing shelves.
void CreateShelf();
- // Show shelf view if it was created hidden (before session has started).
- void ShowShelf();
-
void CreateShelfDelegate();
// Called after maximize mode has started, windows might still animate though.
@@ -362,6 +360,10 @@ class ASH_EXPORT WmShell {
// Called after overview mode has ended.
virtual void OnOverviewModeEnded() = 0;
+ // Called after the initial user logs in and again after each additional user
+ // is added to the session. See session_manager::SessionState::ACTIVE.
+ virtual void OnUserSessionStateActive() = 0;
msw 2016/12/16 16:26:20 This is a bit odd; if we do indeed keep WmShell as
James Cook 2016/12/20 04:02:43 Removed.
+
// Called when the login status changes.
// TODO(oshima): Investigate if we can merge this and |OnLoginStateChanged|.
void UpdateAfterLoginStatusChange(LoginStatus status);
@@ -446,7 +448,7 @@ class ASH_EXPORT WmShell {
protected:
explicit WmShell(std::unique_ptr<ShellDelegate> shell_delegate);
- virtual ~WmShell();
+ ~WmShell() override;
base::ObserverList<ShellObserver>* shell_observers() {
return &shell_observers_;
@@ -480,6 +482,9 @@ class ASH_EXPORT WmShell {
friend class Shell;
friend class WmShellTestApi;
+ // SessionStateObserver:
+ void SessionStateChanged(session_manager::SessionState state) override;
+
static WmShell* instance_;
base::ObserverList<ShellObserver> shell_observers_;

Powered by Google App Engine
This is Rietveld 408576698