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

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

Issue 549453005: Run athena on device (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
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 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 return; 447 return;
448 448
449 large_cursor_enabled_ = enabled; 449 large_cursor_enabled_ = enabled;
450 450
451 AccessibilityStatusEventDetails details( 451 AccessibilityStatusEventDetails details(
452 ACCESSIBILITY_TOGGLE_LARGE_CURSOR, 452 ACCESSIBILITY_TOGGLE_LARGE_CURSOR,
453 enabled, 453 enabled,
454 ash::A11Y_NOTIFICATION_NONE); 454 ash::A11Y_NOTIFICATION_NONE);
455 455
456 NotifyAccessibilityStatusChanged(details); 456 NotifyAccessibilityStatusChanged(details);
457 #if !defined(USE_ATHENA)
458 // crbug.com/408733 (and for all USE_ATHENA in this file)
457 459
458 #if defined(USE_ASH) 460 #if defined(USE_ASH)
459 // Large cursor is implemented only in ash. 461 // Large cursor is implemented only in ash.
460 ash::Shell::GetInstance()->cursor_manager()->SetCursorSet( 462 ash::Shell::GetInstance()->cursor_manager()->SetCursorSet(
461 enabled ? ui::CURSOR_SET_LARGE : ui::CURSOR_SET_NORMAL); 463 enabled ? ui::CURSOR_SET_LARGE : ui::CURSOR_SET_NORMAL);
462 #endif 464 #endif
463 465
464 #if defined(OS_CHROMEOS) 466 #if defined(OS_CHROMEOS)
465 ash::Shell::GetInstance()->SetCursorCompositingEnabled( 467 ash::Shell::GetInstance()->SetCursorCompositingEnabled(
466 ShouldEnableCursorCompositing()); 468 ShouldEnableCursorCompositing());
467 #endif 469 #endif
470
471 #endif // !USE_ATHENA
468 } 472 }
469 473
470 bool AccessibilityManager::IsIncognitoAllowed() { 474 bool AccessibilityManager::IsIncognitoAllowed() {
471 // Supervised users can't create incognito-mode windows. 475 // Supervised users can't create incognito-mode windows.
472 return !(user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser()); 476 return !(user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser());
473 } 477 }
474 478
475 bool AccessibilityManager::IsLargeCursorEnabled() { 479 bool AccessibilityManager::IsLargeCursorEnabled() {
476 return large_cursor_enabled_; 480 return large_cursor_enabled_;
477 } 481 }
(...skipping 14 matching lines...) Expand all
492 if (!profile_) 496 if (!profile_)
493 return; 497 return;
494 498
495 const bool enabled = 499 const bool enabled =
496 profile_->GetPrefs()->GetBoolean(prefs::kAccessibilityStickyKeysEnabled); 500 profile_->GetPrefs()->GetBoolean(prefs::kAccessibilityStickyKeysEnabled);
497 501
498 if (sticky_keys_enabled_ == enabled) 502 if (sticky_keys_enabled_ == enabled)
499 return; 503 return;
500 504
501 sticky_keys_enabled_ = enabled; 505 sticky_keys_enabled_ = enabled;
502 #if defined(USE_ASH) 506 #if defined(USE_ASH) && !defined(USE_ATHENA)
503 // Sticky keys is implemented only in ash.
504 ash::Shell::GetInstance()->sticky_keys_controller()->Enable(enabled); 507 ash::Shell::GetInstance()->sticky_keys_controller()->Enable(enabled);
505 #endif 508 #endif
506 } 509 }
507 510
508 void AccessibilityManager::EnableSpokenFeedback( 511 void AccessibilityManager::EnableSpokenFeedback(
509 bool enabled, 512 bool enabled,
510 ash::AccessibilityNotificationVisibility notify) { 513 ash::AccessibilityNotificationVisibility notify) {
511 if (!profile_) 514 if (!profile_)
512 return; 515 return;
513 516 #if !defined(USE_ATHENA)
514 ash::Shell::GetInstance()->metrics()->RecordUserMetricsAction( 517 ash::Shell::GetInstance()->metrics()->RecordUserMetricsAction(
515 enabled ? ash::UMA_STATUS_AREA_ENABLE_SPOKEN_FEEDBACK 518 enabled ? ash::UMA_STATUS_AREA_ENABLE_SPOKEN_FEEDBACK
516 : ash::UMA_STATUS_AREA_DISABLE_SPOKEN_FEEDBACK); 519 : ash::UMA_STATUS_AREA_DISABLE_SPOKEN_FEEDBACK);
520 #endif
517 521
518 spoken_feedback_notification_ = notify; 522 spoken_feedback_notification_ = notify;
519 523
520 PrefService* pref_service = profile_->GetPrefs(); 524 PrefService* pref_service = profile_->GetPrefs();
521 pref_service->SetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled, enabled); 525 pref_service->SetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled, enabled);
522 pref_service->CommitPendingWrite(); 526 pref_service->CommitPendingWrite();
523 527
524 spoken_feedback_notification_ = ash::A11Y_NOTIFICATION_NONE; 528 spoken_feedback_notification_ = ash::A11Y_NOTIFICATION_NONE;
525 } 529 }
526 530
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 670
667 high_contrast_enabled_ = enabled; 671 high_contrast_enabled_ = enabled;
668 672
669 AccessibilityStatusEventDetails details( 673 AccessibilityStatusEventDetails details(
670 ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE, 674 ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE,
671 enabled, 675 enabled,
672 ash::A11Y_NOTIFICATION_NONE); 676 ash::A11Y_NOTIFICATION_NONE);
673 677
674 NotifyAccessibilityStatusChanged(details); 678 NotifyAccessibilityStatusChanged(details);
675 679
680 #if !defined(USE_ATHENA)
681
676 #if defined(USE_ASH) 682 #if defined(USE_ASH)
677 ash::Shell::GetInstance()->high_contrast_controller()->SetEnabled(enabled); 683 ash::Shell::GetInstance()->high_contrast_controller()->SetEnabled(enabled);
678 #endif 684 #endif
679 685
680 #if defined(OS_CHROMEOS) 686 #if defined(OS_CHROMEOS)
681 ash::Shell::GetInstance()->SetCursorCompositingEnabled( 687 ash::Shell::GetInstance()->SetCursorCompositingEnabled(
682 ShouldEnableCursorCompositing()); 688 ShouldEnableCursorCompositing());
683 #endif 689 #endif
690
691 #endif
684 } 692 }
685 693
686 void AccessibilityManager::OnLocaleChanged() { 694 void AccessibilityManager::OnLocaleChanged() {
687 if (!profile_) 695 if (!profile_)
688 return; 696 return;
689 697
690 if (!IsSpokenFeedbackEnabled()) 698 if (!IsSpokenFeedbackEnabled())
691 return; 699 return;
692 700
693 // If the system locale changes and spoken feedback is enabled, 701 // If the system locale changes and spoken feedback is enabled,
(...skipping 26 matching lines...) Expand all
720 } 728 }
721 729
722 void AccessibilityManager::UpdateAutoclickFromPref() { 730 void AccessibilityManager::UpdateAutoclickFromPref() {
723 bool enabled = 731 bool enabled =
724 profile_->GetPrefs()->GetBoolean(prefs::kAccessibilityAutoclickEnabled); 732 profile_->GetPrefs()->GetBoolean(prefs::kAccessibilityAutoclickEnabled);
725 733
726 if (autoclick_enabled_ == enabled) 734 if (autoclick_enabled_ == enabled)
727 return; 735 return;
728 autoclick_enabled_ = enabled; 736 autoclick_enabled_ = enabled;
729 737
730 #if defined(USE_ASH) 738 #if defined(USE_ASH) && !defined(USE_ATHENA)
731 ash::Shell::GetInstance()->autoclick_controller()->SetEnabled(enabled); 739 ash::Shell::GetInstance()->autoclick_controller()->SetEnabled(enabled);
732 #endif 740 #endif
733 } 741 }
734 742
735 void AccessibilityManager::SetAutoclickDelay(int delay_ms) { 743 void AccessibilityManager::SetAutoclickDelay(int delay_ms) {
736 if (!profile_) 744 if (!profile_)
737 return; 745 return;
738 746
739 PrefService* pref_service = profile_->GetPrefs(); 747 PrefService* pref_service = profile_->GetPrefs();
740 pref_service->SetInteger(prefs::kAccessibilityAutoclickDelayMs, delay_ms); 748 pref_service->SetInteger(prefs::kAccessibilityAutoclickDelayMs, delay_ms);
741 pref_service->CommitPendingWrite(); 749 pref_service->CommitPendingWrite();
742 } 750 }
743 751
744 int AccessibilityManager::GetAutoclickDelay() const { 752 int AccessibilityManager::GetAutoclickDelay() const {
745 return autoclick_delay_ms_; 753 return autoclick_delay_ms_;
746 } 754 }
747 755
748 void AccessibilityManager::UpdateAutoclickDelayFromPref() { 756 void AccessibilityManager::UpdateAutoclickDelayFromPref() {
749 int autoclick_delay_ms = 757 int autoclick_delay_ms =
750 profile_->GetPrefs()->GetInteger(prefs::kAccessibilityAutoclickDelayMs); 758 profile_->GetPrefs()->GetInteger(prefs::kAccessibilityAutoclickDelayMs);
751 759
752 if (autoclick_delay_ms == autoclick_delay_ms_) 760 if (autoclick_delay_ms == autoclick_delay_ms_)
753 return; 761 return;
754 autoclick_delay_ms_ = autoclick_delay_ms; 762 autoclick_delay_ms_ = autoclick_delay_ms;
755 763
756 #if defined(USE_ASH) 764 #if defined(USE_ASH) && !defined(USE_ATHENA)
757 ash::Shell::GetInstance()->autoclick_controller()->SetAutoclickDelay( 765 ash::Shell::GetInstance()->autoclick_controller()->SetAutoclickDelay(
758 autoclick_delay_ms_); 766 autoclick_delay_ms_);
759 #endif 767 #endif
760 } 768 }
761 769
762 void AccessibilityManager::EnableVirtualKeyboard(bool enabled) { 770 void AccessibilityManager::EnableVirtualKeyboard(bool enabled) {
763 if (!profile_) 771 if (!profile_)
764 return; 772 return;
765 773
766 PrefService* pref_service = profile_->GetPrefs(); 774 PrefService* pref_service = profile_->GetPrefs();
(...skipping 17 matching lines...) Expand all
784 return; 792 return;
785 virtual_keyboard_enabled_ = enabled; 793 virtual_keyboard_enabled_ = enabled;
786 794
787 AccessibilityStatusEventDetails details( 795 AccessibilityStatusEventDetails details(
788 ACCESSIBILITY_TOGGLE_VIRTUAL_KEYBOARD, 796 ACCESSIBILITY_TOGGLE_VIRTUAL_KEYBOARD,
789 enabled, 797 enabled,
790 ash::A11Y_NOTIFICATION_NONE); 798 ash::A11Y_NOTIFICATION_NONE);
791 799
792 NotifyAccessibilityStatusChanged(details); 800 NotifyAccessibilityStatusChanged(details);
793 801
794 #if defined(USE_ASH) 802 #if defined(USE_ASH) && !defined(USE_ATHENA)
795 keyboard::SetAccessibilityKeyboardEnabled(enabled); 803 keyboard::SetAccessibilityKeyboardEnabled(enabled);
796 // Note that there are two versions of the on-screen keyboard. A full layout 804 // Note that there are two versions of the on-screen keyboard. A full layout
797 // is provided for accessibility, which includes sticky modifier keys to 805 // is provided for accessibility, which includes sticky modifier keys to
798 // enable typing of hotkeys. A compact version is used in touchview mode 806 // enable typing of hotkeys. A compact version is used in touchview mode
799 // to provide a layout with larger keys to facilitate touch typing. In the 807 // to provide a layout with larger keys to facilitate touch typing. In the
800 // event that the a11y keyboard is being disabled, an on-screen keyboard might 808 // event that the a11y keyboard is being disabled, an on-screen keyboard might
801 // still be enabled and a forced reset is required to pick up the layout 809 // still be enabled and a forced reset is required to pick up the layout
802 // change. 810 // change.
803 if (keyboard::IsKeyboardEnabled()) 811 if (keyboard::IsKeyboardEnabled())
804 ash::Shell::GetInstance()->CreateKeyboard(); 812 ash::Shell::GetInstance()->CreateKeyboard();
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 } 967 }
960 968
961 void AccessibilityManager::EnableSystemSounds(bool system_sounds_enabled) { 969 void AccessibilityManager::EnableSystemSounds(bool system_sounds_enabled) {
962 system_sounds_enabled_ = system_sounds_enabled; 970 system_sounds_enabled_ = system_sounds_enabled;
963 } 971 }
964 972
965 base::TimeDelta AccessibilityManager::PlayShutdownSound() { 973 base::TimeDelta AccessibilityManager::PlayShutdownSound() {
966 if (!system_sounds_enabled_) 974 if (!system_sounds_enabled_)
967 return base::TimeDelta(); 975 return base::TimeDelta();
968 system_sounds_enabled_ = false; 976 system_sounds_enabled_ = false;
977 #if !defined(USE_ATHENA)
969 if (!ash::PlaySystemSoundIfSpokenFeedback(SOUND_SHUTDOWN)) 978 if (!ash::PlaySystemSoundIfSpokenFeedback(SOUND_SHUTDOWN))
970 return base::TimeDelta(); 979 return base::TimeDelta();
980 #endif
971 return media::SoundsManager::Get()->GetDuration(SOUND_SHUTDOWN); 981 return media::SoundsManager::Get()->GetDuration(SOUND_SHUTDOWN);
972 } 982 }
973 983
974 void AccessibilityManager::InjectChromeVox(RenderViewHost* render_view_host) { 984 void AccessibilityManager::InjectChromeVox(RenderViewHost* render_view_host) {
975 LoadChromeVoxExtension(profile_, render_view_host, base::Closure()); 985 LoadChromeVoxExtension(profile_, render_view_host, base::Closure());
976 } 986 }
977 987
978 scoped_ptr<AccessibilityStatusSubscription> 988 scoped_ptr<AccessibilityStatusSubscription>
979 AccessibilityManager::RegisterCallback( 989 AccessibilityManager::RegisterCallback(
980 const AccessibilityStatusCallback& cb) { 990 const AccessibilityStatusCallback& cb) {
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
1117 chrome_vox_loaded_on_lock_screen_; 1127 chrome_vox_loaded_on_lock_screen_;
1118 } 1128 }
1119 1129
1120 void AccessibilityManager::PostUnloadChromeVox(Profile* profile) { 1130 void AccessibilityManager::PostUnloadChromeVox(Profile* profile) {
1121 // Do any teardown work needed immediately after ChromeVox actually unloads. 1131 // Do any teardown work needed immediately after ChromeVox actually unloads.
1122 if (system_sounds_enabled_) 1132 if (system_sounds_enabled_)
1123 ash::PlaySystemSoundAlways(SOUND_SPOKEN_FEEDBACK_DISABLED); 1133 ash::PlaySystemSoundAlways(SOUND_SPOKEN_FEEDBACK_DISABLED);
1124 } 1134 }
1125 1135
1126 } // namespace chromeos 1136 } // namespace chromeos
OLDNEW
« no previous file with comments | « athena/wm/window_list_provider_impl.cc ('k') | chrome/browser/chromeos/dbus/cros_dbus_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698