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

Side by Side Diff: chrome/browser/chromeos/accessibility/accessibility_manager.cc

Issue 187313002: Update StickyKeys overlay to show or hide AltGr depending on the (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix broken unittest Created 6 years, 9 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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/chromeos/accessibility/accessibility_manager.h" 5 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
6 6
7 #include "ash/audio/sounds.h" 7 #include "ash/audio/sounds.h"
8 #include "ash/autoclick/autoclick_controller.h" 8 #include "ash/autoclick/autoclick_controller.h"
9 #include "ash/high_contrast/high_contrast_controller.h" 9 #include "ash/high_contrast/high_contrast_controller.h"
10 #include "ash/metrics/user_metrics_recorder.h" 10 #include "ash/metrics/user_metrics_recorder.h"
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 chrome::NOTIFICATION_SESSION_STARTED, 316 chrome::NOTIFICATION_SESSION_STARTED,
317 content::NotificationService::AllSources()); 317 content::NotificationService::AllSources());
318 notification_registrar_.Add(this, 318 notification_registrar_.Add(this,
319 chrome::NOTIFICATION_PROFILE_DESTROYED, 319 chrome::NOTIFICATION_PROFILE_DESTROYED,
320 content::NotificationService::AllSources()); 320 content::NotificationService::AllSources());
321 notification_registrar_.Add(this, 321 notification_registrar_.Add(this,
322 chrome::NOTIFICATION_SCREEN_LOCK_STATE_CHANGED, 322 chrome::NOTIFICATION_SCREEN_LOCK_STATE_CHANGED,
323 content::NotificationService::AllSources()); 323 content::NotificationService::AllSources());
324 324
325 GetBrailleController()->AddObserver(this); 325 GetBrailleController()->AddObserver(this);
326 input_method::InputMethodManager::Get()->AddObserver(this);
326 327
327 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); 328 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
328 media::SoundsManager* manager = media::SoundsManager::Get(); 329 media::SoundsManager* manager = media::SoundsManager::Get();
329 manager->Initialize(SOUND_SHUTDOWN, 330 manager->Initialize(SOUND_SHUTDOWN,
330 bundle.GetRawDataResource(IDR_SOUND_SHUTDOWN_WAV)); 331 bundle.GetRawDataResource(IDR_SOUND_SHUTDOWN_WAV));
331 manager->Initialize( 332 manager->Initialize(
332 SOUND_SPOKEN_FEEDBACK_ENABLED, 333 SOUND_SPOKEN_FEEDBACK_ENABLED,
333 bundle.GetRawDataResource(IDR_SOUND_SPOKEN_FEEDBACK_ENABLED_WAV)); 334 bundle.GetRawDataResource(IDR_SOUND_SPOKEN_FEEDBACK_ENABLED_WAV));
334 manager->Initialize( 335 manager->Initialize(
335 SOUND_SPOKEN_FEEDBACK_DISABLED, 336 SOUND_SPOKEN_FEEDBACK_DISABLED,
336 bundle.GetRawDataResource(IDR_SOUND_SPOKEN_FEEDBACK_DISABLED_WAV)); 337 bundle.GetRawDataResource(IDR_SOUND_SPOKEN_FEEDBACK_DISABLED_WAV));
337 } 338 }
338 339
339 AccessibilityManager::~AccessibilityManager() { 340 AccessibilityManager::~AccessibilityManager() {
340 CHECK(this == g_accessibility_manager); 341 CHECK(this == g_accessibility_manager);
341 AccessibilityStatusEventDetails details( 342 AccessibilityStatusEventDetails details(
342 ACCESSIBILITY_MANAGER_SHUTDOWN, 343 ACCESSIBILITY_MANAGER_SHUTDOWN,
343 false, 344 false,
344 ash::A11Y_NOTIFICATION_NONE); 345 ash::A11Y_NOTIFICATION_NONE);
345 NotifyAccessibilityStatusChanged(details); 346 NotifyAccessibilityStatusChanged(details);
347 input_method::InputMethodManager::Get()->RemoveObserver(this);
346 } 348 }
347 349
348 bool AccessibilityManager::ShouldShowAccessibilityMenu() { 350 bool AccessibilityManager::ShouldShowAccessibilityMenu() {
349 // If any of the loaded profiles has an accessibility feature turned on - or 351 // If any of the loaded profiles has an accessibility feature turned on - or
350 // enforced to always show the menu - we return true to show the menu. 352 // enforced to always show the menu - we return true to show the menu.
351 std::vector<Profile*> profiles = 353 std::vector<Profile*> profiles =
352 g_browser_process->profile_manager()->GetLoadedProfiles(); 354 g_browser_process->profile_manager()->GetLoadedProfiles();
353 for (std::vector<Profile*>::iterator it = profiles.begin(); 355 for (std::vector<Profile*>::iterator it = profiles.begin();
354 it != profiles.end(); 356 it != profiles.end();
355 ++it) { 357 ++it) {
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
746 base::Unretained(GetBrailleController())), 748 base::Unretained(GetBrailleController())),
747 base::Bind(&AccessibilityManager::ReceiveBrailleDisplayState, 749 base::Bind(&AccessibilityManager::ReceiveBrailleDisplayState,
748 weak_ptr_factory_.GetWeakPtr())); 750 weak_ptr_factory_.GetWeakPtr()));
749 } 751 }
750 752
751 void AccessibilityManager::ReceiveBrailleDisplayState( 753 void AccessibilityManager::ReceiveBrailleDisplayState(
752 scoped_ptr<extensions::api::braille_display_private::DisplayState> state) { 754 scoped_ptr<extensions::api::braille_display_private::DisplayState> state) {
753 OnDisplayStateChanged(*state); 755 OnDisplayStateChanged(*state);
754 } 756 }
755 757
758 // Overridden from InputMethodManager::Observer.
759 void AccessibilityManager::InputMethodChanged(
760 input_method::InputMethodManager* manager,
761 bool show_message) {
762 #if defined(USE_ASH)
763 // Sticky keys is implemented only in ash.
764 ash::Shell::GetInstance()->sticky_keys_controller()->SetModifiersEnabled(
765 manager->IsMod3UsedByCurrentInputMethod(),
766 manager->IsAltGrUsedByCurrentInputMethod());
767 #endif
768 }
756 769
757 void AccessibilityManager::SetProfile(Profile* profile) { 770 void AccessibilityManager::SetProfile(Profile* profile) {
758 pref_change_registrar_.reset(); 771 pref_change_registrar_.reset();
759 local_state_pref_change_registrar_.reset(); 772 local_state_pref_change_registrar_.reset();
760 773
761 if (profile) { 774 if (profile) {
762 // TODO(yoshiki): Move following code to PrefHandler. 775 // TODO(yoshiki): Move following code to PrefHandler.
763 pref_change_registrar_.reset(new PrefChangeRegistrar); 776 pref_change_registrar_.reset(new PrefChangeRegistrar);
764 pref_change_registrar_->Init(profile->GetPrefs()); 777 pref_change_registrar_->Init(profile->GetPrefs());
765 pref_change_registrar_->Add( 778 pref_change_registrar_->Add(
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
981 chrome_vox_loaded_on_lock_screen_; 994 chrome_vox_loaded_on_lock_screen_;
982 } 995 }
983 996
984 void AccessibilityManager::PostUnloadChromeVox(Profile* profile) { 997 void AccessibilityManager::PostUnloadChromeVox(Profile* profile) {
985 // Do any teardown work needed immediately after ChromeVox actually unloads. 998 // Do any teardown work needed immediately after ChromeVox actually unloads.
986 if (system_sounds_enabled_) 999 if (system_sounds_enabled_)
987 ash::PlaySystemSoundAlways(SOUND_SPOKEN_FEEDBACK_DISABLED); 1000 ash::PlaySystemSoundAlways(SOUND_SPOKEN_FEEDBACK_DISABLED);
988 } 1001 }
989 1002
990 } // namespace chromeos 1003 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698