OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/ash/system_tray_delegate_chromeos.h" | 5 #include "chrome/browser/ui/ash/system_tray_delegate_chromeos.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <memory> | 10 #include <memory> |
11 #include <set> | 11 #include <set> |
12 #include <string> | 12 #include <string> |
13 #include <utility> | 13 #include <utility> |
14 #include <vector> | 14 #include <vector> |
15 | 15 |
16 #include "ash/common/login_status.h" | 16 #include "ash/common/login_status.h" |
17 #include "ash/common/shell_delegate.h" | 17 #include "ash/common/shell_delegate.h" |
| 18 #include "ash/common/system/chromeos/bluetooth/tray_bluetooth_helper.h" |
18 #include "ash/common/system/chromeos/power/power_status.h" | 19 #include "ash/common/system/chromeos/power/power_status.h" |
19 #include "ash/common/system/chromeos/session/logout_button_observer.h" | 20 #include "ash/common/system/chromeos/session/logout_button_observer.h" |
20 #include "ash/common/system/date/clock_observer.h" | 21 #include "ash/common/system/date/clock_observer.h" |
21 #include "ash/common/system/ime/ime_observer.h" | 22 #include "ash/common/system/ime/ime_observer.h" |
22 #include "ash/common/system/tray/system_tray_notifier.h" | 23 #include "ash/common/system/tray/system_tray_notifier.h" |
23 #include "ash/common/system/tray_accessibility.h" | 24 #include "ash/common/system/tray_accessibility.h" |
24 #include "ash/common/system/user/user_observer.h" | 25 #include "ash/common/system/user/user_observer.h" |
25 #include "ash/common/wm_shell.h" | 26 #include "ash/common/wm_shell.h" |
26 #include "ash/shell.h" | 27 #include "ash/shell.h" |
27 #include "ash/system/chromeos/rotation/tray_rotation_lock.h" | 28 #include "ash/system/chromeos/rotation/tray_rotation_lock.h" |
(...skipping 17 matching lines...) Expand all Loading... |
45 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" | 46 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" |
46 #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" | 47 #include "chrome/browser/chromeos/login/users/supervised_user_manager.h" |
47 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" | 48 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
48 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" | 49 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" |
49 #include "chrome/browser/chromeos/profiles/multiprofiles_intro_dialog.h" | 50 #include "chrome/browser/chromeos/profiles/multiprofiles_intro_dialog.h" |
50 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 51 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
51 #include "chrome/browser/profiles/profile_manager.h" | 52 #include "chrome/browser/profiles/profile_manager.h" |
52 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" | 53 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" |
53 #include "chrome/browser/ui/ash/networking_config_delegate_chromeos.h" | 54 #include "chrome/browser/ui/ash/networking_config_delegate_chromeos.h" |
54 #include "chrome/browser/ui/ash/system_tray_client.h" | 55 #include "chrome/browser/ui/ash/system_tray_client.h" |
55 #include "chrome/browser/ui/ash/tray_bluetooth_helper.h" | |
56 #include "chrome/browser/ui/browser.h" | 56 #include "chrome/browser/ui/browser.h" |
57 #include "chrome/browser/ui/browser_list.h" | 57 #include "chrome/browser/ui/browser_list.h" |
58 #include "chrome/browser/ui/chrome_pages.h" | 58 #include "chrome/browser/ui/chrome_pages.h" |
59 #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" | 59 #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" |
60 #include "chrome/browser/ui/singleton_tabs.h" | 60 #include "chrome/browser/ui/singleton_tabs.h" |
61 #include "chrome/common/chrome_switches.h" | 61 #include "chrome/common/chrome_switches.h" |
62 #include "chrome/common/features.h" | 62 #include "chrome/common/features.h" |
63 #include "chrome/common/pref_names.h" | 63 #include "chrome/common/pref_names.h" |
64 #include "chrome/common/url_constants.h" | 64 #include "chrome/common/url_constants.h" |
65 #include "chrome/grit/generated_resources.h" | 65 #include "chrome/grit/generated_resources.h" |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 UserAddingScreen::Get()->Start(); | 117 UserAddingScreen::Get()->Start(); |
118 } | 118 } |
119 | 119 |
120 bool IsSessionInSecondaryLoginScreen() { | 120 bool IsSessionInSecondaryLoginScreen() { |
121 return session_manager::SessionManager::Get()->IsInSecondaryLoginScreen(); | 121 return session_manager::SessionManager::Get()->IsInSecondaryLoginScreen(); |
122 } | 122 } |
123 | 123 |
124 } // namespace | 124 } // namespace |
125 | 125 |
126 SystemTrayDelegateChromeOS::SystemTrayDelegateChromeOS() | 126 SystemTrayDelegateChromeOS::SystemTrayDelegateChromeOS() |
127 : bluetooth_helper_(base::MakeUnique<TrayBluetoothHelper>()), | 127 : networking_config_delegate_( |
128 networking_config_delegate_( | |
129 base::MakeUnique<NetworkingConfigDelegateChromeos>()) { | 128 base::MakeUnique<NetworkingConfigDelegateChromeos>()) { |
130 // Register notifications on construction so that events such as | 129 // Register notifications on construction so that events such as |
131 // PROFILE_CREATED do not get missed if they happen before Initialize(). | 130 // PROFILE_CREATED do not get missed if they happen before Initialize(). |
132 registrar_.reset(new content::NotificationRegistrar); | 131 registrar_.reset(new content::NotificationRegistrar); |
133 if (GetUserLoginStatus() == ash::LoginStatus::NOT_LOGGED_IN) { | 132 if (GetUserLoginStatus() == ash::LoginStatus::NOT_LOGGED_IN) { |
134 registrar_->Add(this, | 133 registrar_->Add(this, |
135 chrome::NOTIFICATION_SESSION_STARTED, | 134 chrome::NOTIFICATION_SESSION_STARTED, |
136 content::NotificationService::AllSources()); | 135 content::NotificationService::AllSources()); |
137 } | 136 } |
138 registrar_->Add(this, | 137 registrar_->Add(this, |
(...skipping 13 matching lines...) Expand all Loading... |
152 user_manager::UserManager::Get()->AddSessionStateObserver(this); | 151 user_manager::UserManager::Get()->AddSessionStateObserver(this); |
153 } | 152 } |
154 | 153 |
155 void SystemTrayDelegateChromeOS::Initialize() { | 154 void SystemTrayDelegateChromeOS::Initialize() { |
156 DBusThreadManager::Get()->GetSessionManagerClient()->AddObserver(this); | 155 DBusThreadManager::Get()->GetSessionManagerClient()->AddObserver(this); |
157 | 156 |
158 input_method::InputMethodManager::Get()->AddObserver(this); | 157 input_method::InputMethodManager::Get()->AddObserver(this); |
159 input_method::InputMethodManager::Get()->AddImeMenuObserver(this); | 158 input_method::InputMethodManager::Get()->AddImeMenuObserver(this); |
160 ui::ime::InputMethodMenuManager::GetInstance()->AddObserver(this); | 159 ui::ime::InputMethodMenuManager::GetInstance()->AddObserver(this); |
161 | 160 |
162 bluetooth_helper_->Initialize(); | |
163 | |
164 BrowserList::AddObserver(this); | 161 BrowserList::AddObserver(this); |
165 | 162 |
166 local_state_registrar_.reset(new PrefChangeRegistrar); | 163 local_state_registrar_.reset(new PrefChangeRegistrar); |
167 local_state_registrar_->Init(g_browser_process->local_state()); | 164 local_state_registrar_->Init(g_browser_process->local_state()); |
168 | 165 |
169 UpdateSessionStartTime(); | 166 UpdateSessionStartTime(); |
170 UpdateSessionLengthLimit(); | 167 UpdateSessionLengthLimit(); |
171 | 168 |
172 local_state_registrar_->Add( | 169 local_state_registrar_->Add( |
173 prefs::kSessionStartTime, | 170 prefs::kSessionStartTime, |
(...skipping 21 matching lines...) Expand all Loading... |
195 // Unregister content notifications before destroying any components. | 192 // Unregister content notifications before destroying any components. |
196 registrar_.reset(); | 193 registrar_.reset(); |
197 | 194 |
198 // Unregister a11y status subscription. | 195 // Unregister a11y status subscription. |
199 accessibility_subscription_.reset(); | 196 accessibility_subscription_.reset(); |
200 | 197 |
201 DBusThreadManager::Get()->GetSessionManagerClient()->RemoveObserver(this); | 198 DBusThreadManager::Get()->GetSessionManagerClient()->RemoveObserver(this); |
202 input_method::InputMethodManager::Get()->RemoveObserver(this); | 199 input_method::InputMethodManager::Get()->RemoveObserver(this); |
203 ui::ime::InputMethodMenuManager::GetInstance()->RemoveObserver(this); | 200 ui::ime::InputMethodMenuManager::GetInstance()->RemoveObserver(this); |
204 | 201 |
205 bluetooth_helper_.reset(); | |
206 | |
207 BrowserList::RemoveObserver(this); | 202 BrowserList::RemoveObserver(this); |
208 StopObservingAppWindowRegistry(); | 203 StopObservingAppWindowRegistry(); |
209 StopObservingCustodianInfoChanges(); | 204 StopObservingCustodianInfoChanges(); |
210 | 205 |
211 policy::BrowserPolicyConnectorChromeOS* connector = | 206 policy::BrowserPolicyConnectorChromeOS* connector = |
212 g_browser_process->platform_part()->browser_policy_connector_chromeos(); | 207 g_browser_process->platform_part()->browser_policy_connector_chromeos(); |
213 policy::DeviceCloudPolicyManagerChromeOS* policy_manager = | 208 policy::DeviceCloudPolicyManagerChromeOS* policy_manager = |
214 connector->GetDeviceCloudPolicyManager(); | 209 connector->GetDeviceCloudPolicyManager(); |
215 if (policy_manager) | 210 if (policy_manager) |
216 policy_manager->core()->store()->RemoveObserver(this); | 211 policy_manager->core()->store()->RemoveObserver(this); |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
341 base::Bind(&OnAcceptMultiprofilesIntro); | 336 base::Bind(&OnAcceptMultiprofilesIntro); |
342 ShowMultiprofilesIntroDialog(on_accept); | 337 ShowMultiprofilesIntroDialog(on_accept); |
343 } else { | 338 } else { |
344 UserAddingScreen::Get()->Start(); | 339 UserAddingScreen::Get()->Start(); |
345 } | 340 } |
346 } | 341 } |
347 } | 342 } |
348 | 343 |
349 void SystemTrayDelegateChromeOS::GetAvailableBluetoothDevices( | 344 void SystemTrayDelegateChromeOS::GetAvailableBluetoothDevices( |
350 ash::BluetoothDeviceList* list) { | 345 ash::BluetoothDeviceList* list) { |
351 bluetooth_helper_->GetAvailableDevices(list); | 346 ash::Shell::Get()->tray_bluetooth_helper()->GetAvailableDevices(list); |
352 } | 347 } |
353 | 348 |
354 void SystemTrayDelegateChromeOS::BluetoothStartDiscovering() { | 349 void SystemTrayDelegateChromeOS::BluetoothStartDiscovering() { |
355 bluetooth_helper_->StartDiscovering(); | 350 ash::Shell::Get()->tray_bluetooth_helper()->StartDiscovering(); |
356 } | 351 } |
357 | 352 |
358 void SystemTrayDelegateChromeOS::BluetoothStopDiscovering() { | 353 void SystemTrayDelegateChromeOS::BluetoothStopDiscovering() { |
359 bluetooth_helper_->StopDiscovering(); | 354 ash::Shell::Get()->tray_bluetooth_helper()->StopDiscovering(); |
360 } | 355 } |
361 | 356 |
362 void SystemTrayDelegateChromeOS::ConnectToBluetoothDevice( | 357 void SystemTrayDelegateChromeOS::ConnectToBluetoothDevice( |
363 const std::string& address) { | 358 const std::string& address) { |
364 bluetooth_helper_->ConnectToDevice(address); | 359 ash::Shell::Get()->tray_bluetooth_helper()->ConnectToDevice(address); |
365 } | 360 } |
366 | 361 |
367 bool SystemTrayDelegateChromeOS::IsBluetoothDiscovering() const { | 362 bool SystemTrayDelegateChromeOS::IsBluetoothDiscovering() const { |
368 return bluetooth_helper_->IsDiscovering(); | 363 return ash::Shell::Get()->tray_bluetooth_helper()->IsDiscovering(); |
369 } | 364 } |
370 | 365 |
371 void SystemTrayDelegateChromeOS::GetCurrentIME(ash::IMEInfo* info) { | 366 void SystemTrayDelegateChromeOS::GetCurrentIME(ash::IMEInfo* info) { |
372 input_method::InputMethodManager* manager = | 367 input_method::InputMethodManager* manager = |
373 input_method::InputMethodManager::Get(); | 368 input_method::InputMethodManager::Get(); |
374 input_method::InputMethodUtil* util = manager->GetInputMethodUtil(); | 369 input_method::InputMethodUtil* util = manager->GetInputMethodUtil(); |
375 input_method::InputMethodDescriptor ime = | 370 input_method::InputMethodDescriptor ime = |
376 manager->GetActiveIMEState()->GetCurrentInputMethod(); | 371 manager->GetActiveIMEState()->GetCurrentInputMethod(); |
377 ExtractIMEInfo(ime, *util, info); | 372 ExtractIMEInfo(ime, *util, info); |
378 info->selected = true; | 373 info->selected = true; |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
422 ->ChangeInputMethod(ime_id, false /* show_message */); | 417 ->ChangeInputMethod(ime_id, false /* show_message */); |
423 input_method::InputMethodSwitchRecorder::Get()->RecordSwitch( | 418 input_method::InputMethodSwitchRecorder::Get()->RecordSwitch( |
424 true /* by_tray_menu */); | 419 true /* by_tray_menu */); |
425 } | 420 } |
426 | 421 |
427 void SystemTrayDelegateChromeOS::ActivateIMEProperty(const std::string& key) { | 422 void SystemTrayDelegateChromeOS::ActivateIMEProperty(const std::string& key) { |
428 input_method::InputMethodManager::Get()->ActivateInputMethodMenuItem(key); | 423 input_method::InputMethodManager::Get()->ActivateInputMethodMenuItem(key); |
429 } | 424 } |
430 | 425 |
431 void SystemTrayDelegateChromeOS::ToggleBluetooth() { | 426 void SystemTrayDelegateChromeOS::ToggleBluetooth() { |
432 bluetooth_helper_->ToggleEnabled(); | 427 ash::Shell::Get()->tray_bluetooth_helper()->ToggleEnabled(); |
433 } | 428 } |
434 | 429 |
435 bool SystemTrayDelegateChromeOS::GetBluetoothAvailable() { | 430 bool SystemTrayDelegateChromeOS::GetBluetoothAvailable() { |
436 return bluetooth_helper_->GetAvailable(); | 431 return ash::Shell::Get()->tray_bluetooth_helper()->GetAvailable(); |
437 } | 432 } |
438 | 433 |
439 bool SystemTrayDelegateChromeOS::GetBluetoothEnabled() { | 434 bool SystemTrayDelegateChromeOS::GetBluetoothEnabled() { |
440 return bluetooth_helper_->GetEnabled(); | 435 return ash::Shell::Get()->tray_bluetooth_helper()->GetEnabled(); |
441 } | 436 } |
442 | 437 |
443 bool SystemTrayDelegateChromeOS::GetBluetoothDiscovering() { | 438 bool SystemTrayDelegateChromeOS::GetBluetoothDiscovering() { |
444 return bluetooth_helper_->HasDiscoverySession(); | 439 return ash::Shell::Get()->tray_bluetooth_helper()->HasDiscoverySession(); |
445 } | 440 } |
446 | 441 |
447 ash::NetworkingConfigDelegate* | 442 ash::NetworkingConfigDelegate* |
448 SystemTrayDelegateChromeOS::GetNetworkingConfigDelegate() const { | 443 SystemTrayDelegateChromeOS::GetNetworkingConfigDelegate() const { |
449 return networking_config_delegate_.get(); | 444 return networking_config_delegate_.get(); |
450 } | 445 } |
451 | 446 |
452 bool SystemTrayDelegateChromeOS::GetSessionStartTime( | 447 bool SystemTrayDelegateChromeOS::GetSessionStartTime( |
453 base::TimeTicks* session_start_time) { | 448 base::TimeTicks* session_start_time) { |
454 *session_start_time = session_start_time_; | 449 *session_start_time = session_start_time_; |
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
835 LOG(WARNING) << "SystemTrayDelegateChromeOS::GetChildUserMessage call while " | 830 LOG(WARNING) << "SystemTrayDelegateChromeOS::GetChildUserMessage call while " |
836 << "ENABLE_SUPERVISED_USERS undefined."; | 831 << "ENABLE_SUPERVISED_USERS undefined."; |
837 return base::string16(); | 832 return base::string16(); |
838 } | 833 } |
839 | 834 |
840 ash::SystemTrayDelegate* CreateSystemTrayDelegate() { | 835 ash::SystemTrayDelegate* CreateSystemTrayDelegate() { |
841 return new SystemTrayDelegateChromeOS(); | 836 return new SystemTrayDelegateChromeOS(); |
842 } | 837 } |
843 | 838 |
844 } // namespace chromeos | 839 } // namespace chromeos |
OLD | NEW |