Index: extensions/shell/browser/shell_browser_main_parts.cc |
diff --git a/extensions/shell/browser/shell_browser_main_parts.cc b/extensions/shell/browser/shell_browser_main_parts.cc |
index dd953675168502a4501e000adde18d8d7af7600c..a69861b3302edc0c553ebc2ff936e07300683573 100644 |
--- a/extensions/shell/browser/shell_browser_main_parts.cc |
+++ b/extensions/shell/browser/shell_browser_main_parts.cc |
@@ -47,15 +47,24 @@ |
#if defined(OS_CHROMEOS) |
#include "chromeos/audio/audio_devices_pref_handler_impl.h" |
#include "chromeos/audio/cras_audio_handler.h" |
-#include "chromeos/dbus/dbus_thread_manager.h" |
#include "chromeos/disks/disk_mount_manager.h" |
#include "chromeos/network/network_handler.h" |
-#include "device/bluetooth/bluetooth_adapter_factory.h" |
-#include "device/bluetooth/dbus/bluez_dbus_manager.h" |
#include "extensions/shell/browser/shell_audio_controller_chromeos.h" |
#include "extensions/shell/browser/shell_network_controller_chromeos.h" |
#endif |
+#if defined(OS_CHROMEOS) || defined(OS_LINUX) |
+#include "device/bluetooth/bluetooth_adapter_factory.h" |
+#endif |
+ |
+#if defined(OS_CHROMEOS) |
+#include "chromeos/dbus/dbus_thread_manager.h" |
+#include "device/bluetooth/dbus/bluez_dbus_manager.h" |
Devlin
2017/04/14 01:43:44
Put this in the ifdef above for both CrOS and Linu
michaelpg
2017/04/14 03:52:58
Done.
|
+#elif defined(OS_LINUX) |
+#include "device/bluetooth/dbus/bluez_dbus_manager.h" |
+#include "device/bluetooth/dbus/dbus_thread_manager_linux.h" |
+#endif |
+ |
#if defined(OS_MACOSX) |
#include "extensions/shell/browser/shell_browser_main_parts_mac.h" |
#endif |
@@ -122,8 +131,17 @@ void ShellBrowserMainParts::PostMainMessageLoopStart() { |
switches::kAppShellAllowRoaming)) { |
network_controller_->SetCellularAllowRoaming(true); |
} |
+#elif defined(OS_LINUX) |
+ // app_shell doesn't need GTK, so the fake input method context can work. |
+ // See crbug.com/381852 and revision fb69f142. |
+ // TODO(michaelpg): Verify this works for target environments. |
+ ui::InitializeInputMethodForTesting(); |
Devlin
2017/04/14 01:43:44
ForTesting methods used in non test environments t
michaelpg
2017/04/14 03:52:58
I added the TODO because I need to investigate thi
|
+ |
+ bluez::DBusThreadManagerLinux::Initialize(); |
+ bluez::BluezDBusManager::Initialize( |
+ bluez::DBusThreadManagerLinux::Get()->GetSystemBus(), |
+ /*use_dbus_fakes=*/false); |
#else |
- // Non-Chrome OS platforms are for developer convenience, so use a test IME. |
ui::InitializeInputMethodForTesting(); |
#endif |
} |
@@ -278,6 +296,10 @@ void ShellBrowserMainParts::PostDestroyThreads() { |
device::BluetoothAdapterFactory::Shutdown(); |
bluez::BluezDBusManager::Shutdown(); |
chromeos::DBusThreadManager::Shutdown(); |
+#elif defined(OS_LINUX) |
+ device::BluetoothAdapterFactory::Shutdown(); |
+ bluez::BluezDBusManager::Shutdown(); |
+ bluez::DBusThreadManagerLinux::Shutdown(); |
#endif |
} |