| Index: components/arc/arc_bridge_service.cc
|
| diff --git a/components/arc/arc_bridge_service.cc b/components/arc/arc_bridge_service.cc
|
| index bc864faf6f1b54576a03f4c5bfb4cd6f785fe3ab..80e70b66ca107b232327934014ccc0a3c84ca4ca 100644
|
| --- a/components/arc/arc_bridge_service.cc
|
| +++ b/components/arc/arc_bridge_service.cc
|
| @@ -45,46 +45,6 @@ bool ArcBridgeService::GetEnabled(const base::CommandLine* command_line) {
|
| void ArcBridgeService::AddObserver(Observer* observer) {
|
| DCHECK(CalledOnValidThread());
|
| observer_list_.AddObserver(observer);
|
| -
|
| - // If any of the instances were ready before the call to AddObserver(), the
|
| - // |observer| won't get any readiness events. For such cases, we have to call
|
| - // them explicitly now to avoid a race.
|
| - if (app_instance())
|
| - observer->OnAppInstanceReady();
|
| - if (audio_instance())
|
| - observer->OnAudioInstanceReady();
|
| - if (auth_instance())
|
| - observer->OnAuthInstanceReady();
|
| - if (bluetooth_instance())
|
| - observer->OnBluetoothInstanceReady();
|
| - if (clipboard_instance())
|
| - observer->OnClipboardInstanceReady();
|
| - if (crash_collector_instance())
|
| - observer->OnCrashCollectorInstanceReady();
|
| - if (file_system_instance())
|
| - observer->OnFileSystemInstanceReady();
|
| - if (ime_instance())
|
| - observer->OnImeInstanceReady();
|
| - if (metrics_instance())
|
| - observer->OnMetricsInstanceReady();
|
| - if (net_instance())
|
| - observer->OnNetInstanceReady();
|
| - if (notifications_instance())
|
| - observer->OnNotificationsInstanceReady();
|
| - if (obb_mounter_instance())
|
| - observer->OnObbMounterInstanceReady();
|
| - if (policy_instance())
|
| - observer->OnPolicyInstanceReady();
|
| - if (power_instance())
|
| - observer->OnPowerInstanceReady();
|
| - if (process_instance())
|
| - observer->OnProcessInstanceReady();
|
| - if (storage_manager_instance())
|
| - observer->OnStorageManagerInstanceReady();
|
| - if (video_instance())
|
| - observer->OnVideoInstanceReady();
|
| - if (window_manager_instance())
|
| - observer->OnWindowManagerInstanceReady();
|
| }
|
|
|
| void ArcBridgeService::RemoveObserver(Observer* observer) {
|
| @@ -94,484 +54,109 @@ void ArcBridgeService::RemoveObserver(Observer* observer) {
|
|
|
| void ArcBridgeService::OnAppInstanceReady(mojom::AppInstancePtr app_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_app_ptr_ = std::move(app_ptr);
|
| - temporary_app_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnAppVersionReady, weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnAppVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - app_ptr_ = std::move(temporary_app_ptr_);
|
| - app_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseAppChannel, weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnAppInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseAppChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!app_ptr_)
|
| - return;
|
| -
|
| - app_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnAppInstanceClosed());
|
| + app_.OnInstanceReady(std::move(app_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnAudioInstanceReady(mojom::AudioInstancePtr audio_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_audio_ptr_ = std::move(audio_ptr);
|
| - temporary_audio_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnAudioVersionReady, weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnAudioVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - audio_ptr_ = std::move(temporary_audio_ptr_);
|
| - audio_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseAudioChannel, weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnAudioInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseAudioChannel() {
|
| - if (!audio_ptr_)
|
| - return;
|
| -
|
| - audio_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnAudioInstanceClosed());
|
| + audio_.OnInstanceReady(std::move(audio_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnAuthInstanceReady(mojom::AuthInstancePtr auth_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_auth_ptr_ = std::move(auth_ptr);
|
| - temporary_auth_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnAuthVersionReady, weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnAuthVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - auth_ptr_ = std::move(temporary_auth_ptr_);
|
| - auth_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseAuthChannel, weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnAuthInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseAuthChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!auth_ptr_)
|
| - return;
|
| -
|
| - auth_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnAuthInstanceClosed());
|
| + auth_.OnInstanceReady(std::move(auth_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnBluetoothInstanceReady(
|
| mojom::BluetoothInstancePtr bluetooth_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_bluetooth_ptr_ = std::move(bluetooth_ptr);
|
| - temporary_bluetooth_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnBluetoothVersionReady, weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnBluetoothVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - bluetooth_ptr_ = std::move(temporary_bluetooth_ptr_);
|
| - bluetooth_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseBluetoothChannel, weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnBluetoothInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseBluetoothChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!bluetooth_ptr_)
|
| - return;
|
| -
|
| - bluetooth_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnBluetoothInstanceClosed());
|
| + bluetooth_.OnInstanceReady(std::move(bluetooth_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnClipboardInstanceReady(
|
| mojom::ClipboardInstancePtr clipboard_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_clipboard_ptr_ = std::move(clipboard_ptr);
|
| - temporary_clipboard_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnClipboardVersionReady, weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnClipboardVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - clipboard_ptr_ = std::move(temporary_clipboard_ptr_);
|
| - clipboard_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseClipboardChannel, weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnClipboardInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseClipboardChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!clipboard_ptr_)
|
| - return;
|
| -
|
| - clipboard_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnClipboardInstanceClosed());
|
| + clipboard_.OnInstanceReady(std::move(clipboard_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnCrashCollectorInstanceReady(
|
| mojom::CrashCollectorInstancePtr crash_collector_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_crash_collector_ptr_ = std::move(crash_collector_ptr);
|
| - temporary_crash_collector_ptr_.QueryVersion(
|
| - base::Bind(&ArcBridgeService::OnCrashCollectorVersionReady,
|
| - weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnCrashCollectorVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - crash_collector_ptr_ = std::move(temporary_crash_collector_ptr_);
|
| - crash_collector_ptr_.set_connection_error_handler(
|
| - base::Bind(&ArcBridgeService::CloseCrashCollectorChannel,
|
| - weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnCrashCollectorInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseCrashCollectorChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!crash_collector_ptr_)
|
| - return;
|
| -
|
| - crash_collector_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(),
|
| - OnCrashCollectorInstanceClosed());
|
| + crash_collector_.OnInstanceReady(std::move(crash_collector_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnFileSystemInstanceReady(
|
| mojom::FileSystemInstancePtr file_system_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_file_system_ptr_ = std::move(file_system_ptr);
|
| - temporary_file_system_ptr_.QueryVersion(
|
| - base::Bind(&ArcBridgeService::OnFileSystemVersionReady,
|
| - weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnFileSystemVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - file_system_ptr_ = std::move(temporary_file_system_ptr_);
|
| - file_system_ptr_.set_connection_error_handler(
|
| - base::Bind(&ArcBridgeService::CloseFileSystemChannel,
|
| - weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnFileSystemInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseFileSystemChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!file_system_ptr_)
|
| - return;
|
| -
|
| - file_system_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(),
|
| - OnFileSystemInstanceClosed());
|
| + file_system_.OnInstanceReady(std::move(file_system_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnImeInstanceReady(mojom::ImeInstancePtr ime_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_ime_ptr_ = std::move(ime_ptr);
|
| - temporary_ime_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnImeVersionReady, weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnImeVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - ime_ptr_ = std::move(temporary_ime_ptr_);
|
| - ime_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseImeChannel, weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnImeInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseImeChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!ime_ptr_)
|
| - return;
|
| -
|
| - ime_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnImeInstanceClosed());
|
| + ime_.OnInstanceReady(std::move(ime_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnIntentHelperInstanceReady(
|
| mojom::IntentHelperInstancePtr intent_helper_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_intent_helper_ptr_ = std::move(intent_helper_ptr);
|
| - temporary_intent_helper_ptr_.QueryVersion(
|
| - base::Bind(&ArcBridgeService::OnIntentHelperVersionReady,
|
| - weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnIntentHelperVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - intent_helper_ptr_ = std::move(temporary_intent_helper_ptr_);
|
| - intent_helper_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseIntentHelperChannel, weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnIntentHelperInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseIntentHelperChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!intent_helper_ptr_)
|
| - return;
|
| -
|
| - intent_helper_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnIntentHelperInstanceClosed());
|
| + intent_helper_.OnInstanceReady(std::move(intent_helper_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnMetricsInstanceReady(
|
| mojom::MetricsInstancePtr metrics_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_metrics_ptr_ = std::move(metrics_ptr);
|
| - temporary_metrics_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnMetricsVersionReady, weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnMetricsVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - metrics_ptr_ = std::move(temporary_metrics_ptr_);
|
| - metrics_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseMetricsChannel, weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnMetricsInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseMetricsChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!metrics_ptr_)
|
| - return;
|
| -
|
| - metrics_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnMetricsInstanceClosed());
|
| + metrics_.OnInstanceReady(std::move(metrics_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnNetInstanceReady(mojom::NetInstancePtr net_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_net_ptr_ = std::move(net_ptr);
|
| - temporary_net_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnNetVersionReady, weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnNetVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - net_ptr_ = std::move(temporary_net_ptr_);
|
| - net_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseNetChannel, weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnNetInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseNetChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!net_ptr_)
|
| - return;
|
| -
|
| - net_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnNetInstanceClosed());
|
| + net_.OnInstanceReady(std::move(net_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnNotificationsInstanceReady(
|
| mojom::NotificationsInstancePtr notifications_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_notifications_ptr_ = std::move(notifications_ptr);
|
| - temporary_notifications_ptr_.QueryVersion(
|
| - base::Bind(&ArcBridgeService::OnNotificationsVersionReady,
|
| - weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnNotificationsVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - notifications_ptr_ = std::move(temporary_notifications_ptr_);
|
| - notifications_ptr_.set_connection_error_handler(
|
| - base::Bind(&ArcBridgeService::CloseNotificationsChannel,
|
| - weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnNotificationsInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseNotificationsChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!notifications_ptr_)
|
| - return;
|
| -
|
| - notifications_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnNotificationsInstanceClosed());
|
| + notifications_.OnInstanceReady(std::move(notifications_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnObbMounterInstanceReady(
|
| mojom::ObbMounterInstancePtr obb_mounter_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_obb_mounter_ptr_ = std::move(obb_mounter_ptr);
|
| - temporary_obb_mounter_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnObbMounterVersionReady,
|
| - weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnObbMounterVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - obb_mounter_ptr_ = std::move(temporary_obb_mounter_ptr_);
|
| - obb_mounter_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseObbMounterChannel,
|
| - weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnObbMounterInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseObbMounterChannel() {
|
| - if (!obb_mounter_ptr_)
|
| - return;
|
| -
|
| - obb_mounter_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnObbMounterInstanceClosed());
|
| + obb_mounter_.OnInstanceReady(std::move(obb_mounter_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnPolicyInstanceReady(
|
| mojom::PolicyInstancePtr policy_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_policy_ptr_ = std::move(policy_ptr);
|
| - temporary_policy_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnPolicyVersionReady, weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnPolicyVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - policy_ptr_ = std::move(temporary_policy_ptr_);
|
| - policy_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::ClosePolicyChannel, weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnPolicyInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::ClosePolicyChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!policy_ptr_)
|
| - return;
|
| -
|
| - policy_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnPolicyInstanceClosed());
|
| + policy_.OnInstanceReady(std::move(policy_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnPowerInstanceReady(mojom::PowerInstancePtr power_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_power_ptr_ = std::move(power_ptr);
|
| - temporary_power_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnPowerVersionReady, weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnPowerVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - power_ptr_ = std::move(temporary_power_ptr_);
|
| - power_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::ClosePowerChannel, weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnPowerInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::ClosePowerChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!power_ptr_)
|
| - return;
|
| -
|
| - power_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnPowerInstanceClosed());
|
| + power_.OnInstanceReady(std::move(power_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnProcessInstanceReady(
|
| mojom::ProcessInstancePtr process_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_process_ptr_ = std::move(process_ptr);
|
| - temporary_process_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnProcessVersionReady, weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnProcessVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - process_ptr_ = std::move(temporary_process_ptr_);
|
| - process_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseProcessChannel, weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnProcessInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseProcessChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!process_ptr_)
|
| - return;
|
| -
|
| - process_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnProcessInstanceClosed());
|
| + process_.OnInstanceReady(std::move(process_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnStorageManagerInstanceReady(
|
| mojom::StorageManagerInstancePtr storage_manager_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_storage_manager_ptr_ = std::move(storage_manager_ptr);
|
| - temporary_storage_manager_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnStorageManagerVersionReady,
|
| - weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnStorageManagerVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - storage_manager_ptr_ = std::move(temporary_storage_manager_ptr_);
|
| - storage_manager_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseStorageManagerChannel,
|
| - weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(
|
| - Observer, observer_list(), OnStorageManagerInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseStorageManagerChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!storage_manager_ptr_)
|
| - return;
|
| -
|
| - storage_manager_ptr_.reset();
|
| - FOR_EACH_OBSERVER(
|
| - Observer, observer_list(), OnStorageManagerInstanceClosed());
|
| + storage_manager_.OnInstanceReady(std::move(storage_manager_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnVideoInstanceReady(mojom::VideoInstancePtr video_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_video_ptr_ = std::move(video_ptr);
|
| - temporary_video_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnVideoVersionReady, weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnVideoVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - video_ptr_ = std::move(temporary_video_ptr_);
|
| - video_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseVideoChannel, weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnVideoInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseVideoChannel() {
|
| - DCHECK(CalledOnValidThread());
|
| - if (!video_ptr_)
|
| - return;
|
| -
|
| - video_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnVideoInstanceClosed());
|
| + video_.OnInstanceReady(std::move(video_ptr));
|
| }
|
|
|
| void ArcBridgeService::OnWindowManagerInstanceReady(
|
| mojom::WindowManagerInstancePtr window_manager_ptr) {
|
| DCHECK(CalledOnValidThread());
|
| - temporary_window_manager_ptr_ = std::move(window_manager_ptr);
|
| - temporary_window_manager_ptr_.QueryVersion(base::Bind(
|
| - &ArcBridgeService::OnWindowManagerVersionReady,
|
| - weak_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| -void ArcBridgeService::OnWindowManagerVersionReady(uint32_t version) {
|
| - DCHECK(CalledOnValidThread());
|
| - window_manager_ptr_ = std::move(temporary_window_manager_ptr_);
|
| - window_manager_ptr_.set_connection_error_handler(base::Bind(
|
| - &ArcBridgeService::CloseWindowManagerChannel,
|
| - weak_factory_.GetWeakPtr()));
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnWindowManagerInstanceReady());
|
| -}
|
| -
|
| -void ArcBridgeService::CloseWindowManagerChannel() {
|
| - if (!window_manager_ptr_)
|
| - return;
|
| -
|
| - window_manager_ptr_.reset();
|
| - FOR_EACH_OBSERVER(Observer, observer_list(), OnWindowManagerInstanceClosed());
|
| + window_manager_.OnInstanceReady(std::move(window_manager_ptr));
|
| }
|
|
|
| void ArcBridgeService::SetState(State state) {
|
| @@ -599,25 +184,25 @@ bool ArcBridgeService::CalledOnValidThread() {
|
| void ArcBridgeService::CloseAllChannels() {
|
| // Call all the error handlers of all the channels to both close the channel
|
| // and notify any observers that the channel is closed.
|
| - CloseAppChannel();
|
| - CloseAudioChannel();
|
| - CloseAuthChannel();
|
| - CloseBluetoothChannel();
|
| - CloseClipboardChannel();
|
| - CloseCrashCollectorChannel();
|
| - CloseFileSystemChannel();
|
| - CloseImeChannel();
|
| - CloseIntentHelperChannel();
|
| - CloseMetricsChannel();
|
| - CloseNetChannel();
|
| - CloseNotificationsChannel();
|
| - CloseObbMounterChannel();
|
| - ClosePolicyChannel();
|
| - ClosePowerChannel();
|
| - CloseProcessChannel();
|
| - CloseStorageManagerChannel();
|
| - CloseVideoChannel();
|
| - CloseWindowManagerChannel();
|
| + 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();
|
| }
|
|
|
| } // namespace arc
|
|
|