Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(173)

Side by Side Diff: chrome/browser/ui/ash/system_tray_delegate_chromeos.cc

Issue 166273014: Remove dependency on NotificationService for cros a11y settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge ToT. Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 registrar_->Add(this, 268 registrar_->Add(this,
269 chrome::NOTIFICATION_SESSION_STARTED, 269 chrome::NOTIFICATION_SESSION_STARTED,
270 content::NotificationService::AllSources()); 270 content::NotificationService::AllSources());
271 } 271 }
272 registrar_->Add(this, 272 registrar_->Add(this,
273 chrome::NOTIFICATION_PROFILE_CREATED, 273 chrome::NOTIFICATION_PROFILE_CREATED,
274 content::NotificationService::AllSources()); 274 content::NotificationService::AllSources());
275 registrar_->Add(this, 275 registrar_->Add(this,
276 chrome::NOTIFICATION_PROFILE_DESTROYED, 276 chrome::NOTIFICATION_PROFILE_DESTROYED,
277 content::NotificationService::AllSources()); 277 content::NotificationService::AllSources());
278 registrar_->Add( 278
279 this, 279 AccessibilityManager* accessibility_manager = AccessibilityManager::Get();
280 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER, 280 CHECK(accessibility_manager);
281 content::NotificationService::AllSources()); 281 accessibility_subscription_ = accessibility_manager->RegisterCallback(
282 registrar_->Add( 282 base::Bind(&SystemTrayDelegateChromeOS::OnAccessibilityStatusChanged,
283 this, 283 base::Unretained(this)));
sky 2014/02/21 17:10:32 Add a comment as to why Unretained is safe here.
kevers 2014/02/21 17:52:31 The destructor for the subscription removes itself
284 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK,
285 content::NotificationService::AllSources());
286 registrar_->Add(
287 this,
288 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE,
289 content::NotificationService::AllSources());
290 registrar_->Add(
291 this,
292 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_VIRTUAL_KEYBOARD,
293 content::NotificationService::AllSources());
294 } 284 }
295 285
296 void SystemTrayDelegateChromeOS::Initialize() { 286 void SystemTrayDelegateChromeOS::Initialize() {
297 DBusThreadManager::Get()->GetSessionManagerClient()->AddObserver(this); 287 DBusThreadManager::Get()->GetSessionManagerClient()->AddObserver(this);
298 288
299 input_method::InputMethodManager::Get()->AddObserver(this); 289 input_method::InputMethodManager::Get()->AddObserver(this);
300 ash::ime::InputMethodMenuManager::GetInstance()->AddObserver(this); 290 ash::ime::InputMethodMenuManager::GetInstance()->AddObserver(this);
301 UpdateClockType(); 291 UpdateClockType();
302 292
303 if (SystemKeyEventListener::GetInstance()) 293 if (SystemKeyEventListener::GetInstance())
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 } 342 }
353 343
354 SystemTrayDelegateChromeOS::~SystemTrayDelegateChromeOS() { 344 SystemTrayDelegateChromeOS::~SystemTrayDelegateChromeOS() {
355 // Unregister PrefChangeRegistrars. 345 // Unregister PrefChangeRegistrars.
356 local_state_registrar_.reset(); 346 local_state_registrar_.reset();
357 user_pref_registrar_.reset(); 347 user_pref_registrar_.reset();
358 348
359 // Unregister content notifications befure destroying any components. 349 // Unregister content notifications befure destroying any components.
360 registrar_.reset(); 350 registrar_.reset();
361 351
352 // Unregister a11y status subscription.
353 accessibility_subscription_.reset();
354
362 DBusThreadManager::Get()->GetSessionManagerClient()->RemoveObserver(this); 355 DBusThreadManager::Get()->GetSessionManagerClient()->RemoveObserver(this);
363 input_method::InputMethodManager::Get()->RemoveObserver(this); 356 input_method::InputMethodManager::Get()->RemoveObserver(this);
364 ash::ime::InputMethodMenuManager::GetInstance()->RemoveObserver(this); 357 ash::ime::InputMethodMenuManager::GetInstance()->RemoveObserver(this);
365 if (SystemKeyEventListener::GetInstance()) 358 if (SystemKeyEventListener::GetInstance())
366 SystemKeyEventListener::GetInstance()->RemoveCapsLockObserver(this); 359 SystemKeyEventListener::GetInstance()->RemoveCapsLockObserver(this);
367 bluetooth_adapter_->RemoveObserver(this); 360 bluetooth_adapter_->RemoveObserver(this);
368 ash::Shell::GetInstance() 361 ash::Shell::GetInstance()
369 ->session_state_delegate() 362 ->session_state_delegate()
370 ->RemoveSessionStateObserver(this); 363 ->RemoveSessionStateObserver(this);
371 LoginState::Get()->RemoveObserver(this); 364 LoginState::Get()->RemoveObserver(this);
(...skipping 783 matching lines...) Expand 10 before | Expand all | Expand 10 after
1155 content::NotificationService::AllSources()); 1148 content::NotificationService::AllSources());
1156 } 1149 }
1157 break; 1150 break;
1158 } 1151 }
1159 case chrome::NOTIFICATION_SESSION_STARTED: { 1152 case chrome::NOTIFICATION_SESSION_STARTED: {
1160 ash::Shell::GetInstance()->UpdateAfterLoginStatusChange( 1153 ash::Shell::GetInstance()->UpdateAfterLoginStatusChange(
1161 GetUserLoginStatus()); 1154 GetUserLoginStatus());
1162 SetProfile(ProfileManager::GetActiveUserProfile()); 1155 SetProfile(ProfileManager::GetActiveUserProfile());
1163 break; 1156 break;
1164 } 1157 }
1165 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK:
1166 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE:
1167 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER:
1168 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_VIRTUAL_KEYBOARD: {
1169 AccessibilityStatusEventDetails* accessibility_status =
1170 content::Details<AccessibilityStatusEventDetails>(details).ptr();
1171 OnAccessibilityModeChanged(accessibility_status->notify);
1172 break;
1173 }
1174 default: 1158 default:
1175 NOTREACHED(); 1159 NOTREACHED();
1176 } 1160 }
1177 } 1161 }
1178 1162
1179 void SystemTrayDelegateChromeOS::OnLanguageRemapSearchKeyToChanged() { 1163 void SystemTrayDelegateChromeOS::OnLanguageRemapSearchKeyToChanged() {
1180 search_key_mapped_to_ = user_pref_registrar_->prefs()->GetInteger( 1164 search_key_mapped_to_ = user_pref_registrar_->prefs()->GetInteger(
1181 prefs::kLanguageRemapSearchKeyTo); 1165 prefs::kLanguageRemapSearchKeyTo);
1182 } 1166 }
1183 1167
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
1324 void SystemTrayDelegateChromeOS::OnStoreError(policy::CloudPolicyStore* store) { 1308 void SystemTrayDelegateChromeOS::OnStoreError(policy::CloudPolicyStore* store) {
1325 UpdateEnterpriseDomain(); 1309 UpdateEnterpriseDomain();
1326 } 1310 }
1327 1311
1328 // Overridden from ash::SessionStateObserver 1312 // Overridden from ash::SessionStateObserver
1329 void SystemTrayDelegateChromeOS::UserAddedToSession( 1313 void SystemTrayDelegateChromeOS::UserAddedToSession(
1330 const std::string& user_id) { 1314 const std::string& user_id) {
1331 GetSystemTrayNotifier()->NotifyUserAddedToSession(); 1315 GetSystemTrayNotifier()->NotifyUserAddedToSession();
1332 } 1316 }
1333 1317
1318 void SystemTrayDelegateChromeOS::OnAccessibilityStatusChanged(
1319 const AccessibilityStatusEventDetails& details) {
1320 if (details.notification_type == ACCESSIBILITY_MANAGER_SHUTDOWN)
1321 accessibility_subscription_.reset();
1322 else
1323 OnAccessibilityModeChanged(details.notify);
1324 }
1325
1334 ash::SystemTrayDelegate* CreateSystemTrayDelegate() { 1326 ash::SystemTrayDelegate* CreateSystemTrayDelegate() {
1335 return new SystemTrayDelegateChromeOS(); 1327 return new SystemTrayDelegateChromeOS();
1336 } 1328 }
1337 1329
1338 } // namespace chromeos 1330 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698