| Index: chromeos/dbus/session_manager_client.cc
|
| diff --git a/chromeos/dbus/session_manager_client.cc b/chromeos/dbus/session_manager_client.cc
|
| index 737a9be3786463fd6e0d8995fdb76e3a240d56af..27858284366571281b977be3666941f1a02c29a2 100644
|
| --- a/chromeos/dbus/session_manager_client.cc
|
| +++ b/chromeos/dbus/session_manager_client.cc
|
| @@ -36,6 +36,10 @@ class SessionManagerClientImpl : public SessionManagerClient {
|
| }
|
|
|
| // SessionManagerClient overrides:
|
| + virtual void SetStubDelegate(StubDelegate* delegate) OVERRIDE {
|
| + // Do nothing; this isn't a stub implementation.
|
| + }
|
| +
|
| virtual void AddObserver(Observer* observer) OVERRIDE {
|
| observers_.AddObserver(observer);
|
| }
|
| @@ -238,16 +242,6 @@ class SessionManagerClientImpl : public SessionManagerClient {
|
| blocking_method_caller_.reset(
|
| new BlockingMethodCaller(bus, session_manager_proxy_));
|
|
|
| - // Signals emitted on Chromium's interface. Many of these ought to be
|
| - // method calls instead.
|
| - session_manager_proxy_->ConnectToSignal(
|
| - chromium::kChromiumInterface,
|
| - chromium::kLockScreenSignal,
|
| - base::Bind(&SessionManagerClientImpl::ScreenLockReceived,
|
| - weak_ptr_factory_.GetWeakPtr()),
|
| - base::Bind(&SessionManagerClientImpl::SignalConnected,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| -
|
| // Signals emitted on the session manager's interface.
|
| session_manager_proxy_->ConnectToSignal(
|
| login_manager::kSessionManagerInterface,
|
| @@ -463,10 +457,6 @@ class SessionManagerClientImpl : public SessionManagerClient {
|
| FOR_EACH_OBSERVER(Observer, observers_, PropertyChangeComplete(success));
|
| }
|
|
|
| - void ScreenLockReceived(dbus::Signal* signal) {
|
| - FOR_EACH_OBSERVER(Observer, observers_, LockScreen());
|
| - }
|
| -
|
| void ScreenIsLockedReceived(dbus::Signal* signal) {
|
| FOR_EACH_OBSERVER(Observer, observers_, ScreenIsLocked());
|
| }
|
| @@ -497,7 +487,7 @@ class SessionManagerClientImpl : public SessionManagerClient {
|
| // which does nothing.
|
| class SessionManagerClientStubImpl : public SessionManagerClient {
|
| public:
|
| - SessionManagerClientStubImpl() {}
|
| + SessionManagerClientStubImpl() : delegate_(NULL) {}
|
| virtual ~SessionManagerClientStubImpl() {}
|
|
|
| // SessionManagerClient overrides
|
| @@ -514,6 +504,9 @@ class SessionManagerClientStubImpl : public SessionManagerClient {
|
| }
|
| }
|
|
|
| + virtual void SetStubDelegate(StubDelegate* delegate) OVERRIDE {
|
| + delegate_ = delegate;
|
| + }
|
| virtual void AddObserver(Observer* observer) OVERRIDE {
|
| observers_.AddObserver(observer);
|
| }
|
| @@ -529,7 +522,8 @@ class SessionManagerClientStubImpl : public SessionManagerClient {
|
| virtual void StopSession() OVERRIDE {}
|
| virtual void StartDeviceWipe() OVERRIDE {}
|
| virtual void RequestLockScreen() OVERRIDE {
|
| - FOR_EACH_OBSERVER(Observer, observers_, LockScreen());
|
| + if (delegate_)
|
| + delegate_->LockScreenForStub();
|
| }
|
| virtual void NotifyLockScreenShown() OVERRIDE {
|
| FOR_EACH_OBSERVER(Observer, observers_, ScreenIsLocked());
|
| @@ -617,6 +611,7 @@ class SessionManagerClientStubImpl : public SessionManagerClient {
|
| }
|
|
|
| private:
|
| + StubDelegate* delegate_; // Weak pointer; may be NULL.
|
| ObserverList<Observer> observers_;
|
| std::string device_policy_;
|
| std::map<std::string, std::string> user_policies_;
|
|
|