Chromium Code Reviews| 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) { |
|
hidehiko
2016/07/12 18:27:36
As you moved ABHost to Impl, could you also extrac
Luis Héctor Chávez
2016/07/12 18:34:06
I prefer to work on it separately to land this tod
Luis Héctor Chávez
2016/07/12 22:14:29
Wait, but that wouldn't work: the InstanceHolder i
hidehiko
2016/07/13 08:08:12
You can touch them via SetInstance().
|
| + 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 |