Index: chromeos/dbus/session_manager_client.cc |
diff --git a/chromeos/dbus/session_manager_client.cc b/chromeos/dbus/session_manager_client.cc |
index 34afb1806fb36a7724f727ce134f92f8392342f8..2184de5cea2a3eaec151a46735ef2acb55e4b4a8 100644 |
--- a/chromeos/dbus/session_manager_client.cc |
+++ b/chromeos/dbus/session_manager_client.cc |
@@ -737,12 +737,13 @@ class SessionManagerClientImpl : public SessionManagerClient { |
void ArcInstanceStoppedReceived(dbus::Signal* signal) { |
dbus::MessageReader reader(signal); |
bool clean = false; |
- if (!reader.PopBool(&clean)) { |
+ std::string container_instance_id; |
+ if (!reader.PopBool(&clean) || !reader.PopString(&container_instance_id)) { |
LOG(ERROR) << "Invalid signal: " << signal->ToString(); |
return; |
} |
for (auto& observer : observers_) |
- observer.ArcInstanceStopped(clean); |
+ observer.ArcInstanceStopped(clean, container_instance_id); |
} |
// Called when the object is connected to the signal. |
@@ -812,8 +813,18 @@ class SessionManagerClientImpl : public SessionManagerClient { |
void OnStartArcInstanceSucceeded(const StartArcInstanceCallback& callback, |
dbus::Response* response) { |
+ DCHECK(response); |
+ dbus::MessageReader reader(response); |
+ std::string container_instance_id; |
+ if (!reader.PopString(&container_instance_id)) { |
+ LOG(ERROR) << "Invalid response: " << response->ToString(); |
+ if (!callback.is_null()) |
+ callback.Run(StartArcInstanceResult::UNKNOWN_ERROR, std::string()); |
+ return; |
+ } |
+ |
if (!callback.is_null()) |
- callback.Run(StartArcInstanceResult::SUCCESS); |
+ callback.Run(StartArcInstanceResult::SUCCESS, container_instance_id); |
} |
void OnStartArcInstanceFailed(const StartArcInstanceCallback& callback, |
@@ -824,7 +835,8 @@ class SessionManagerClientImpl : public SessionManagerClient { |
callback.Run(response && response->GetErrorName() == |
login_manager::dbus_error::kLowFreeDisk |
? StartArcInstanceResult::LOW_FREE_DISK_SPACE |
- : StartArcInstanceResult::UNKNOWN_ERROR); |
+ : StartArcInstanceResult::UNKNOWN_ERROR, |
+ std::string()); |
} |
} |
@@ -1036,7 +1048,7 @@ class SessionManagerClientStubImpl : public SessionManagerClient { |
bool disable_boot_completed_broadcast, |
bool enable_vendor_privileged, |
const StartArcInstanceCallback& callback) override { |
- callback.Run(StartArcInstanceResult::UNKNOWN_ERROR); |
+ callback.Run(StartArcInstanceResult::UNKNOWN_ERROR, std::string()); |
} |
void SetArcCpuRestriction( |