Index: ash/shell.cc |
diff --git a/ash/shell.cc b/ash/shell.cc |
index 24e080b9eda818909dce59b4baa968cf59537cae..99410325ab3929f70302f2858245de08ae5f6f80 100644 |
--- a/ash/shell.cc |
+++ b/ash/shell.cc |
@@ -33,6 +33,7 @@ |
#include "ash/common/shell_observer.h" |
#include "ash/common/system/brightness_control_delegate.h" |
#include "ash/common/system/chromeos/bluetooth/bluetooth_notification_controller.h" |
+#include "ash/common/system/chromeos/bluetooth/tray_bluetooth_helper.h" |
#include "ash/common/system/chromeos/brightness/brightness_controller_chromeos.h" |
#include "ash/common/system/chromeos/keyboard_brightness_controller.h" |
#include "ash/common/system/chromeos/network/sms_observer.h" |
@@ -527,6 +528,7 @@ Shell::Shell(std::unique_ptr<ShellDelegate> shell_delegate, |
system_tray_controller_(base::MakeUnique<SystemTrayController>()), |
app_list_(base::MakeUnique<app_list::AppList>()), |
link_handler_model_factory_(nullptr), |
+ tray_bluetooth_helper_(base::MakeUnique<TrayBluetoothHelper>()), |
display_configurator_(new display::DisplayConfigurator()), |
native_cursor_manager_(nullptr), |
simulate_modal_window_open_for_testing_(false), |
@@ -609,6 +611,7 @@ Shell::~Shell() { |
// to deinitialize the shelf first, as it is initialized after the delegate. |
for (WmWindow* root : wm_shell_->GetAllRootWindows()) |
root->GetRootWindowController()->GetShelf()->ShutdownShelfWidget(); |
+ tray_bluetooth_helper_.reset(); |
DeleteSystemTrayDelegate(); |
// Drag-and-drop must be canceled prior to close all windows. |
@@ -971,6 +974,9 @@ void Shell::Init(const ShellInitParams& init_params) { |
SetSystemTrayDelegate( |
base::WrapUnique(shell_delegate_->CreateSystemTrayDelegate())); |
+ // May trigger initialization of the Bluetooth adapter. |
+ tray_bluetooth_helper_->Initialize(); |
+ |
// Create AshTouchTransformController before |
// WindowTreeHostManager::InitDisplays() |
// since AshTouchTransformController listens on |