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 StartSession(const std::string& user_email, | 74 virtual void StartSession(const std::string& user_email) OVERRIDE { |
75 const StartSessionCallback& callback) OVERRIDE { | |
76 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, | 75 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, |
77 login_manager::kSessionManagerStartSession); | 76 login_manager::kSessionManagerStartSession); |
78 dbus::MessageWriter writer(&method_call); | 77 dbus::MessageWriter writer(&method_call); |
79 writer.AppendString(user_email); | 78 writer.AppendString(user_email); |
80 writer.AppendString(""); // Unique ID is deprecated | 79 writer.AppendString(""); // Unique ID is deprecated |
81 session_manager_proxy_->CallMethod( | 80 session_manager_proxy_->CallMethod( |
82 &method_call, | 81 &method_call, |
83 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 82 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
84 base::Bind(&SessionManagerClientImpl::OnStartSession, | 83 base::Bind(&SessionManagerClientImpl::OnStartSession, |
85 weak_ptr_factory_.GetWeakPtr(), | 84 weak_ptr_factory_.GetWeakPtr())); |
86 callback)); | |
87 } | 85 } |
88 | 86 |
89 virtual void StopSession() OVERRIDE { | 87 virtual void StopSession() OVERRIDE { |
90 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, | 88 dbus::MethodCall method_call(login_manager::kSessionManagerInterface, |
91 login_manager::kSessionManagerStopSession); | 89 login_manager::kSessionManagerStopSession); |
92 dbus::MessageWriter writer(&method_call); | 90 dbus::MessageWriter writer(&method_call); |
93 writer.AppendString(""); // Unique ID is deprecated | 91 writer.AppendString(""); // Unique ID is deprecated |
94 session_manager_proxy_->CallMethod( | 92 session_manager_proxy_->CallMethod( |
95 &method_call, | 93 &method_call, |
96 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 94 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 } | 325 } |
328 | 326 |
329 // Called when kSessionManagerRestartJob method is complete. | 327 // Called when kSessionManagerRestartJob method is complete. |
330 void OnRestartJob(dbus::Response* response) { | 328 void OnRestartJob(dbus::Response* response) { |
331 LOG_IF(ERROR, !response) | 329 LOG_IF(ERROR, !response) |
332 << "Failed to call " | 330 << "Failed to call " |
333 << login_manager::kSessionManagerRestartJob; | 331 << login_manager::kSessionManagerRestartJob; |
334 } | 332 } |
335 | 333 |
336 // Called when kSessionManagerStartSession method is complete. | 334 // Called when kSessionManagerStartSession method is complete. |
337 void OnStartSession(const StartSessionCallback& callback, | 335 void OnStartSession(dbus::Response* response) { |
338 dbus::Response* response) { | 336 LOG_IF(ERROR, !response) |
339 bool success = false; | 337 << "Failed to call " |
340 if (!response) { | 338 << login_manager::kSessionManagerStartSession; |
341 LOG(ERROR) << "Failed to call " | |
342 << login_manager::kSessionManagerStartSession; | |
343 } else { | |
344 dbus::MessageReader reader(response); | |
345 if (!reader.PopBool(&success)) | |
346 LOG(ERROR) << "Invalid response: " << response->ToString(); | |
347 } | |
348 callback.Run(success); | |
349 } | 339 } |
350 | 340 |
351 // Called when kSessionManagerStopSession method is complete. | 341 // Called when kSessionManagerStopSession method is complete. |
352 void OnStopSession(dbus::Response* response) { | 342 void OnStopSession(dbus::Response* response) { |
353 LOG_IF(ERROR, !response) | 343 LOG_IF(ERROR, !response) |
354 << "Failed to call " | 344 << "Failed to call " |
355 << login_manager::kSessionManagerStopSession; | 345 << login_manager::kSessionManagerStopSession; |
356 } | 346 } |
357 | 347 |
358 // Called when kSessionManagerStopSession method is complete. | 348 // Called when kSessionManagerStopSession method is complete. |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
521 observers_.AddObserver(observer); | 511 observers_.AddObserver(observer); |
522 } | 512 } |
523 virtual void RemoveObserver(Observer* observer) OVERRIDE { | 513 virtual void RemoveObserver(Observer* observer) OVERRIDE { |
524 observers_.RemoveObserver(observer); | 514 observers_.RemoveObserver(observer); |
525 } | 515 } |
526 virtual bool HasObserver(Observer* observer) OVERRIDE { | 516 virtual bool HasObserver(Observer* observer) OVERRIDE { |
527 return observers_.HasObserver(observer); | 517 return observers_.HasObserver(observer); |
528 } | 518 } |
529 virtual void EmitLoginPromptVisible() OVERRIDE {} | 519 virtual void EmitLoginPromptVisible() OVERRIDE {} |
530 virtual void RestartJob(int pid, const std::string& command_line) OVERRIDE {} | 520 virtual void RestartJob(int pid, const std::string& command_line) OVERRIDE {} |
531 virtual void StartSession(const std::string& user_email, | 521 virtual void StartSession(const std::string& user_email) OVERRIDE {} |
532 const StartSessionCallback& callback) OVERRIDE { | |
533 callback.Run(true); | |
534 } | |
535 virtual void StopSession() OVERRIDE {} | 522 virtual void StopSession() OVERRIDE {} |
536 virtual void StartDeviceWipe() OVERRIDE {} | 523 virtual void StartDeviceWipe() OVERRIDE {} |
537 virtual void RequestLockScreen() OVERRIDE { | 524 virtual void RequestLockScreen() OVERRIDE { |
538 if (delegate_) | 525 if (delegate_) |
539 delegate_->LockScreenForStub(); | 526 delegate_->LockScreenForStub(); |
540 } | 527 } |
541 virtual void NotifyLockScreenShown() OVERRIDE { | 528 virtual void NotifyLockScreenShown() OVERRIDE { |
542 FOR_EACH_OBSERVER(Observer, observers_, ScreenIsLocked()); | 529 FOR_EACH_OBSERVER(Observer, observers_, ScreenIsLocked()); |
543 } | 530 } |
544 virtual void NotifyLockScreenDismissed() OVERRIDE { | 531 virtual void NotifyLockScreenDismissed() OVERRIDE { |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
640 | 627 |
641 SessionManagerClient* SessionManagerClient::Create( | 628 SessionManagerClient* SessionManagerClient::Create( |
642 DBusClientImplementationType type) { | 629 DBusClientImplementationType type) { |
643 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) | 630 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) |
644 return new SessionManagerClientImpl(); | 631 return new SessionManagerClientImpl(); |
645 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); | 632 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); |
646 return new SessionManagerClientStubImpl(); | 633 return new SessionManagerClientStubImpl(); |
647 } | 634 } |
648 | 635 |
649 } // namespace chromeos | 636 } // namespace chromeos |
OLD | NEW |