diff options
author | bartfab@google.com <bartfab@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-17 12:21:57 +0000 |
---|---|---|
committer | bartfab@google.com <bartfab@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-17 12:21:57 +0000 |
commit | 5b5495c70de838b40cc9e5990140fd9b2ad16987 (patch) | |
tree | b5b02aa5e8392edd79a275ffc613c0241e396414 /ash/session_state_delegate.h | |
parent | bac6ffd0f853d003e235a29d51f138ec4d70f034 (diff) | |
download | chromium_src-5b5495c70de838b40cc9e5990140fd9b2ad16987.zip chromium_src-5b5495c70de838b40cc9e5990140fd9b2ad16987.tar.gz chromium_src-5b5495c70de838b40cc9e5990140fd9b2ad16987.tar.bz2 |
Add ash SessionStateDelegate
This CL refactors the ShellDelegate by adding a SessionStateDelegate to
which methods dealing with the session state can be moved. This cleans up
the huge ShellDelegate interface and paves the way for further Chrome OS
multiprofile work which will need to add several new methods related to
the session state.
This CL is only the first step. Several other methods should also move to
SessionStateDelegate but I do not want to overburden a single CL.
BUG=None
TEST=Manual and browser/unit tests
TBR=sky (for c/b/idle_chromeos.cc and c/chrome_browser_ui.gypi)
Review URL: https://codereview.chromium.org/14295008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194578 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/session_state_delegate.h')
-rw-r--r-- | ash/session_state_delegate.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/ash/session_state_delegate.h b/ash/session_state_delegate.h new file mode 100644 index 0000000..f5ee359 --- /dev/null +++ b/ash/session_state_delegate.h @@ -0,0 +1,41 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ASH_SESSION_STATE_DELEGATE_H_ +#define ASH_SESSION_STATE_DELEGATE_H_ + +#include "ash/ash_export.h" + +namespace ash { + +// Delegate for checking and modifying the session state. +class ASH_EXPORT SessionStateDelegate { + public: + virtual ~SessionStateDelegate() {}; + + // Returns |true| if a session is in progress and there is an active user. + virtual bool HasActiveUser() const = 0; + + // Returns |true| if the session has been fully started for the active user. + // When a user becomes active, the profile and browser UI are not immediately + // available. Only once this method starts returning |true| is the browser + // startup complete and both profile and UI are fully available. + virtual bool IsActiveUserSessionStarted() const = 0; + + // Returns true if the screen can be locked. + virtual bool CanLockScreen() const = 0; + + // Returns true if the screen is currently locked. + virtual bool IsScreenLocked() const = 0; + + // Locks the screen. The locking happens asynchronously. + virtual void LockScreen() = 0; + + // Unlocks the screen. + virtual void UnlockScreen() = 0; +}; + +} // namespace ash + +#endif // ASH_SESSION_STATE_DELEGATE_H_ |