| Index: chrome/browser/chromeos/accessibility/accessibility_manager.cc
|
| diff --git a/chrome/browser/chromeos/accessibility/accessibility_manager.cc b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
|
| index 4cc0b333eae8298cf9c62f66d7e8373fdf7676bd..dd7f2318eedb0e4fb8dc7edd4588112a7a27e289 100644
|
| --- a/chrome/browser/chromeos/accessibility/accessibility_manager.cc
|
| +++ b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
|
| @@ -4,6 +4,14 @@
|
|
|
| #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
|
|
|
| +#include "ash/audio/sounds.h"
|
| +#include "ash/autoclick/autoclick_controller.h"
|
| +#include "ash/high_contrast/high_contrast_controller.h"
|
| +#include "ash/metrics/user_metrics_recorder.h"
|
| +#include "ash/session/session_state_delegate.h"
|
| +#include "ash/shell.h"
|
| +#include "ash/sticky_keys/sticky_keys_controller.h"
|
| +#include "ash/system/tray/system_tray_notifier.h"
|
| #include "base/callback.h"
|
| #include "base/callback_helpers.h"
|
| #include "base/memory/scoped_ptr.h"
|
| @@ -19,6 +27,7 @@
|
| #include "chrome/browser/accessibility/accessibility_extension_api.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| +#include "chrome/browser/chromeos/accessibility/magnification_manager.h"
|
| #include "chrome/browser/chromeos/login/lock/screen_locker.h"
|
| #include "chrome/browser/chromeos/login/ui/login_display_host.h"
|
| #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h"
|
| @@ -59,18 +68,6 @@
|
| #include "ui/keyboard/keyboard_controller.h"
|
| #include "ui/keyboard/keyboard_util.h"
|
|
|
| -#if !defined(USE_ATHENA)
|
| -#include "ash/audio/sounds.h"
|
| -#include "ash/autoclick/autoclick_controller.h"
|
| -#include "ash/high_contrast/high_contrast_controller.h"
|
| -#include "ash/metrics/user_metrics_recorder.h"
|
| -#include "ash/session/session_state_delegate.h"
|
| -#include "ash/shell.h"
|
| -#include "ash/sticky_keys/sticky_keys_controller.h"
|
| -#include "ash/system/tray/system_tray_notifier.h"
|
| -#include "chrome/browser/chromeos/accessibility/magnification_manager.h"
|
| -#endif
|
| -
|
| using content::BrowserThread;
|
| using content::RenderViewHost;
|
| using extensions::api::braille_display_private::BrailleController;
|
| @@ -344,11 +341,7 @@ AccessibilityManager::AccessibilityManager()
|
| spoken_feedback_enabled_(false),
|
| high_contrast_enabled_(false),
|
| autoclick_enabled_(false),
|
| -#if defined(USE_ATHENA)
|
| - autoclick_delay_ms_(400),
|
| -#else
|
| autoclick_delay_ms_(ash::AutoclickController::kDefaultAutoclickDelayMs),
|
| -#endif
|
| virtual_keyboard_enabled_(false),
|
| spoken_feedback_notification_(ui::A11Y_NOTIFICATION_NONE),
|
| should_speak_chrome_vox_announcements_on_user_screen_(true),
|
| @@ -423,7 +416,6 @@ bool AccessibilityManager::ShouldShowAccessibilityMenu() {
|
| }
|
|
|
| bool AccessibilityManager::ShouldEnableCursorCompositing() {
|
| -#if defined(OS_CHROMEOS)
|
| if (!profile_)
|
| return false;
|
| PrefService* pref_service = profile_->GetPrefs();
|
| @@ -433,7 +425,6 @@ bool AccessibilityManager::ShouldEnableCursorCompositing() {
|
| pref_service->GetBoolean(prefs::kAccessibilityHighContrastEnabled) ||
|
| pref_service->GetBoolean(prefs::kAccessibilityScreenMagnifierEnabled))
|
| return true;
|
| -#endif
|
| return false;
|
| }
|
|
|
| @@ -464,21 +455,11 @@ void AccessibilityManager::UpdateLargeCursorFromPref() {
|
| ui::A11Y_NOTIFICATION_NONE);
|
|
|
| NotifyAccessibilityStatusChanged(details);
|
| -#if !defined(USE_ATHENA)
|
| - // crbug.com/408733 (and for all USE_ATHENA in this file)
|
|
|
| -#if defined(USE_ASH)
|
| - // Large cursor is implemented only in ash.
|
| ash::Shell::GetInstance()->cursor_manager()->SetCursorSet(
|
| enabled ? ui::CURSOR_SET_LARGE : ui::CURSOR_SET_NORMAL);
|
| -#endif
|
| -
|
| -#if defined(OS_CHROMEOS)
|
| ash::Shell::GetInstance()->SetCursorCompositingEnabled(
|
| ShouldEnableCursorCompositing());
|
| -#endif
|
| -
|
| -#endif // !USE_ATHENA
|
| }
|
|
|
| bool AccessibilityManager::IsIncognitoAllowed() {
|
| @@ -514,9 +495,7 @@ void AccessibilityManager::UpdateStickyKeysFromPref() {
|
| return;
|
|
|
| sticky_keys_enabled_ = enabled;
|
| -#if defined(USE_ASH) && !defined(USE_ATHENA)
|
| ash::Shell::GetInstance()->sticky_keys_controller()->Enable(enabled);
|
| -#endif
|
| }
|
|
|
| void AccessibilityManager::EnableSpokenFeedback(
|
| @@ -524,11 +503,9 @@ void AccessibilityManager::EnableSpokenFeedback(
|
| ui::AccessibilityNotificationVisibility notify) {
|
| if (!profile_)
|
| return;
|
| -#if !defined(USE_ATHENA)
|
| ash::Shell::GetInstance()->metrics()->RecordUserMetricsAction(
|
| enabled ? ash::UMA_STATUS_AREA_ENABLE_SPOKEN_FEEDBACK
|
| : ash::UMA_STATUS_AREA_DISABLE_SPOKEN_FEEDBACK);
|
| -#endif
|
|
|
| spoken_feedback_notification_ = notify;
|
|
|
| @@ -688,18 +665,9 @@ void AccessibilityManager::UpdateHighContrastFromPref() {
|
|
|
| NotifyAccessibilityStatusChanged(details);
|
|
|
| -#if !defined(USE_ATHENA)
|
| -
|
| -#if defined(USE_ASH)
|
| ash::Shell::GetInstance()->high_contrast_controller()->SetEnabled(enabled);
|
| -#endif
|
| -
|
| -#if defined(OS_CHROMEOS)
|
| ash::Shell::GetInstance()->SetCursorCompositingEnabled(
|
| ShouldEnableCursorCompositing());
|
| -#endif
|
| -
|
| -#endif
|
| }
|
|
|
| void AccessibilityManager::OnLocaleChanged() {
|
| @@ -717,10 +685,8 @@ void AccessibilityManager::OnLocaleChanged() {
|
| }
|
|
|
| void AccessibilityManager::PlayEarcon(int sound_key) {
|
| -#if !defined(USE_ATHENA)
|
| DCHECK(sound_key < chromeos::SOUND_COUNT);
|
| ash::PlaySystemSoundIfSpokenFeedback(sound_key);
|
| -#endif
|
| }
|
|
|
| bool AccessibilityManager::IsHighContrastEnabled() {
|
| @@ -751,9 +717,7 @@ void AccessibilityManager::UpdateAutoclickFromPref() {
|
| return;
|
| autoclick_enabled_ = enabled;
|
|
|
| -#if defined(USE_ASH) && !defined(USE_ATHENA)
|
| ash::Shell::GetInstance()->autoclick_controller()->SetEnabled(enabled);
|
| -#endif
|
| }
|
|
|
| void AccessibilityManager::SetAutoclickDelay(int delay_ms) {
|
| @@ -780,10 +744,8 @@ void AccessibilityManager::UpdateAutoclickDelayFromPref() {
|
| return;
|
| autoclick_delay_ms_ = autoclick_delay_ms;
|
|
|
| -#if defined(USE_ASH) && !defined(USE_ATHENA)
|
| ash::Shell::GetInstance()->autoclick_controller()->SetAutoclickDelay(
|
| autoclick_delay_ms_);
|
| -#endif
|
| }
|
|
|
| void AccessibilityManager::EnableVirtualKeyboard(bool enabled) {
|
| @@ -811,7 +773,6 @@ void AccessibilityManager::UpdateVirtualKeyboardFromPref() {
|
| return;
|
| virtual_keyboard_enabled_ = enabled;
|
|
|
| -#if defined(USE_ASH) && !defined(USE_ATHENA)
|
| keyboard::SetAccessibilityKeyboardEnabled(enabled);
|
| // Note that there are two versions of the on-screen keyboard. A full layout
|
| // is provided for accessibility, which includes sticky modifier keys to
|
| @@ -824,7 +785,6 @@ void AccessibilityManager::UpdateVirtualKeyboardFromPref() {
|
| ash::Shell::GetInstance()->CreateKeyboard();
|
| else
|
| ash::Shell::GetInstance()->DeactivateKeyboard();
|
| -#endif
|
|
|
| AccessibilityStatusEventDetails details(
|
| ACCESSIBILITY_TOGGLE_VIRTUAL_KEYBOARD,
|
| @@ -885,13 +845,11 @@ void AccessibilityManager::UpdateBrailleImeState() {
|
| void AccessibilityManager::InputMethodChanged(
|
| input_method::InputMethodManager* manager,
|
| bool show_message) {
|
| -#if defined(USE_ASH) && !defined(USE_ATHENA)
|
| // Sticky keys is implemented only in ash.
|
| // TODO(dpolukhin): support Athena, crbug.com/408733.
|
| ash::Shell::GetInstance()->sticky_keys_controller()->SetModifiersEnabled(
|
| manager->IsISOLevel5ShiftUsedByCurrentInputMethod(),
|
| manager->IsAltGrUsedByCurrentInputMethod());
|
| -#endif
|
| const chromeos::input_method::InputMethodDescriptor descriptor =
|
| manager->GetActiveIMEState()->GetCurrentInputMethod();
|
| braille_ime_current_ =
|
| @@ -971,11 +929,9 @@ void AccessibilityManager::SetProfile(Profile* profile) {
|
| UpdateVirtualKeyboardFromPref();
|
| }
|
|
|
| -#if !defined(USE_ATHENA)
|
| void AccessibilityManager::ActiveUserChanged(const std::string& user_id) {
|
| SetProfile(ProfileManager::GetActiveUserProfile());
|
| }
|
| -#endif
|
|
|
| void AccessibilityManager::SetProfileForTest(Profile* profile) {
|
| SetProfile(profile);
|
| @@ -994,10 +950,8 @@ base::TimeDelta AccessibilityManager::PlayShutdownSound() {
|
| if (!system_sounds_enabled_)
|
| return base::TimeDelta();
|
| system_sounds_enabled_ = false;
|
| -#if !defined(USE_ATHENA)
|
| if (!ash::PlaySystemSoundIfSpokenFeedback(SOUND_SHUTDOWN))
|
| return base::TimeDelta();
|
| -#endif
|
| return media::SoundsManager::Get()->GetDuration(SOUND_SHUTDOWN);
|
| }
|
|
|
| @@ -1024,7 +978,6 @@ void AccessibilityManager::UpdateChromeOSAccessibilityHistograms() {
|
| UMA_HISTOGRAM_BOOLEAN("Accessibility.CrosVirtualKeyboard",
|
| IsVirtualKeyboardEnabled());
|
| UMA_HISTOGRAM_BOOLEAN("Accessibility.CrosStickyKeys", IsStickyKeysEnabled());
|
| -#if !defined(USE_ATHENA)
|
| if (MagnificationManager::Get()) {
|
| uint32 type = MagnificationManager::Get()->IsMagnifierEnabled() ?
|
| MagnificationManager::Get()->GetMagnifierType() : 0;
|
| @@ -1033,7 +986,6 @@ void AccessibilityManager::UpdateChromeOSAccessibilityHistograms() {
|
| type,
|
| ui::kMaxMagnifierType + 1);
|
| }
|
| -#endif
|
| if (profile_) {
|
| const PrefService* const prefs = profile_->GetPrefs();
|
| UMA_HISTOGRAM_BOOLEAN(
|
| @@ -1079,12 +1031,10 @@ void AccessibilityManager::Observe(
|
| // Ensure ChromeVox makes announcements at the start of new sessions.
|
| should_speak_chrome_vox_announcements_on_user_screen_ = true;
|
|
|
| -#if !defined(USE_ATHENA)
|
| // Add a session state observer to be able to monitor session changes.
|
| if (!session_state_observer_.get() && ash::Shell::HasInstance())
|
| session_state_observer_.reset(
|
| new ash::ScopedSessionStateObserver(this));
|
| -#endif
|
| break;
|
| case chrome::NOTIFICATION_PROFILE_DESTROYED: {
|
| // Update |profile_| when exiting a session or shutting down.
|
| @@ -1137,11 +1087,9 @@ void AccessibilityManager::OnBrailleKeyEvent(const KeyEvent& event) {
|
| }
|
|
|
| void AccessibilityManager::PostLoadChromeVox(Profile* profile) {
|
| -#if !defined(USE_ATHENA)
|
| // Do any setup work needed immediately after ChromeVox actually loads.
|
| if (system_sounds_enabled_)
|
| ash::PlaySystemSoundAlways(SOUND_SPOKEN_FEEDBACK_ENABLED);
|
| -#endif
|
|
|
| ExtensionAccessibilityEventRouter::GetInstance()->
|
| OnChromeVoxLoadStateChanged(profile_,
|
| @@ -1154,11 +1102,9 @@ void AccessibilityManager::PostLoadChromeVox(Profile* profile) {
|
| }
|
|
|
| void AccessibilityManager::PostUnloadChromeVox(Profile* profile) {
|
| -#if !defined(USE_ATHENA)
|
| // Do any teardown work needed immediately after ChromeVox actually unloads.
|
| if (system_sounds_enabled_)
|
| ash::PlaySystemSoundAlways(SOUND_SPOKEN_FEEDBACK_DISABLED);
|
| -#endif
|
| // Clear the accessibility focus ring.
|
| AccessibilityFocusRingController::GetInstance()->SetFocusRing(
|
| std::vector<gfx::Rect>());
|
|
|