| 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..bc17008586a879713e0ff78c18cb1fb8afa65fb4 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,20 @@ 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() : "");
|
| + }
|
| +
|
| dbus::ObjectProxy* session_manager_proxy_;
|
| std::unique_ptr<BlockingMethodCaller> blocking_method_caller_;
|
| base::ObserverList<Observer> observers_;
|
| @@ -898,8 +913,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 {
|
|
|