Commit 506d933c authored by Giovanni Ortuño Urquidi's avatar Giovanni Ortuño Urquidi Committed by Commit Bot

bluetooth: Always use DBusThreadManagerLinux or DBusThreadManager

We always end up using DBusThreadManagerLinux on Linux and
DBusThreadManager on Chrome OS. Rather than having clients pass
these when initializing BluezDBusThreadManager, have
BluezDBusThreadManager choose which one to use based on the OS.

This puts the logic for choosing which one to use in a single place.

Bug: 882771
Change-Id: I9c36eb9de8419fd5ac4bc6fbab3ded2738b33d91
Reviewed-on: https://chromium-review.googlesource.com/1237694Reviewed-by: default avatarSonny Sasaka <sonnysasaka@chromium.org>
Reviewed-by: default avatarPeter Beverloo <peter@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Reviewed-by: default avatarMichael Giuffrida <michaelpg@chromium.org>
Commit-Queue: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593730}
parent 177b931d
...@@ -148,10 +148,9 @@ void AshService::InitForMash() { ...@@ -148,10 +148,9 @@ void AshService::InitForMash() {
chromeos::PowerPolicyController::Initialize( chromeos::PowerPolicyController::Initialize(
chromeos::DBusThreadManager::Get()->GetPowerManagerClient()); chromeos::DBusThreadManager::Get()->GetPowerManagerClient());
// See ChromeBrowserMainPartsChromeos for ordering details. // The initialization matches that in ChromeBrowserMainPartsChromeos.
bluez::BluezDBusManager::Initialize(
chromeos::DBusThreadManager::Get()->GetSystemBus(), bluez::BluezDBusManager::Initialize();
chromeos::DBusThreadManager::Get()->IsUsingFakes());
if (!chromeos::NetworkHandler::IsInitialized()) { if (!chromeos::NetworkHandler::IsInitialized()) {
chromeos::NetworkHandler::Initialize(); chromeos::NetworkHandler::Initialize();
network_handler_initialized_ = true; network_handler_initialized_ = true;
......
...@@ -80,7 +80,7 @@ void ShellBrowserMainParts::PreMainMessageLoopRun() { ...@@ -80,7 +80,7 @@ void ShellBrowserMainParts::PreMainMessageLoopRun() {
// is absent. // is absent.
chromeos::CrasAudioHandler::InitializeForTesting(); chromeos::CrasAudioHandler::InitializeForTesting();
bluez::BluezDBusManager::Initialize(nullptr, true /* use stub */); bluez::BluezDBusManager::Initialize();
chromeos::PowerPolicyController::Initialize( chromeos::PowerPolicyController::Initialize(
chromeos::DBusThreadManager::Get()->GetPowerManagerClient()); chromeos::DBusThreadManager::Get()->GetPowerManagerClient());
......
...@@ -255,9 +255,7 @@ void AshTestHelper::SetUp(bool start_session, bool provide_local_state) { ...@@ -255,9 +255,7 @@ void AshTestHelper::SetUp(bool start_session, bool provide_local_state) {
} }
if (!bluez::BluezDBusManager::IsInitialized()) { if (!bluez::BluezDBusManager::IsInitialized()) {
bluez::BluezDBusManager::Initialize( bluez::BluezDBusManager::Initialize();
chromeos::DBusThreadManager::Get()->GetSystemBus(),
chromeos::DBusThreadManager::Get()->IsUsingFakes());
bluez_dbus_manager_initialized_ = true; bluez_dbus_manager_initialized_ = true;
} }
......
...@@ -99,8 +99,7 @@ void ChromeBrowserMainPartsLinux::PostProfileInit() { ...@@ -99,8 +99,7 @@ void ChromeBrowserMainPartsLinux::PostProfileInit() {
void ChromeBrowserMainPartsLinux::PostMainMessageLoopStart() { void ChromeBrowserMainPartsLinux::PostMainMessageLoopStart() {
#if !defined(OS_CHROMEOS) #if !defined(OS_CHROMEOS)
bluez::DBusThreadManagerLinux::Initialize(); bluez::DBusThreadManagerLinux::Initialize();
bluez::BluezDBusManager::Initialize( bluez::BluezDBusManager::Initialize();
bluez::DBusThreadManagerLinux::Get()->GetSystemBus(), false);
#endif #endif
ChromeBrowserMainPartsPosix::PostMainMessageLoopStart(); ChromeBrowserMainPartsPosix::PostMainMessageLoopStart();
......
...@@ -316,9 +316,7 @@ class DBusPreEarlyInit { ...@@ -316,9 +316,7 @@ class DBusPreEarlyInit {
class DBusServices { class DBusServices {
public: public:
explicit DBusServices(const content::MainFunctionParams& parameters) { explicit DBusServices(const content::MainFunctionParams& parameters) {
bluez::BluezDBusManager::Initialize( bluez::BluezDBusManager::Initialize();
DBusThreadManager::Get()->GetSystemBus(),
chromeos::DBusThreadManager::Get()->IsUsingFakes());
if (!features::IsMultiProcessMash()) { if (!features::IsMultiProcessMash()) {
// In Mash, power policy is sent to powerd by ash. // In Mash, power policy is sent to powerd by ash.
......
...@@ -57,9 +57,7 @@ ViewEventTestPlatformPartChromeOS::ViewEventTestPlatformPartChromeOS( ...@@ -57,9 +57,7 @@ ViewEventTestPlatformPartChromeOS::ViewEventTestPlatformPartChromeOS(
// it is initialized by window manager service. // it is initialized by window manager service.
chromeos::PowerPolicyController::Initialize( chromeos::PowerPolicyController::Initialize(
chromeos::DBusThreadManager::Get()->GetPowerManagerClient()); chromeos::DBusThreadManager::Get()->GetPowerManagerClient());
bluez::BluezDBusManager::Initialize( bluez::BluezDBusManager::Initialize();
chromeos::DBusThreadManager::Get()->GetSystemBus(),
chromeos::DBusThreadManager::Get()->IsUsingFakes());
chromeos::CrasAudioHandler::InitializeForTesting(); chromeos::CrasAudioHandler::InitializeForTesting();
chromeos::NetworkHandler::Initialize(); chromeos::NetworkHandler::Initialize();
......
...@@ -116,9 +116,7 @@ void ShellBrowserMainParts::PreMainMessageLoopStart() { ...@@ -116,9 +116,7 @@ void ShellBrowserMainParts::PreMainMessageLoopStart() {
void ShellBrowserMainParts::PostMainMessageLoopStart() { void ShellBrowserMainParts::PostMainMessageLoopStart() {
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
chromeos::DBusThreadManager::Initialize(); chromeos::DBusThreadManager::Initialize();
bluez::BluezDBusManager::Initialize( bluez::BluezDBusManager::Initialize();
chromeos::DBusThreadManager::Get()->GetSystemBus(),
chromeos::DBusThreadManager::Get()->IsUsingFakes());
#elif defined(OS_LINUX) #elif defined(OS_LINUX)
bluez::DBusBluezManagerWrapperLinux::Initialize(); bluez::DBusBluezManagerWrapperLinux::Initialize();
#endif #endif
......
...@@ -33,8 +33,7 @@ namespace bluez { ...@@ -33,8 +33,7 @@ namespace bluez {
class BluetoothAdvertisementBlueZTest : public testing::Test { class BluetoothAdvertisementBlueZTest : public testing::Test {
public: public:
void SetUp() override { void SetUp() override {
bluez::BluezDBusManager::Initialize(nullptr /* bus */, bluez::BluezDBusManager::GetSetterForTesting();
true /* use_dbus_stub */);
callback_count_ = 0; callback_count_ = 0;
error_callback_count_ = 0; error_callback_count_ = 0;
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "base/sys_info.h" #include "base/sys_info.h"
#include "base/threading/thread.h" #include "base/threading/thread.h"
#include "build/build_config.h"
#include "dbus/bus.h" #include "dbus/bus.h"
#include "dbus/dbus_statistics.h" #include "dbus/dbus_statistics.h"
#include "dbus/message.h" #include "dbus/message.h"
...@@ -32,6 +33,12 @@ ...@@ -32,6 +33,12 @@
#include "device/bluetooth/dbus/bluetooth_profile_manager_client.h" #include "device/bluetooth/dbus/bluetooth_profile_manager_client.h"
#include "third_party/cros_system_api/dbus/service_constants.h" #include "third_party/cros_system_api/dbus/service_constants.h"
#if defined(OS_CHROMEOS)
#include "chromeos/dbus/dbus_thread_manager.h"
#elif defined(OS_LINUX)
#include "device/bluetooth/dbus/dbus_thread_manager_linux.h"
#endif
namespace bluez { namespace bluez {
static BluezDBusManager* g_bluez_dbus_manager = nullptr; static BluezDBusManager* g_bluez_dbus_manager = nullptr;
...@@ -223,14 +230,21 @@ std::string BluezDBusManager::GetBluetoothServiceName() { ...@@ -223,14 +230,21 @@ std::string BluezDBusManager::GetBluetoothServiceName() {
} }
// static // static
void BluezDBusManager::Initialize(dbus::Bus* bus, bool use_dbus_stub) { void BluezDBusManager::Initialize() {
// If we initialize BluezDBusManager twice we may also be shutting it down // If we initialize BluezDBusManager twice we may also be shutting it down
// early; do not allow that. // early; do not allow that.
if (g_using_bluez_dbus_manager_for_testing) if (g_using_bluez_dbus_manager_for_testing)
return; return;
CHECK(!g_bluez_dbus_manager); CHECK(!g_bluez_dbus_manager);
CreateGlobalInstance(bus, use_dbus_stub);
#if defined(OS_CHROMEOS)
CreateGlobalInstance(chromeos::DBusThreadManager::Get()->GetSystemBus(),
chromeos::DBusThreadManager::Get()->IsUsingFakes());
#elif defined(OS_LINUX)
CreateGlobalInstance(bluez::DBusThreadManagerLinux::Get()->GetSystemBus(),
false /* use_dbus_stubs */);
#endif
} }
// static // static
......
...@@ -61,7 +61,7 @@ class DEVICE_BLUETOOTH_EXPORT BluezDBusManager { ...@@ -61,7 +61,7 @@ class DEVICE_BLUETOOTH_EXPORT BluezDBusManager {
// This will initialize real, stub, or fake DBusClients depending on // This will initialize real, stub, or fake DBusClients depending on
// command-line arguments, whether Object Manager is supported and // command-line arguments, whether Object Manager is supported and
// whether this process runs in a real or test environment. // whether this process runs in a real or test environment.
static void Initialize(dbus::Bus* bus, bool use_dbus_fakes); static void Initialize();
// Returns a BluezDBusManagerSetter instance that allows tests to // Returns a BluezDBusManagerSetter instance that allows tests to
// replace individual D-Bus clients with their own implementations. // replace individual D-Bus clients with their own implementations.
......
...@@ -12,9 +12,7 @@ namespace bluez { ...@@ -12,9 +12,7 @@ namespace bluez {
// static // static
void DBusBluezManagerWrapperLinux::Initialize() { void DBusBluezManagerWrapperLinux::Initialize() {
DBusThreadManagerLinux::Initialize(); DBusThreadManagerLinux::Initialize();
BluezDBusManager::Initialize( BluezDBusManager::Initialize();
bluez::DBusThreadManagerLinux::Get()->GetSystemBus(),
false /* use_dbus_stub */);
} }
// static // static
......
...@@ -124,9 +124,7 @@ void ShellBrowserMainParts::PostMainMessageLoopStart() { ...@@ -124,9 +124,7 @@ void ShellBrowserMainParts::PostMainMessageLoopStart() {
chromeos::DBusThreadManager::Initialize(); chromeos::DBusThreadManager::Initialize();
chromeos::disks::DiskMountManager::Initialize(); chromeos::disks::DiskMountManager::Initialize();
bluez::BluezDBusManager::Initialize( bluez::BluezDBusManager::Initialize();
chromeos::DBusThreadManager::Get()->GetSystemBus(),
chromeos::DBusThreadManager::Get()->IsUsingFakes());
chromeos::NetworkHandler::Initialize(); chromeos::NetworkHandler::Initialize();
network_controller_.reset(new ShellNetworkController( network_controller_.reset(new ShellNetworkController(
...@@ -144,9 +142,7 @@ void ShellBrowserMainParts::PostMainMessageLoopStart() { ...@@ -144,9 +142,7 @@ void ShellBrowserMainParts::PostMainMessageLoopStart() {
ui::InitializeInputMethodForTesting(); ui::InitializeInputMethodForTesting();
bluez::DBusThreadManagerLinux::Initialize(); bluez::DBusThreadManagerLinux::Initialize();
bluez::BluezDBusManager::Initialize( bluez::BluezDBusManager::Initialize();
bluez::DBusThreadManagerLinux::Get()->GetSystemBus(),
/*use_dbus_fakes=*/false);
#else #else
ui::InitializeInputMethodForTesting(); ui::InitializeInputMethodForTesting();
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment