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

Unified Diff: chromeos/dbus/session_manager_client.cc

Issue 852453005: chromeos: Make CheckIdleStateIsLocked() query D-Bus client. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sigh, MockSessionManagerClient Created 5 years, 11 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 | « chromeos/dbus/session_manager_client.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/dbus/session_manager_client.cc
diff --git a/chromeos/dbus/session_manager_client.cc b/chromeos/dbus/session_manager_client.cc
index 6dc2dce0414108e2f1ca9b374e9688bd3e0f67c3..27adf8b6c25f60f0db56be41b4c269777d750f14 100644
--- a/chromeos/dbus/session_manager_client.cc
+++ b/chromeos/dbus/session_manager_client.cc
@@ -66,6 +66,7 @@ class SessionManagerClientImpl : public SessionManagerClient {
public:
SessionManagerClientImpl()
: session_manager_proxy_(NULL),
+ screen_is_locked_(false),
weak_ptr_factory_(this) {}
virtual ~SessionManagerClientImpl() {
@@ -88,6 +89,8 @@ class SessionManagerClientImpl : public SessionManagerClient {
return observers_.HasObserver(observer);
}
+ virtual bool IsScreenLocked() const override { return screen_is_locked_; }
+
virtual void EmitLoginPromptVisible() override {
SimpleMethodCallToSessionManager(
login_manager::kSessionManagerEmitLoginPromptVisible);
@@ -517,10 +520,12 @@ class SessionManagerClientImpl : public SessionManagerClient {
}
void ScreenIsLockedReceived(dbus::Signal* signal) {
+ screen_is_locked_ = true;
FOR_EACH_OBSERVER(Observer, observers_, ScreenIsLocked());
}
void ScreenIsUnlockedReceived(dbus::Signal* signal) {
+ screen_is_locked_ = false;
FOR_EACH_OBSERVER(Observer, observers_, ScreenIsUnlocked());
}
@@ -568,6 +573,9 @@ class SessionManagerClientImpl : public SessionManagerClient {
scoped_ptr<BlockingMethodCaller> blocking_method_caller_;
ObserverList<Observer> observers_;
+ // Most recent screen-lock state received from session_manager.
+ bool screen_is_locked_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate its weak pointers before any other members are destroyed.
base::WeakPtrFactory<SessionManagerClientImpl> weak_ptr_factory_;
@@ -579,7 +587,7 @@ class SessionManagerClientImpl : public SessionManagerClient {
// which does nothing.
class SessionManagerClientStubImpl : public SessionManagerClient {
public:
- SessionManagerClientStubImpl() : delegate_(NULL) {}
+ SessionManagerClientStubImpl() : delegate_(NULL), screen_is_locked_(false) {}
virtual ~SessionManagerClientStubImpl() {}
// SessionManagerClient overrides
@@ -596,6 +604,7 @@ class SessionManagerClientStubImpl : public SessionManagerClient {
virtual bool HasObserver(const Observer* observer) const override {
return observers_.HasObserver(observer);
}
+ virtual bool IsScreenLocked() const override { return screen_is_locked_; }
virtual void EmitLoginPromptVisible() override {}
virtual void RestartJob(int pid, const std::string& command_line) override {}
virtual void StartSession(const std::string& user_email) override {}
@@ -608,9 +617,11 @@ class SessionManagerClientStubImpl : public SessionManagerClient {
delegate_->LockScreenForStub();
}
virtual void NotifyLockScreenShown() override {
+ screen_is_locked_ = true;
FOR_EACH_OBSERVER(Observer, observers_, ScreenIsLocked());
}
virtual void NotifyLockScreenDismissed() override {
+ screen_is_locked_ = false;
FOR_EACH_OBSERVER(Observer, observers_, ScreenIsUnlocked());
}
virtual void RetrieveActiveSessions(
@@ -732,6 +743,7 @@ class SessionManagerClientStubImpl : public SessionManagerClient {
StubDelegate* delegate_; // Weak pointer; may be NULL.
ObserverList<Observer> observers_;
std::string device_policy_;
+ bool screen_is_locked_;
DISALLOW_COPY_AND_ASSIGN(SessionManagerClientStubImpl);
};
« no previous file with comments | « chromeos/dbus/session_manager_client.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698