multidevice_setup_service.cc 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // Copyright 2018 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "ash/services/multidevice_setup/multidevice_setup_service.h"
  5. #include "ash/components/multidevice/logging/logging.h"
  6. #include "ash/services/multidevice_setup/account_status_change_delegate_notifier_impl.h"
  7. #include "ash/services/multidevice_setup/android_sms_app_installing_status_observer.h"
  8. #include "ash/services/multidevice_setup/global_state_feature_manager_impl.h"
  9. #include "ash/services/multidevice_setup/grandfathered_easy_unlock_host_disabler.h"
  10. #include "ash/services/multidevice_setup/host_backend_delegate_impl.h"
  11. #include "ash/services/multidevice_setup/host_device_timestamp_manager_impl.h"
  12. #include "ash/services/multidevice_setup/host_verifier_impl.h"
  13. #include "ash/services/multidevice_setup/multidevice_setup_base.h"
  14. #include "ash/services/multidevice_setup/multidevice_setup_initializer.h"
  15. #include "ash/services/multidevice_setup/privileged_host_device_setter_impl.h"
  16. #include "ash/services/multidevice_setup/public/cpp/android_sms_app_helper_delegate.h"
  17. #include "ash/services/multidevice_setup/public/cpp/android_sms_pairing_state_tracker.h"
  18. #include "ash/services/multidevice_setup/public/cpp/prefs.h"
  19. #include "ash/services/multidevice_setup/wifi_sync_notification_controller.h"
  20. #include "base/bind.h"
  21. namespace ash {
  22. namespace multidevice_setup {
  23. // static
  24. void MultiDeviceSetupService::RegisterProfilePrefs(
  25. PrefRegistrySimple* registry) {
  26. HostDeviceTimestampManagerImpl::RegisterPrefs(registry);
  27. AccountStatusChangeDelegateNotifierImpl::RegisterPrefs(registry);
  28. HostBackendDelegateImpl::RegisterPrefs(registry);
  29. GlobalStateFeatureManagerImpl::RegisterPrefs(registry);
  30. WifiSyncNotificationController::RegisterPrefs(registry);
  31. HostVerifierImpl::RegisterPrefs(registry);
  32. GrandfatheredEasyUnlockHostDisabler::RegisterPrefs(registry);
  33. AndroidSmsAppInstallingStatusObserver::RegisterPrefs(registry);
  34. RegisterFeaturePrefs(registry);
  35. }
  36. MultiDeviceSetupService::MultiDeviceSetupService(
  37. PrefService* pref_service,
  38. device_sync::DeviceSyncClient* device_sync_client,
  39. AuthTokenValidator* auth_token_validator,
  40. OobeCompletionTracker* oobe_completion_tracker,
  41. AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
  42. AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
  43. const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
  44. bool is_secondary_user)
  45. : multidevice_setup_(MultiDeviceSetupInitializer::Factory::Create(
  46. pref_service,
  47. device_sync_client,
  48. auth_token_validator,
  49. oobe_completion_tracker,
  50. android_sms_app_helper_delegate,
  51. android_sms_pairing_state_tracker,
  52. gcm_device_info_provider,
  53. is_secondary_user)),
  54. privileged_host_device_setter_(
  55. PrivilegedHostDeviceSetterImpl::Factory::Create(
  56. multidevice_setup_.get())) {}
  57. MultiDeviceSetupService::~MultiDeviceSetupService() {
  58. // Subclasses may hold onto message response callbacks. It's important that
  59. // all receivers are closed by the time those callbacks are destroyed, or they
  60. // will DCHECK.
  61. if (multidevice_setup_)
  62. multidevice_setup_->CloseAllReceivers();
  63. }
  64. void MultiDeviceSetupService::BindMultiDeviceSetup(
  65. mojo::PendingReceiver<mojom::MultiDeviceSetup> receiver) {
  66. multidevice_setup_->BindReceiver(std::move(receiver));
  67. }
  68. void MultiDeviceSetupService::BindPrivilegedHostDeviceSetter(
  69. mojo::PendingReceiver<mojom::PrivilegedHostDeviceSetter> receiver) {
  70. privileged_host_device_setter_->BindReceiver(std::move(receiver));
  71. }
  72. } // namespace multidevice_setup
  73. } // namespace ash