lacros_dbus_helper.cc 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // Copyright 2021 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 "chromeos/lacros/dbus/lacros_dbus_helper.h"
  5. #include "base/feature_list.h"
  6. #include "chromeos/dbus/init/initialize_dbus_client.h"
  7. #include "chromeos/dbus/missive/missive_client.h"
  8. #include "chromeos/dbus/permission_broker/permission_broker_client.h"
  9. #include "chromeos/dbus/power/power_manager_client.h"
  10. #include "chromeos/dbus/tpm_manager/tpm_manager_client.h"
  11. #include "chromeos/dbus/u2f/u2f_client.h"
  12. #include "chromeos/lacros/dbus/lacros_dbus_thread_manager.h"
  13. #include "device/bluetooth/dbus/bluez_dbus_manager.h"
  14. #include "device/bluetooth/floss/floss_dbus_manager.h"
  15. #include "device/bluetooth/floss/floss_features.h"
  16. namespace chromeos {
  17. void LacrosInitializeDBus() {
  18. // Unlike Ash, Lacros has no services that need paths, and therefore needs
  19. // not override paths like Ash does.
  20. // Initialize LacrosDBusThreadManager for the browser.
  21. LacrosDBusThreadManager::Initialize();
  22. // Initialize Chrome D-Bus clients.
  23. dbus::Bus* bus = LacrosDBusThreadManager::Get()->GetSystemBus();
  24. InitializeDBusClient<PermissionBrokerClient>(bus);
  25. InitializeDBusClient<MissiveClient>(bus);
  26. InitializeDBusClient<chromeos::PowerManagerClient>(bus);
  27. InitializeDBusClient<TpmManagerClient>(bus);
  28. InitializeDBusClient<U2FClient>(bus);
  29. }
  30. void LacrosInitializeFeatureListDependentDBus() {
  31. dbus::Bus* bus = LacrosDBusThreadManager::Get()->GetSystemBus();
  32. if (floss::features::IsFlossEnabled()) {
  33. InitializeDBusClient<floss::FlossDBusManager>(bus);
  34. } else {
  35. InitializeDBusClient<bluez::BluezDBusManager>(bus);
  36. }
  37. }
  38. void LacrosShutdownDBus() {
  39. // Shut down D-Bus clients in reverse order of initialization.
  40. if (floss::features::IsFlossEnabled()) {
  41. floss::FlossDBusManager::Shutdown();
  42. } else {
  43. bluez::BluezDBusManager::Shutdown();
  44. }
  45. MissiveClient::Shutdown();
  46. PermissionBrokerClient::Shutdown();
  47. LacrosDBusThreadManager::Shutdown();
  48. }
  49. } // namespace chromeos