| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/chromeos/system/ash_system_tray_delegate.h" | 5 #include "chrome/browser/chromeos/system/ash_system_tray_delegate.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 search_key_mapped_to_(input_method::kSearchKey), | 243 search_key_mapped_to_(input_method::kSearchKey), |
| 244 screen_locked_(false), | 244 screen_locked_(false), |
| 245 have_session_start_time_(false), | 245 have_session_start_time_(false), |
| 246 have_session_length_limit_(false), | 246 have_session_length_limit_(false), |
| 247 data_promo_notification_(new DataPromoNotification()), | 247 data_promo_notification_(new DataPromoNotification()), |
| 248 cellular_activating_(false), | 248 cellular_activating_(false), |
| 249 cellular_out_of_credits_(false), | 249 cellular_out_of_credits_(false), |
| 250 volume_control_delegate_(new VolumeController()) { | 250 volume_control_delegate_(new VolumeController()) { |
| 251 // Register notifications on construction so that events such as | 251 // Register notifications on construction so that events such as |
| 252 // PROFILE_CREATED do not get missed if they happen before Initialize(). | 252 // PROFILE_CREATED do not get missed if they happen before Initialize(). |
| 253 registrar_.Add(this, | 253 registrar_.reset(new content::NotificationRegistrar); |
| 254 registrar_->Add(this, |
| 254 chrome::NOTIFICATION_UPGRADE_RECOMMENDED, | 255 chrome::NOTIFICATION_UPGRADE_RECOMMENDED, |
| 255 content::NotificationService::AllSources()); | 256 content::NotificationService::AllSources()); |
| 256 registrar_.Add(this, | 257 registrar_->Add(this, |
| 257 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, | 258 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, |
| 258 content::NotificationService::AllSources()); | 259 content::NotificationService::AllSources()); |
| 259 if (GetUserLoginStatus() == ash::user::LOGGED_IN_NONE) { | 260 if (GetUserLoginStatus() == ash::user::LOGGED_IN_NONE) { |
| 260 registrar_.Add(this, | 261 registrar_->Add(this, |
| 261 chrome::NOTIFICATION_SESSION_STARTED, | 262 chrome::NOTIFICATION_SESSION_STARTED, |
| 262 content::NotificationService::AllSources()); | 263 content::NotificationService::AllSources()); |
| 263 } | 264 } |
| 264 registrar_.Add(this, | 265 registrar_->Add(this, |
| 265 chrome::NOTIFICATION_PROFILE_CREATED, | 266 chrome::NOTIFICATION_PROFILE_CREATED, |
| 266 content::NotificationService::AllSources()); | 267 content::NotificationService::AllSources()); |
| 267 registrar_.Add(this, | 268 registrar_->Add(this, |
| 268 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, | 269 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, |
| 269 content::NotificationService::AllSources()); | 270 content::NotificationService::AllSources()); |
| 270 registrar_.Add( | 271 registrar_->Add( |
| 271 this, | 272 this, |
| 272 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER, | 273 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER, |
| 273 content::NotificationService::AllSources()); | 274 content::NotificationService::AllSources()); |
| 274 registrar_.Add( | 275 registrar_->Add( |
| 275 this, | 276 this, |
| 276 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK, | 277 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK, |
| 277 content::NotificationService::AllSources()); | 278 content::NotificationService::AllSources()); |
| 278 registrar_.Add( | 279 registrar_->Add( |
| 279 this, | 280 this, |
| 280 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE, | 281 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE, |
| 281 content::NotificationService::AllSources()); | 282 content::NotificationService::AllSources()); |
| 282 } | 283 } |
| 283 | 284 |
| 284 virtual void Initialize() OVERRIDE { | 285 virtual void Initialize() OVERRIDE { |
| 285 if (!ash::switches::UseNewAudioHandler()) { | 286 if (!ash::switches::UseNewAudioHandler()) { |
| 286 AudioHandler::GetInstance()->AddVolumeObserver(this); | 287 AudioHandler::GetInstance()->AddVolumeObserver(this); |
| 287 } | 288 } |
| 288 DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); | 289 DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 policy::BrowserPolicyConnector* policy_connector = | 333 policy::BrowserPolicyConnector* policy_connector = |
| 333 g_browser_process->browser_policy_connector(); | 334 g_browser_process->browser_policy_connector(); |
| 334 policy::DeviceCloudPolicyManagerChromeOS* policy_manager = | 335 policy::DeviceCloudPolicyManagerChromeOS* policy_manager = |
| 335 policy_connector->GetDeviceCloudPolicyManager(); | 336 policy_connector->GetDeviceCloudPolicyManager(); |
| 336 if (policy_manager) | 337 if (policy_manager) |
| 337 policy_manager->core()->store()->AddObserver(this); | 338 policy_manager->core()->store()->AddObserver(this); |
| 338 UpdateEnterpriseDomain(); | 339 UpdateEnterpriseDomain(); |
| 339 } | 340 } |
| 340 | 341 |
| 341 virtual ~SystemTrayDelegate() { | 342 virtual ~SystemTrayDelegate() { |
| 343 // Unregister content notifications befure destroying any components. |
| 344 registrar_.reset(); |
| 345 |
| 342 if (!ash::switches::UseNewAudioHandler() && AudioHandler::GetInstance()) { | 346 if (!ash::switches::UseNewAudioHandler() && AudioHandler::GetInstance()) { |
| 343 AudioHandler::GetInstance()->RemoveVolumeObserver(this); | 347 AudioHandler::GetInstance()->RemoveVolumeObserver(this); |
| 344 } | 348 } |
| 345 | 349 |
| 346 DBusThreadManager::Get()->GetSessionManagerClient()->RemoveObserver(this); | 350 DBusThreadManager::Get()->GetSessionManagerClient()->RemoveObserver(this); |
| 347 DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); | 351 DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); |
| 348 DBusThreadManager::Get()->GetSystemClockClient()->RemoveObserver(this); | 352 DBusThreadManager::Get()->GetSystemClockClient()->RemoveObserver(this); |
| 349 NetworkLibrary* crosnet = CrosLibrary::Get()->GetNetworkLibrary(); | 353 NetworkLibrary* crosnet = CrosLibrary::Get()->GetNetworkLibrary(); |
| 350 if (crosnet) | 354 if (crosnet) |
| 351 crosnet->RemoveNetworkManagerObserver(this); | 355 crosnet->RemoveNetworkManagerObserver(this); |
| (...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1065 } | 1069 } |
| 1066 break; | 1070 break; |
| 1067 } | 1071 } |
| 1068 case chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED: { | 1072 case chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED: { |
| 1069 // GData system service exists by the time if enabled. | 1073 // GData system service exists by the time if enabled. |
| 1070 ObserveGDataUpdates(); | 1074 ObserveGDataUpdates(); |
| 1071 break; | 1075 break; |
| 1072 } | 1076 } |
| 1073 case chrome::NOTIFICATION_PROFILE_CREATED: { | 1077 case chrome::NOTIFICATION_PROFILE_CREATED: { |
| 1074 SetProfile(content::Source<Profile>(source).ptr()); | 1078 SetProfile(content::Source<Profile>(source).ptr()); |
| 1075 registrar_.Remove(this, | 1079 registrar_->Remove(this, |
| 1076 chrome::NOTIFICATION_PROFILE_CREATED, | 1080 chrome::NOTIFICATION_PROFILE_CREATED, |
| 1077 content::NotificationService::AllSources()); | 1081 content::NotificationService::AllSources()); |
| 1078 break; | 1082 break; |
| 1079 } | 1083 } |
| 1080 case chrome::NOTIFICATION_SESSION_STARTED: { | 1084 case chrome::NOTIFICATION_SESSION_STARTED: { |
| 1081 ash::Shell::GetInstance()->UpdateAfterLoginStatusChange( | 1085 ash::Shell::GetInstance()->UpdateAfterLoginStatusChange( |
| 1082 GetUserLoginStatus()); | 1086 GetUserLoginStatus()); |
| 1083 SetProfile(ProfileManager::GetDefaultProfile()); | 1087 SetProfile(ProfileManager::GetDefaultProfile()); |
| 1084 break; | 1088 break; |
| 1085 } | 1089 } |
| 1086 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK: | 1090 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK: |
| 1087 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE: | 1091 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE: |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1276 ash::NetworkObserver::MESSAGE_DATA_PROMO, | 1280 ash::NetworkObserver::MESSAGE_DATA_PROMO, |
| 1277 type, | 1281 type, |
| 1278 l10n_util::GetStringUTF16(IDS_NETWORK_CELLULAR_ACTIVATED_TITLE), | 1282 l10n_util::GetStringUTF16(IDS_NETWORK_CELLULAR_ACTIVATED_TITLE), |
| 1279 l10n_util::GetStringFUTF16(IDS_NETWORK_CELLULAR_ACTIVATED, | 1283 l10n_util::GetStringFUTF16(IDS_NETWORK_CELLULAR_ACTIVATED, |
| 1280 UTF8ToUTF16((cellular->name()))), | 1284 UTF8ToUTF16((cellular->name()))), |
| 1281 std::vector<string16>()); | 1285 std::vector<string16>()); |
| 1282 } | 1286 } |
| 1283 } | 1287 } |
| 1284 | 1288 |
| 1285 scoped_ptr<base::WeakPtrFactory<SystemTrayDelegate> > ui_weak_ptr_factory_; | 1289 scoped_ptr<base::WeakPtrFactory<SystemTrayDelegate> > ui_weak_ptr_factory_; |
| 1286 content::NotificationRegistrar registrar_; | 1290 scoped_ptr<content::NotificationRegistrar> registrar_; |
| 1287 PrefChangeRegistrar local_state_registrar_; | 1291 PrefChangeRegistrar local_state_registrar_; |
| 1288 scoped_ptr<PrefChangeRegistrar> user_pref_registrar_; | 1292 scoped_ptr<PrefChangeRegistrar> user_pref_registrar_; |
| 1289 std::string active_network_path_; | 1293 std::string active_network_path_; |
| 1290 base::HourClockType clock_type_; | 1294 base::HourClockType clock_type_; |
| 1291 int search_key_mapped_to_; | 1295 int search_key_mapped_to_; |
| 1292 bool screen_locked_; | 1296 bool screen_locked_; |
| 1293 bool have_session_start_time_; | 1297 bool have_session_start_time_; |
| 1294 base::TimeTicks session_start_time_; | 1298 base::TimeTicks session_start_time_; |
| 1295 bool have_session_length_limit_; | 1299 bool have_session_length_limit_; |
| 1296 base::TimeDelta session_length_limit_; | 1300 base::TimeDelta session_length_limit_; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1307 DISALLOW_COPY_AND_ASSIGN(SystemTrayDelegate); | 1311 DISALLOW_COPY_AND_ASSIGN(SystemTrayDelegate); |
| 1308 }; | 1312 }; |
| 1309 | 1313 |
| 1310 } // namespace | 1314 } // namespace |
| 1311 | 1315 |
| 1312 ash::SystemTrayDelegate* CreateSystemTrayDelegate() { | 1316 ash::SystemTrayDelegate* CreateSystemTrayDelegate() { |
| 1313 return new chromeos::SystemTrayDelegate(); | 1317 return new chromeos::SystemTrayDelegate(); |
| 1314 } | 1318 } |
| 1315 | 1319 |
| 1316 } // namespace chromeos | 1320 } // namespace chromeos |
| OLD | NEW |