| 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 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 public input_method::InputMethodManager::Observer, | 231 public input_method::InputMethodManager::Observer, |
| 232 public system::TimezoneSettings::Observer, | 232 public system::TimezoneSettings::Observer, |
| 233 public chromeos::SystemClockClient::Observer, | 233 public chromeos::SystemClockClient::Observer, |
| 234 public device::BluetoothAdapter::Observer, | 234 public device::BluetoothAdapter::Observer, |
| 235 public SystemKeyEventListener::CapsLockObserver, | 235 public SystemKeyEventListener::CapsLockObserver, |
| 236 public ash::NetworkTrayDelegate, | 236 public ash::NetworkTrayDelegate, |
| 237 public policy::CloudPolicyStore::Observer { | 237 public policy::CloudPolicyStore::Observer { |
| 238 public: | 238 public: |
| 239 SystemTrayDelegate() | 239 SystemTrayDelegate() |
| 240 : ui_weak_ptr_factory_( | 240 : ui_weak_ptr_factory_( |
| 241 new base::WeakPtrFactory<SystemTrayDelegate>(this)), | 241 new base::WeakPtrFactory<SystemTrayDelegate>(this)), |
| 242 user_profile_(NULL), |
| 242 clock_type_(base::k24HourClock), | 243 clock_type_(base::k24HourClock), |
| 243 search_key_mapped_to_(input_method::kSearchKey), | 244 search_key_mapped_to_(input_method::kSearchKey), |
| 244 screen_locked_(false), | 245 screen_locked_(false), |
| 245 have_session_start_time_(false), | 246 have_session_start_time_(false), |
| 246 have_session_length_limit_(false), | 247 have_session_length_limit_(false), |
| 247 data_promo_notification_(new DataPromoNotification()), | 248 data_promo_notification_(new DataPromoNotification()), |
| 248 cellular_activating_(false), | 249 cellular_activating_(false), |
| 249 cellular_out_of_credits_(false), | 250 cellular_out_of_credits_(false), |
| 250 volume_control_delegate_(new VolumeController()) { | 251 volume_control_delegate_(new VolumeController()) { |
| 251 // Register notifications on construction so that events such as | 252 // Register notifications on construction so that events such as |
| 252 // PROFILE_CREATED do not get missed if they happen before Initialize(). | 253 // PROFILE_CREATED do not get missed if they happen before Initialize(). |
| 253 registrar_.Add(this, | 254 registrar_.reset(new content::NotificationRegistrar); |
| 255 registrar_->Add(this, |
| 254 chrome::NOTIFICATION_UPGRADE_RECOMMENDED, | 256 chrome::NOTIFICATION_UPGRADE_RECOMMENDED, |
| 255 content::NotificationService::AllSources()); | 257 content::NotificationService::AllSources()); |
| 256 registrar_.Add(this, | 258 registrar_->Add(this, |
| 257 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, | 259 chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED, |
| 258 content::NotificationService::AllSources()); | 260 content::NotificationService::AllSources()); |
| 259 if (GetUserLoginStatus() == ash::user::LOGGED_IN_NONE) { | 261 if (GetUserLoginStatus() == ash::user::LOGGED_IN_NONE) { |
| 260 registrar_.Add(this, | 262 registrar_->Add(this, |
| 261 chrome::NOTIFICATION_SESSION_STARTED, | 263 chrome::NOTIFICATION_SESSION_STARTED, |
| 262 content::NotificationService::AllSources()); | 264 content::NotificationService::AllSources()); |
| 263 } | 265 } |
| 264 registrar_.Add(this, | 266 registrar_->Add(this, |
| 265 chrome::NOTIFICATION_PROFILE_CREATED, | 267 chrome::NOTIFICATION_PROFILE_CREATED, |
| 266 content::NotificationService::AllSources()); | 268 content::NotificationService::AllSources()); |
| 267 registrar_.Add(this, | 269 registrar_->Add(this, |
| 270 chrome::NOTIFICATION_PROFILE_DESTROYED, |
| 271 content::NotificationService::AllSources()); |
| 272 registrar_->Add(this, |
| 268 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, | 273 chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED, |
| 269 content::NotificationService::AllSources()); | 274 content::NotificationService::AllSources()); |
| 270 registrar_.Add( | 275 registrar_->Add( |
| 271 this, | 276 this, |
| 272 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER, | 277 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER, |
| 273 content::NotificationService::AllSources()); | 278 content::NotificationService::AllSources()); |
| 274 registrar_.Add( | 279 registrar_->Add( |
| 275 this, | 280 this, |
| 276 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK, | 281 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK, |
| 277 content::NotificationService::AllSources()); | 282 content::NotificationService::AllSources()); |
| 278 registrar_.Add( | 283 registrar_->Add( |
| 279 this, | 284 this, |
| 280 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE, | 285 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE, |
| 281 content::NotificationService::AllSources()); | 286 content::NotificationService::AllSources()); |
| 282 } | 287 } |
| 283 | 288 |
| 284 virtual void Initialize() OVERRIDE { | 289 virtual void Initialize() OVERRIDE { |
| 285 if (!ash::switches::UseNewAudioHandler()) { | 290 if (!ash::switches::UseNewAudioHandler()) { |
| 286 AudioHandler::GetInstance()->AddVolumeObserver(this); | 291 AudioHandler::GetInstance()->AddVolumeObserver(this); |
| 287 } | 292 } |
| 288 DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); | 293 DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 308 virtual void Shutdown() OVERRIDE { | 313 virtual void Shutdown() OVERRIDE { |
| 309 data_promo_notification_.reset(); | 314 data_promo_notification_.reset(); |
| 310 } | 315 } |
| 311 | 316 |
| 312 void InitializeOnAdapterReady( | 317 void InitializeOnAdapterReady( |
| 313 scoped_refptr<device::BluetoothAdapter> adapter) { | 318 scoped_refptr<device::BluetoothAdapter> adapter) { |
| 314 bluetooth_adapter_ = adapter; | 319 bluetooth_adapter_ = adapter; |
| 315 CHECK(bluetooth_adapter_); | 320 CHECK(bluetooth_adapter_); |
| 316 bluetooth_adapter_->AddObserver(this); | 321 bluetooth_adapter_->AddObserver(this); |
| 317 | 322 |
| 318 local_state_registrar_.Init(g_browser_process->local_state()); | 323 local_state_registrar_.reset(new PrefChangeRegistrar); |
| 324 local_state_registrar_->Init(g_browser_process->local_state()); |
| 319 | 325 |
| 320 UpdateSessionStartTime(); | 326 UpdateSessionStartTime(); |
| 321 UpdateSessionLengthLimit(); | 327 UpdateSessionLengthLimit(); |
| 322 | 328 |
| 323 local_state_registrar_.Add( | 329 local_state_registrar_->Add( |
| 324 prefs::kSessionStartTime, | 330 prefs::kSessionStartTime, |
| 325 base::Bind(&SystemTrayDelegate::UpdateSessionStartTime, | 331 base::Bind(&SystemTrayDelegate::UpdateSessionStartTime, |
| 326 base::Unretained(this))); | 332 base::Unretained(this))); |
| 327 local_state_registrar_.Add( | 333 local_state_registrar_->Add( |
| 328 prefs::kSessionLengthLimit, | 334 prefs::kSessionLengthLimit, |
| 329 base::Bind(&SystemTrayDelegate::UpdateSessionLengthLimit, | 335 base::Bind(&SystemTrayDelegate::UpdateSessionLengthLimit, |
| 330 base::Unretained(this))); | 336 base::Unretained(this))); |
| 331 | 337 |
| 332 policy::BrowserPolicyConnector* policy_connector = | 338 policy::BrowserPolicyConnector* policy_connector = |
| 333 g_browser_process->browser_policy_connector(); | 339 g_browser_process->browser_policy_connector(); |
| 334 policy::DeviceCloudPolicyManagerChromeOS* policy_manager = | 340 policy::DeviceCloudPolicyManagerChromeOS* policy_manager = |
| 335 policy_connector->GetDeviceCloudPolicyManager(); | 341 policy_connector->GetDeviceCloudPolicyManager(); |
| 336 if (policy_manager) | 342 if (policy_manager) |
| 337 policy_manager->core()->store()->AddObserver(this); | 343 policy_manager->core()->store()->AddObserver(this); |
| 338 UpdateEnterpriseDomain(); | 344 UpdateEnterpriseDomain(); |
| 339 } | 345 } |
| 340 | 346 |
| 341 virtual ~SystemTrayDelegate() { | 347 virtual ~SystemTrayDelegate() { |
| 348 // Unregister PrefChangeRegistrars. |
| 349 local_state_registrar_.reset(); |
| 350 user_pref_registrar_.reset(); |
| 351 |
| 352 // Unregister content notifications befure destroying any components. |
| 353 registrar_.reset(); |
| 354 |
| 342 if (!ash::switches::UseNewAudioHandler() && AudioHandler::GetInstance()) { | 355 if (!ash::switches::UseNewAudioHandler() && AudioHandler::GetInstance()) { |
| 343 AudioHandler::GetInstance()->RemoveVolumeObserver(this); | 356 AudioHandler::GetInstance()->RemoveVolumeObserver(this); |
| 344 } | 357 } |
| 345 | 358 |
| 346 DBusThreadManager::Get()->GetSessionManagerClient()->RemoveObserver(this); | 359 DBusThreadManager::Get()->GetSessionManagerClient()->RemoveObserver(this); |
| 347 DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); | 360 DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); |
| 348 DBusThreadManager::Get()->GetSystemClockClient()->RemoveObserver(this); | 361 DBusThreadManager::Get()->GetSystemClockClient()->RemoveObserver(this); |
| 349 NetworkLibrary* crosnet = CrosLibrary::Get()->GetNetworkLibrary(); | 362 NetworkLibrary* crosnet = CrosLibrary::Get()->GetNetworkLibrary(); |
| 350 if (crosnet) | 363 if (crosnet) |
| 351 crosnet->RemoveNetworkManagerObserver(this); | 364 crosnet->RemoveNetworkManagerObserver(this); |
| (...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 895 | 908 |
| 896 // Returns the last active browser. If there is no such browser, creates a new | 909 // Returns the last active browser. If there is no such browser, creates a new |
| 897 // browser window with an empty tab and returns it. | 910 // browser window with an empty tab and returns it. |
| 898 Browser* GetAppropriateBrowser() { | 911 Browser* GetAppropriateBrowser() { |
| 899 return chrome::FindOrCreateTabbedBrowser( | 912 return chrome::FindOrCreateTabbedBrowser( |
| 900 ProfileManager::GetDefaultProfileOrOffTheRecord(), | 913 ProfileManager::GetDefaultProfileOrOffTheRecord(), |
| 901 chrome::HOST_DESKTOP_TYPE_ASH); | 914 chrome::HOST_DESKTOP_TYPE_ASH); |
| 902 } | 915 } |
| 903 | 916 |
| 904 void SetProfile(Profile* profile) { | 917 void SetProfile(Profile* profile) { |
| 918 user_profile_ = profile; |
| 905 PrefService* prefs = profile->GetPrefs(); | 919 PrefService* prefs = profile->GetPrefs(); |
| 906 user_pref_registrar_.reset(new PrefChangeRegistrar); | 920 user_pref_registrar_.reset(new PrefChangeRegistrar); |
| 907 user_pref_registrar_->Init(prefs); | 921 user_pref_registrar_->Init(prefs); |
| 908 user_pref_registrar_->Add( | 922 user_pref_registrar_->Add( |
| 909 prefs::kUse24HourClock, | 923 prefs::kUse24HourClock, |
| 910 base::Bind(&SystemTrayDelegate::UpdateClockType, | 924 base::Bind(&SystemTrayDelegate::UpdateClockType, |
| 911 base::Unretained(this))); | 925 base::Unretained(this))); |
| 912 user_pref_registrar_->Add( | 926 user_pref_registrar_->Add( |
| 913 prefs::kLanguageRemapSearchKeyTo, | 927 prefs::kLanguageRemapSearchKeyTo, |
| 914 base::Bind(&SystemTrayDelegate::OnLanguageRemapSearchKeyToChanged, | 928 base::Bind(&SystemTrayDelegate::OnLanguageRemapSearchKeyToChanged, |
| 915 base::Unretained(this))); | 929 base::Unretained(this))); |
| 916 user_pref_registrar_->Add( | 930 user_pref_registrar_->Add( |
| 917 prefs::kShowLogoutButtonInTray, | 931 prefs::kShowLogoutButtonInTray, |
| 918 base::Bind(&SystemTrayDelegate::UpdateShowLogoutButtonInTray, | 932 base::Bind(&SystemTrayDelegate::UpdateShowLogoutButtonInTray, |
| 919 base::Unretained(this))); | 933 base::Unretained(this))); |
| 920 user_pref_registrar_->Add( | 934 user_pref_registrar_->Add( |
| 921 prefs::kShouldAlwaysShowAccessibilityMenu, | 935 prefs::kShouldAlwaysShowAccessibilityMenu, |
| 922 base::Bind(&SystemTrayDelegate::OnAccessibilityModeChanged, | 936 base::Bind(&SystemTrayDelegate::OnAccessibilityModeChanged, |
| 923 base::Unretained(this), | 937 base::Unretained(this), |
| 924 ash::A11Y_NOTIFICATION_NONE)); | 938 ash::A11Y_NOTIFICATION_NONE)); |
| 925 | 939 |
| 926 UpdateClockType(); | 940 UpdateClockType(); |
| 927 UpdateShowLogoutButtonInTray(); | 941 UpdateShowLogoutButtonInTray(); |
| 928 search_key_mapped_to_ = | 942 search_key_mapped_to_ = |
| 929 profile->GetPrefs()->GetInteger(prefs::kLanguageRemapSearchKeyTo); | 943 profile->GetPrefs()->GetInteger(prefs::kLanguageRemapSearchKeyTo); |
| 930 } | 944 } |
| 931 | 945 |
| 946 bool UnsetProfile(Profile* profile) { |
| 947 if (profile != user_profile_) |
| 948 return false; |
| 949 user_pref_registrar_.reset(); |
| 950 return true; |
| 951 } |
| 952 |
| 932 void ObserveGDataUpdates() { | 953 void ObserveGDataUpdates() { |
| 933 DriveIntegrationService* integration_service = | 954 DriveIntegrationService* integration_service = |
| 934 FindDriveIntegrationService(); | 955 FindDriveIntegrationService(); |
| 935 if (integration_service) | 956 if (integration_service) |
| 936 integration_service->job_list()->AddObserver(this); | 957 integration_service->job_list()->AddObserver(this); |
| 937 } | 958 } |
| 938 | 959 |
| 939 void UpdateClockType() { | 960 void UpdateClockType() { |
| 940 clock_type_ = | 961 clock_type_ = |
| 941 user_pref_registrar_->prefs()->GetBoolean(prefs::kUse24HourClock) ? | 962 user_pref_registrar_->prefs()->GetBoolean(prefs::kUse24HourClock) ? |
| 942 base::k24HourClock : base::k12HourClock; | 963 base::k24HourClock : base::k12HourClock; |
| 943 GetSystemTrayNotifier()->NotifyDateFormatChanged(); | 964 GetSystemTrayNotifier()->NotifyDateFormatChanged(); |
| 944 } | 965 } |
| 945 | 966 |
| 946 void UpdateShowLogoutButtonInTray() { | 967 void UpdateShowLogoutButtonInTray() { |
| 947 GetSystemTrayNotifier()->NotifyShowLoginButtonChanged( | 968 GetSystemTrayNotifier()->NotifyShowLoginButtonChanged( |
| 948 user_pref_registrar_->prefs()->GetBoolean( | 969 user_pref_registrar_->prefs()->GetBoolean( |
| 949 prefs::kShowLogoutButtonInTray)); | 970 prefs::kShowLogoutButtonInTray)); |
| 950 } | 971 } |
| 951 | 972 |
| 952 void UpdateSessionStartTime() { | 973 void UpdateSessionStartTime() { |
| 953 const PrefService* local_state = local_state_registrar_.prefs(); | 974 const PrefService* local_state = local_state_registrar_->prefs(); |
| 954 if (local_state->HasPrefPath(prefs::kSessionStartTime)) { | 975 if (local_state->HasPrefPath(prefs::kSessionStartTime)) { |
| 955 have_session_start_time_ = true; | 976 have_session_start_time_ = true; |
| 956 session_start_time_ = base::TimeTicks::FromInternalValue( | 977 session_start_time_ = base::TimeTicks::FromInternalValue( |
| 957 local_state->GetInt64(prefs::kSessionStartTime)); | 978 local_state->GetInt64(prefs::kSessionStartTime)); |
| 958 } else { | 979 } else { |
| 959 have_session_start_time_ = false; | 980 have_session_start_time_ = false; |
| 960 session_start_time_ = base::TimeTicks(); | 981 session_start_time_ = base::TimeTicks(); |
| 961 } | 982 } |
| 962 GetSystemTrayNotifier()->NotifySessionStartTimeChanged(); | 983 GetSystemTrayNotifier()->NotifySessionStartTimeChanged(); |
| 963 } | 984 } |
| 964 | 985 |
| 965 void UpdateSessionLengthLimit() { | 986 void UpdateSessionLengthLimit() { |
| 966 const PrefService* local_state = local_state_registrar_.prefs(); | 987 const PrefService* local_state = local_state_registrar_->prefs(); |
| 967 if (local_state->HasPrefPath(prefs::kSessionLengthLimit)) { | 988 if (local_state->HasPrefPath(prefs::kSessionLengthLimit)) { |
| 968 have_session_length_limit_ = true; | 989 have_session_length_limit_ = true; |
| 969 session_length_limit_ = base::TimeDelta::FromMilliseconds( | 990 session_length_limit_ = base::TimeDelta::FromMilliseconds( |
| 970 std::min(std::max(local_state->GetInteger(prefs::kSessionLengthLimit), | 991 std::min(std::max(local_state->GetInteger(prefs::kSessionLengthLimit), |
| 971 kSessionLengthLimitMinMs), | 992 kSessionLengthLimitMinMs), |
| 972 kSessionLengthLimitMaxMs)); | 993 kSessionLengthLimitMaxMs)); |
| 973 } else { | 994 } else { |
| 974 have_session_length_limit_ = false; | 995 have_session_length_limit_ = false; |
| 975 session_length_limit_ = base::TimeDelta(); | 996 session_length_limit_ = base::TimeDelta(); |
| 976 } | 997 } |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1065 } | 1086 } |
| 1066 break; | 1087 break; |
| 1067 } | 1088 } |
| 1068 case chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED: { | 1089 case chrome::NOTIFICATION_LOGIN_USER_PROFILE_PREPARED: { |
| 1069 // GData system service exists by the time if enabled. | 1090 // GData system service exists by the time if enabled. |
| 1070 ObserveGDataUpdates(); | 1091 ObserveGDataUpdates(); |
| 1071 break; | 1092 break; |
| 1072 } | 1093 } |
| 1073 case chrome::NOTIFICATION_PROFILE_CREATED: { | 1094 case chrome::NOTIFICATION_PROFILE_CREATED: { |
| 1074 SetProfile(content::Source<Profile>(source).ptr()); | 1095 SetProfile(content::Source<Profile>(source).ptr()); |
| 1075 registrar_.Remove(this, | 1096 registrar_->Remove(this, |
| 1076 chrome::NOTIFICATION_PROFILE_CREATED, | 1097 chrome::NOTIFICATION_PROFILE_CREATED, |
| 1077 content::NotificationService::AllSources()); | 1098 content::NotificationService::AllSources()); |
| 1099 break; |
| 1100 } |
| 1101 case chrome::NOTIFICATION_PROFILE_DESTROYED: { |
| 1102 if (UnsetProfile(content::Source<Profile>(source).ptr())) { |
| 1103 registrar_->Remove(this, |
| 1104 chrome::NOTIFICATION_PROFILE_DESTROYED, |
| 1105 content::NotificationService::AllSources()); |
| 1106 } |
| 1078 break; | 1107 break; |
| 1079 } | 1108 } |
| 1080 case chrome::NOTIFICATION_SESSION_STARTED: { | 1109 case chrome::NOTIFICATION_SESSION_STARTED: { |
| 1081 ash::Shell::GetInstance()->UpdateAfterLoginStatusChange( | 1110 ash::Shell::GetInstance()->UpdateAfterLoginStatusChange( |
| 1082 GetUserLoginStatus()); | 1111 GetUserLoginStatus()); |
| 1083 SetProfile(ProfileManager::GetDefaultProfile()); | 1112 SetProfile(ProfileManager::GetDefaultProfile()); |
| 1084 break; | 1113 break; |
| 1085 } | 1114 } |
| 1086 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK: | 1115 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK: |
| 1087 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE: | 1116 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, | 1305 ash::NetworkObserver::MESSAGE_DATA_PROMO, |
| 1277 type, | 1306 type, |
| 1278 l10n_util::GetStringUTF16(IDS_NETWORK_CELLULAR_ACTIVATED_TITLE), | 1307 l10n_util::GetStringUTF16(IDS_NETWORK_CELLULAR_ACTIVATED_TITLE), |
| 1279 l10n_util::GetStringFUTF16(IDS_NETWORK_CELLULAR_ACTIVATED, | 1308 l10n_util::GetStringFUTF16(IDS_NETWORK_CELLULAR_ACTIVATED, |
| 1280 UTF8ToUTF16((cellular->name()))), | 1309 UTF8ToUTF16((cellular->name()))), |
| 1281 std::vector<string16>()); | 1310 std::vector<string16>()); |
| 1282 } | 1311 } |
| 1283 } | 1312 } |
| 1284 | 1313 |
| 1285 scoped_ptr<base::WeakPtrFactory<SystemTrayDelegate> > ui_weak_ptr_factory_; | 1314 scoped_ptr<base::WeakPtrFactory<SystemTrayDelegate> > ui_weak_ptr_factory_; |
| 1286 content::NotificationRegistrar registrar_; | 1315 scoped_ptr<content::NotificationRegistrar> registrar_; |
| 1287 PrefChangeRegistrar local_state_registrar_; | 1316 scoped_ptr<PrefChangeRegistrar> local_state_registrar_; |
| 1288 scoped_ptr<PrefChangeRegistrar> user_pref_registrar_; | 1317 scoped_ptr<PrefChangeRegistrar> user_pref_registrar_; |
| 1318 Profile* user_profile_; |
| 1289 std::string active_network_path_; | 1319 std::string active_network_path_; |
| 1290 base::HourClockType clock_type_; | 1320 base::HourClockType clock_type_; |
| 1291 int search_key_mapped_to_; | 1321 int search_key_mapped_to_; |
| 1292 bool screen_locked_; | 1322 bool screen_locked_; |
| 1293 bool have_session_start_time_; | 1323 bool have_session_start_time_; |
| 1294 base::TimeTicks session_start_time_; | 1324 base::TimeTicks session_start_time_; |
| 1295 bool have_session_length_limit_; | 1325 bool have_session_length_limit_; |
| 1296 base::TimeDelta session_length_limit_; | 1326 base::TimeDelta session_length_limit_; |
| 1297 std::string enterprise_domain_; | 1327 std::string enterprise_domain_; |
| 1298 | 1328 |
| 1299 scoped_refptr<device::BluetoothAdapter> bluetooth_adapter_; | 1329 scoped_refptr<device::BluetoothAdapter> bluetooth_adapter_; |
| 1300 | 1330 |
| 1301 scoped_ptr<DataPromoNotification> data_promo_notification_; | 1331 scoped_ptr<DataPromoNotification> data_promo_notification_; |
| 1302 bool cellular_activating_; | 1332 bool cellular_activating_; |
| 1303 bool cellular_out_of_credits_; | 1333 bool cellular_out_of_credits_; |
| 1304 | 1334 |
| 1305 scoped_ptr<ash::VolumeControlDelegate> volume_control_delegate_; | 1335 scoped_ptr<ash::VolumeControlDelegate> volume_control_delegate_; |
| 1306 | 1336 |
| 1307 DISALLOW_COPY_AND_ASSIGN(SystemTrayDelegate); | 1337 DISALLOW_COPY_AND_ASSIGN(SystemTrayDelegate); |
| 1308 }; | 1338 }; |
| 1309 | 1339 |
| 1310 } // namespace | 1340 } // namespace |
| 1311 | 1341 |
| 1312 ash::SystemTrayDelegate* CreateSystemTrayDelegate() { | 1342 ash::SystemTrayDelegate* CreateSystemTrayDelegate() { |
| 1313 return new chromeos::SystemTrayDelegate(); | 1343 return new chromeos::SystemTrayDelegate(); |
| 1314 } | 1344 } |
| 1315 | 1345 |
| 1316 } // namespace chromeos | 1346 } // namespace chromeos |
| OLD | NEW |