Chromium Code Reviews| Index: chromeos/dbus/session_manager_client.cc |
| diff --git a/chromeos/dbus/session_manager_client.cc b/chromeos/dbus/session_manager_client.cc |
| index df81dccde03e54b2e9cdfc07a55ee106b4d14cdf..4da32990a6e3f18f9144916d4e10f9d0e5ff67e3 100644 |
| --- a/chromeos/dbus/session_manager_client.cc |
| +++ b/chromeos/dbus/session_manager_client.cc |
| @@ -310,18 +310,19 @@ class SessionManagerClientImpl : public SessionManagerClient { |
| void StartArcInstance(const cryptohome::Identification& cryptohome_id, |
| bool disable_boot_completed_broadcast, |
| - const ArcCallback& callback) override { |
| + const StartArcInstanceCallback& callback) override { |
| dbus::MethodCall method_call( |
| login_manager::kSessionManagerInterface, |
| login_manager::kSessionManagerStartArcInstance); |
| dbus::MessageWriter writer(&method_call); |
| writer.AppendString(cryptohome_id.id()); |
| writer.AppendBool(disable_boot_completed_broadcast); |
| - session_manager_proxy_->CallMethod( |
| + session_manager_proxy_->CallMethodWithErrorCallback( |
| &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| - base::Bind(&SessionManagerClientImpl::OnArcMethod, |
| - weak_ptr_factory_.GetWeakPtr(), |
| - login_manager::kSessionManagerStartArcInstance, callback)); |
| + base::Bind(&SessionManagerClientImpl::OnStartArcInstanceSucceeded, |
| + weak_ptr_factory_.GetWeakPtr(), callback), |
| + base::Bind(&SessionManagerClientImpl::OnStartArcInstanceFailed, |
| + weak_ptr_factory_.GetWeakPtr(), callback)); |
| } |
| void StopArcInstance(const ArcCallback& callback) override { |
| @@ -722,6 +723,21 @@ class SessionManagerClientImpl : public SessionManagerClient { |
| callback.Run(success); |
| } |
| + void OnStartArcInstanceSucceeded(const StartArcInstanceCallback& callback, |
| + dbus::Response* response) { |
| + if (!callback.is_null()) |
| + callback.Run(true, "" /* no error */); |
| + } |
| + |
| + void OnStartArcInstanceFailed(const StartArcInstanceCallback& callback, |
| + dbus::ErrorResponse* response) { |
| + LOG(ERROR) << "Failed to call StartArcInstance: " |
| + << (response ? response->ToString() : "(null)"); |
| + if (!callback.is_null()) |
| + callback.Run(false, |
| + response ? response->GetErrorName() : base::EmptyString()); |
|
hashimoto
2016/10/06 08:12:20
Please be consistent by sticking to one of "" or b
hidehiko
2016/10/06 08:33:21
Done.
|
| + } |
| + |
| dbus::ObjectProxy* session_manager_proxy_; |
| std::unique_ptr<BlockingMethodCaller> blocking_method_caller_; |
| base::ObserverList<Observer> observers_; |
| @@ -898,8 +914,8 @@ class SessionManagerClientStubImpl : public SessionManagerClient { |
| void StartArcInstance(const cryptohome::Identification& cryptohome_id, |
| bool disable_boot_completed_broadcast, |
| - const ArcCallback& callback) override { |
| - callback.Run(false); |
| + const StartArcInstanceCallback& callback) override { |
| + callback.Run(false, ""); |
| } |
| void PrioritizeArcInstance(const ArcCallback& callback) override { |