| Index: components/arc/arc_bridge_service_impl.cc
|
| diff --git a/components/arc/arc_bridge_service_impl.cc b/components/arc/arc_bridge_service_impl.cc
|
| index a5c49456f4e0c3c40b13e3b1f6f86628fa3974aa..3c4f408374a9b8e08a7ca6cf1c0ca719d18ef444 100644
|
| --- a/components/arc/arc_bridge_service_impl.cc
|
| +++ b/components/arc/arc_bridge_service_impl.cc
|
| @@ -170,7 +170,139 @@ void ArcBridgeServiceImpl::OnChannelClosed() {
|
| instance_ptr_.reset();
|
| if (binding_.is_bound())
|
| binding_.Close();
|
| - CloseAllChannels();
|
| +
|
| + // Call all the error handlers of all the channels to both close the channel
|
| + // and notify any observers that the channel is closed.
|
| + app_.CloseChannel();
|
| + audio_.CloseChannel();
|
| + auth_.CloseChannel();
|
| + bluetooth_.CloseChannel();
|
| + clipboard_.CloseChannel();
|
| + crash_collector_.CloseChannel();
|
| + file_system_.CloseChannel();
|
| + ime_.CloseChannel();
|
| + intent_helper_.CloseChannel();
|
| + metrics_.CloseChannel();
|
| + net_.CloseChannel();
|
| + notifications_.CloseChannel();
|
| + obb_mounter_.CloseChannel();
|
| + policy_.CloseChannel();
|
| + power_.CloseChannel();
|
| + process_.CloseChannel();
|
| + storage_manager_.CloseChannel();
|
| + video_.CloseChannel();
|
| + window_manager_.CloseChannel();
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnAppInstanceReady(mojom::AppInstancePtr app_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + app_.OnInstanceReady(std::move(app_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnAudioInstanceReady(
|
| + mojom::AudioInstancePtr audio_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + audio_.OnInstanceReady(std::move(audio_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnAuthInstanceReady(
|
| + mojom::AuthInstancePtr auth_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + auth_.OnInstanceReady(std::move(auth_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnBluetoothInstanceReady(
|
| + mojom::BluetoothInstancePtr bluetooth_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + bluetooth_.OnInstanceReady(std::move(bluetooth_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnClipboardInstanceReady(
|
| + mojom::ClipboardInstancePtr clipboard_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + clipboard_.OnInstanceReady(std::move(clipboard_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnCrashCollectorInstanceReady(
|
| + mojom::CrashCollectorInstancePtr crash_collector_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + crash_collector_.OnInstanceReady(std::move(crash_collector_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnFileSystemInstanceReady(
|
| + mojom::FileSystemInstancePtr file_system_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + file_system_.OnInstanceReady(std::move(file_system_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnImeInstanceReady(mojom::ImeInstancePtr ime_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + ime_.OnInstanceReady(std::move(ime_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnIntentHelperInstanceReady(
|
| + mojom::IntentHelperInstancePtr intent_helper_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + intent_helper_.OnInstanceReady(std::move(intent_helper_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnMetricsInstanceReady(
|
| + mojom::MetricsInstancePtr metrics_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + metrics_.OnInstanceReady(std::move(metrics_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnNetInstanceReady(mojom::NetInstancePtr net_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + net_.OnInstanceReady(std::move(net_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnNotificationsInstanceReady(
|
| + mojom::NotificationsInstancePtr notifications_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + notifications_.OnInstanceReady(std::move(notifications_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnObbMounterInstanceReady(
|
| + mojom::ObbMounterInstancePtr obb_mounter_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + obb_mounter_.OnInstanceReady(std::move(obb_mounter_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnPolicyInstanceReady(
|
| + mojom::PolicyInstancePtr policy_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + policy_.OnInstanceReady(std::move(policy_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnPowerInstanceReady(
|
| + mojom::PowerInstancePtr power_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + power_.OnInstanceReady(std::move(power_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnProcessInstanceReady(
|
| + mojom::ProcessInstancePtr process_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + process_.OnInstanceReady(std::move(process_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnStorageManagerInstanceReady(
|
| + mojom::StorageManagerInstancePtr storage_manager_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + storage_manager_.OnInstanceReady(std::move(storage_manager_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnVideoInstanceReady(
|
| + mojom::VideoInstancePtr video_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + video_.OnInstanceReady(std::move(video_ptr));
|
| +}
|
| +
|
| +void ArcBridgeServiceImpl::OnWindowManagerInstanceReady(
|
| + mojom::WindowManagerInstancePtr window_manager_ptr) {
|
| + DCHECK(CalledOnValidThread());
|
| + window_manager_.OnInstanceReady(std::move(window_manager_ptr));
|
| }
|
|
|
| } // namespace arc
|
|
|