93 lines
3.2 KiB
Diff
93 lines
3.2 KiB
Diff
From: PF4Public@users.noreply.github.com
|
|
License: BSD
|
|
Subject: Fix building with use_bluez=false
|
|
|
|
This is a quick and dirty fix for building chromium with use_bluez=false
|
|
It prevents initialization and usage of Bluetooth by the browser
|
|
It is not supposed to be applied for use_bluez=true
|
|
The browser will SEGFAULT upon accessing chrome://bluetooth-internals/
|
|
It also breaks WebAuthn: https://github.com/PF4Public/gentoo-overlay/issues/254
|
|
|
|
---
|
|
--- a/headless/lib/browser/headless_browser_main_parts_posix.cc
|
|
+++ b/headless/lib/browser/headless_browser_main_parts_posix.cc
|
|
@@ -25,9 +25,8 @@
|
|
#include "components/os_crypt/sync/os_crypt.h"
|
|
#include "headless/public/switches.h"
|
|
|
|
-#if defined(USE_DBUS)
|
|
-#include "device/bluetooth/dbus/bluez_dbus_manager.h"
|
|
-#endif
|
|
+#include "device/bluetooth/bluetooth_adapter_factory.h"
|
|
+#include "device/bluetooth/dbus/dbus_bluez_manager_wrapper_linux.h"
|
|
|
|
#endif // BUILDFLAG(IS_LINUX)
|
|
|
|
@@ -134,7 +133,7 @@
|
|
#if BUILDFLAG(IS_LINUX)
|
|
|
|
#if defined(USE_DBUS)
|
|
- bluez::BluezDBusManager::Initialize(/*system_bus=*/nullptr);
|
|
+ bluez::DBusBluezManagerWrapperLinux::Initialize();
|
|
#endif
|
|
|
|
// Set up crypt config. This needs to be done before anything starts the
|
|
--- a/chrome/browser/chrome_browser_main_linux.cc
|
|
+++ b/chrome/browser/chrome_browser_main_linux.cc
|
|
@@ -35,6 +35,11 @@
|
|
#include "chrome/browser/dbus_memory_pressure_evaluator_linux.h"
|
|
#endif
|
|
|
|
+#if BUILDFLAG(IS_LINUX)
|
|
+#include "device/bluetooth/bluetooth_adapter_factory.h"
|
|
+#include "device/bluetooth/dbus/dbus_bluez_manager_wrapper_linux.h"
|
|
+#endif
|
|
+
|
|
#if !BUILDFLAG(IS_CHROMEOS_ASH)
|
|
#include "base/command_line.h"
|
|
#include "base/linux_util.h"
|
|
@@ -59,7 +64,9 @@
|
|
#endif // BUILDFLAG(IS_CHROMEOS)
|
|
|
|
#if !BUILDFLAG(IS_CHROMEOS)
|
|
- bluez::BluezDBusManager::Initialize(nullptr /* system_bus */);
|
|
+ #if BUILDFLAG(IS_LINUX)
|
|
+ bluez::DBusBluezManagerWrapperLinux::Initialize();
|
|
+ #endif
|
|
|
|
// Set up crypt config. This needs to be done before anything starts the
|
|
// network service, as the raw encryption key needs to be shared with the
|
|
@@ -117,7 +124,7 @@
|
|
#endif // defined(USE_DBUS) && !BUILDFLAG(IS_CHROMEOS)
|
|
|
|
void ChromeBrowserMainPartsLinux::PostDestroyThreads() {
|
|
-#if BUILDFLAG(IS_CHROMEOS)
|
|
+#if BUILDFLAG(IS_LINUX)
|
|
// No-op; per PostBrowserStart() comment, this is done elsewhere.
|
|
#else
|
|
bluez::BluezDBusManager::Shutdown();
|
|
--- a/chrome/browser/metrics/bluetooth_metrics_provider.cc
|
|
+++ b/chrome/browser/metrics/bluetooth_metrics_provider.cc
|
|
@@ -16,9 +16,7 @@
|
|
|
|
bool BluetoothMetricsProvider::ProvideHistograms() {
|
|
base::UmaHistogramEnumeration("Bluetooth.StackName",
|
|
- floss::features::IsFlossEnabled()
|
|
- ? BluetoothStackName::kFloss
|
|
- : BluetoothStackName::kBlueZ);
|
|
+ BluetoothStackName::kBlueZ);
|
|
return true;
|
|
}
|
|
|
|
--- a/device/bluetooth/adapter.cc
|
|
+++ b/device/bluetooth/adapter.cc
|
|
@@ -115,7 +115,7 @@
|
|
adapter_info->system_name = adapter_->GetSystemName();
|
|
#endif
|
|
#if BUILDFLAG(IS_CHROMEOS)
|
|
- adapter_info->floss = floss::features::IsFlossEnabled();
|
|
+ adapter_info->floss = false;
|
|
adapter_info->extended_advertisement_support =
|
|
adapter_->IsExtendedAdvertisementsAvailable();
|
|
#endif
|