In addition to method calls, session_manager also sends a signal (which is one-way) to Chrome browser process.
This one
<!--
ArcInstanceStopped:
@clean: True if the stopping instance is initiated intentionally. False
otherwise, like unexpected instance crash.
@container_instance_id: opaque identifier of the stopped container.
See also StartArcInstance.
Sent when ARC instance is stopped. Maybe clean shutdown, or crash.
-->
<signal name="ArcInstanceStopped">
<arg type="b" name="clean" />
<arg type="s" name="container_instance_id" />
</signal>
in platform2/login_manager/dbus_bindings/org.chromium.SessionManagerInterface.xml is one of such signals. It is sent in session_manager_impl.cc like this:
void SessionManagerImpl::OnAndroidContainerStopped() {
...
adaptor_.SendArcInstanceStoppedSignal(clean, container_instance_id);
}
-Yusuke