OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chromeos/dbus/session_manager_client.h" | 5 #include "chromeos/dbus/session_manager_client.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 dbus::MessageWriter writer(&method_call); | 64 dbus::MessageWriter writer(&method_call); |
65 writer.AppendInt32(pid); | 65 writer.AppendInt32(pid); |
66 writer.AppendString(command_line); | 66 writer.AppendString(command_line); |
67 session_manager_proxy_->CallMethod( | 67 session_manager_proxy_->CallMethod( |
68 &method_call, | 68 &method_call, |
69 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 69 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
70 base::Bind(&SessionManagerClientImpl::OnRestartJob, | 70 base::Bind(&SessionManagerClientImpl::OnRestartJob, |
71 weak_ptr_factory_.GetWeakPtr())); | 71 weak_ptr_factory_.GetWeakPtr())); |
72 } | 72 } |
73 | 73 |
74 virtual void RestartEntd() OVERRIDE { | |
75 SimpleMethodCallToSessionManager(login_manager::kSessionManagerRestartEntd); | |
76 } | |
77 | |
78 virtual void StartSession(const std::string& user_email) OVERRIDE { | 74 virtual void StartSession(const std::string& user_email) OVERRIDE { |
79 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, | 75 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, |
80 login_manager::kSessionManagerStartSession); | 76 login_manager::kSessionManagerStartSession); |
81 dbus::MessageWriter writer(&method_call); | 77 dbus::MessageWriter writer(&method_call); |
82 writer.AppendString(user_email); | 78 writer.AppendString(user_email); |
83 writer.AppendString(""); // Unique ID is deprecated | 79 writer.AppendString(""); // Unique ID is deprecated |
84 session_manager_proxy_->CallMethod( | 80 session_manager_proxy_->CallMethod( |
85 &method_call, | 81 &method_call, |
86 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 82 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
87 base::Bind(&SessionManagerClientImpl::OnStartSession, | 83 base::Bind(&SessionManagerClientImpl::OnStartSession, |
(...skipping 24 matching lines...) Expand all Loading... |
112 | 108 |
113 virtual void RequestLockScreen() OVERRIDE { | 109 virtual void RequestLockScreen() OVERRIDE { |
114 SimpleMethodCallToSessionManager(login_manager::kSessionManagerLockScreen); | 110 SimpleMethodCallToSessionManager(login_manager::kSessionManagerLockScreen); |
115 } | 111 } |
116 | 112 |
117 virtual void NotifyLockScreenShown() OVERRIDE { | 113 virtual void NotifyLockScreenShown() OVERRIDE { |
118 SimpleMethodCallToSessionManager( | 114 SimpleMethodCallToSessionManager( |
119 login_manager::kSessionManagerHandleLockScreenShown); | 115 login_manager::kSessionManagerHandleLockScreenShown); |
120 } | 116 } |
121 | 117 |
122 virtual void RequestUnlockScreen() OVERRIDE { | |
123 SimpleMethodCallToSessionManager( | |
124 login_manager::kSessionManagerUnlockScreen); | |
125 } | |
126 | |
127 virtual void NotifyLockScreenDismissed() OVERRIDE { | 118 virtual void NotifyLockScreenDismissed() OVERRIDE { |
128 SimpleMethodCallToSessionManager( | 119 SimpleMethodCallToSessionManager( |
129 login_manager::kSessionManagerHandleLockScreenDismissed); | 120 login_manager::kSessionManagerHandleLockScreenDismissed); |
130 } | 121 } |
131 | 122 |
132 virtual void RetrieveActiveSessions( | 123 virtual void RetrieveActiveSessions( |
133 const ActiveSessionsCallback& callback) OVERRIDE { | 124 const ActiveSessionsCallback& callback) OVERRIDE { |
134 dbus::MethodCall method_call( | 125 dbus::MethodCall method_call( |
135 login_manager::kSessionManagerInterface, | 126 login_manager::kSessionManagerInterface, |
136 login_manager::kSessionManagerRetrieveActiveSessions); | 127 login_manager::kSessionManagerRetrieveActiveSessions); |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 weak_ptr_factory_.GetWeakPtr())); | 260 weak_ptr_factory_.GetWeakPtr())); |
270 session_manager_proxy_->ConnectToSignal( | 261 session_manager_proxy_->ConnectToSignal( |
271 chromium::kChromiumInterface, | 262 chromium::kChromiumInterface, |
272 chromium::kLockScreenSignal, | 263 chromium::kLockScreenSignal, |
273 base::Bind(&SessionManagerClientImpl::ScreenLockReceived, | 264 base::Bind(&SessionManagerClientImpl::ScreenLockReceived, |
274 weak_ptr_factory_.GetWeakPtr()), | 265 weak_ptr_factory_.GetWeakPtr()), |
275 base::Bind(&SessionManagerClientImpl::SignalConnected, | 266 base::Bind(&SessionManagerClientImpl::SignalConnected, |
276 weak_ptr_factory_.GetWeakPtr())); | 267 weak_ptr_factory_.GetWeakPtr())); |
277 session_manager_proxy_->ConnectToSignal( | 268 session_manager_proxy_->ConnectToSignal( |
278 chromium::kChromiumInterface, | 269 chromium::kChromiumInterface, |
279 chromium::kUnlockScreenSignal, | |
280 base::Bind(&SessionManagerClientImpl::ScreenUnlockReceived, | |
281 weak_ptr_factory_.GetWeakPtr()), | |
282 base::Bind(&SessionManagerClientImpl::SignalConnected, | |
283 weak_ptr_factory_.GetWeakPtr())); | |
284 session_manager_proxy_->ConnectToSignal( | |
285 chromium::kChromiumInterface, | |
286 chromium::kLivenessRequestedSignal, | 270 chromium::kLivenessRequestedSignal, |
287 base::Bind(&SessionManagerClientImpl::LivenessRequestedReceived, | 271 base::Bind(&SessionManagerClientImpl::LivenessRequestedReceived, |
288 weak_ptr_factory_.GetWeakPtr()), | 272 weak_ptr_factory_.GetWeakPtr()), |
289 base::Bind(&SessionManagerClientImpl::SignalConnected, | 273 base::Bind(&SessionManagerClientImpl::SignalConnected, |
290 weak_ptr_factory_.GetWeakPtr())); | 274 weak_ptr_factory_.GetWeakPtr())); |
291 | 275 |
292 // Signals emitted on the session manager's interface. | 276 // Signals emitted on the session manager's interface. |
293 session_manager_proxy_->ConnectToSignal( | 277 session_manager_proxy_->ConnectToSignal( |
294 login_manager::kSessionManagerInterface, | 278 login_manager::kSessionManagerInterface, |
295 login_manager::kScreenIsLockedSignal, | 279 login_manager::kScreenIsLockedSignal, |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
487 return; | 471 return; |
488 } | 472 } |
489 const bool success = StartsWithASCII(result_string, "success", false); | 473 const bool success = StartsWithASCII(result_string, "success", false); |
490 FOR_EACH_OBSERVER(Observer, observers_, PropertyChangeComplete(success)); | 474 FOR_EACH_OBSERVER(Observer, observers_, PropertyChangeComplete(success)); |
491 } | 475 } |
492 | 476 |
493 void ScreenLockReceived(dbus::Signal* signal) { | 477 void ScreenLockReceived(dbus::Signal* signal) { |
494 FOR_EACH_OBSERVER(Observer, observers_, LockScreen()); | 478 FOR_EACH_OBSERVER(Observer, observers_, LockScreen()); |
495 } | 479 } |
496 | 480 |
497 void ScreenUnlockReceived(dbus::Signal* signal) { | |
498 FOR_EACH_OBSERVER(Observer, observers_, UnlockScreen()); | |
499 } | |
500 | |
501 void LivenessRequestedReceived(dbus::Signal* signal) { | 481 void LivenessRequestedReceived(dbus::Signal* signal) { |
502 SimpleMethodCallToSessionManager( | 482 SimpleMethodCallToSessionManager( |
503 login_manager::kSessionManagerHandleLivenessConfirmed); | 483 login_manager::kSessionManagerHandleLivenessConfirmed); |
504 } | 484 } |
505 | 485 |
506 void ScreenIsLockedReceived(dbus::Signal* signal) { | 486 void ScreenIsLockedReceived(dbus::Signal* signal) { |
507 FOR_EACH_OBSERVER(Observer, observers_, ScreenIsLocked()); | 487 FOR_EACH_OBSERVER(Observer, observers_, ScreenIsLocked()); |
508 } | 488 } |
509 | 489 |
510 void ScreenIsUnlockedReceived(dbus::Signal* signal) { | 490 void ScreenIsUnlockedReceived(dbus::Signal* signal) { |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
555 } | 535 } |
556 virtual void RemoveObserver(Observer* observer) OVERRIDE { | 536 virtual void RemoveObserver(Observer* observer) OVERRIDE { |
557 observers_.RemoveObserver(observer); | 537 observers_.RemoveObserver(observer); |
558 } | 538 } |
559 virtual bool HasObserver(Observer* observer) OVERRIDE { | 539 virtual bool HasObserver(Observer* observer) OVERRIDE { |
560 return observers_.HasObserver(observer); | 540 return observers_.HasObserver(observer); |
561 } | 541 } |
562 virtual void EmitLoginPromptReady() OVERRIDE {} | 542 virtual void EmitLoginPromptReady() OVERRIDE {} |
563 virtual void EmitLoginPromptVisible() OVERRIDE {} | 543 virtual void EmitLoginPromptVisible() OVERRIDE {} |
564 virtual void RestartJob(int pid, const std::string& command_line) OVERRIDE {} | 544 virtual void RestartJob(int pid, const std::string& command_line) OVERRIDE {} |
565 virtual void RestartEntd() OVERRIDE {} | |
566 virtual void StartSession(const std::string& user_email) OVERRIDE {} | 545 virtual void StartSession(const std::string& user_email) OVERRIDE {} |
567 virtual void StopSession() OVERRIDE {} | 546 virtual void StopSession() OVERRIDE {} |
568 virtual void StartDeviceWipe() OVERRIDE {} | 547 virtual void StartDeviceWipe() OVERRIDE {} |
569 virtual void RequestLockScreen() OVERRIDE { | 548 virtual void RequestLockScreen() OVERRIDE { |
570 FOR_EACH_OBSERVER(Observer, observers_, LockScreen()); | 549 FOR_EACH_OBSERVER(Observer, observers_, LockScreen()); |
571 } | 550 } |
572 virtual void NotifyLockScreenShown() OVERRIDE { | 551 virtual void NotifyLockScreenShown() OVERRIDE { |
573 FOR_EACH_OBSERVER(Observer, observers_, ScreenIsLocked()); | 552 FOR_EACH_OBSERVER(Observer, observers_, ScreenIsLocked()); |
574 } | 553 } |
575 virtual void RequestUnlockScreen() OVERRIDE { | |
576 FOR_EACH_OBSERVER(Observer, observers_, UnlockScreen()); | |
577 } | |
578 virtual void NotifyLockScreenDismissed() OVERRIDE { | 554 virtual void NotifyLockScreenDismissed() OVERRIDE { |
579 FOR_EACH_OBSERVER(Observer, observers_, ScreenIsUnlocked()); | 555 FOR_EACH_OBSERVER(Observer, observers_, ScreenIsUnlocked()); |
580 } | 556 } |
581 virtual void RetrieveActiveSessions( | 557 virtual void RetrieveActiveSessions( |
582 const ActiveSessionsCallback& callback) OVERRIDE {} | 558 const ActiveSessionsCallback& callback) OVERRIDE {} |
583 virtual void RetrieveDevicePolicy( | 559 virtual void RetrieveDevicePolicy( |
584 const RetrievePolicyCallback& callback) OVERRIDE { | 560 const RetrievePolicyCallback& callback) OVERRIDE { |
585 callback.Run(device_policy_); | 561 callback.Run(device_policy_); |
586 } | 562 } |
587 virtual void RetrievePolicyForUser( | 563 virtual void RetrievePolicyForUser( |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
673 | 649 |
674 SessionManagerClient* SessionManagerClient::Create( | 650 SessionManagerClient* SessionManagerClient::Create( |
675 DBusClientImplementationType type) { | 651 DBusClientImplementationType type) { |
676 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) | 652 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) |
677 return new SessionManagerClientImpl(); | 653 return new SessionManagerClientImpl(); |
678 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); | 654 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); |
679 return new SessionManagerClientStubImpl(); | 655 return new SessionManagerClientStubImpl(); |
680 } | 656 } |
681 | 657 |
682 } // namespace chromeos | 658 } // namespace chromeos |
OLD | NEW |