| 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 f7648dd9119d6d5afc0b956aab92b516501e7a24..c7a3d65763626521d5102b8f09b09e8d9081644e 100644
|
| --- a/chrome/browser/chromeos/accessibility/accessibility_manager.cc
|
| +++ b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
|
| @@ -4,14 +4,6 @@
|
|
|
| #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"
|
| @@ -27,7 +19,6 @@
|
| #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"
|
| @@ -67,6 +58,18 @@
|
| #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;
|
| @@ -246,17 +249,17 @@ void UnloadChromeVoxExtension(Profile* profile) {
|
| AccessibilityStatusEventDetails::AccessibilityStatusEventDetails(
|
| AccessibilityNotificationType notification_type,
|
| bool enabled,
|
| - ash::AccessibilityNotificationVisibility notify)
|
| + ui::AccessibilityNotificationVisibility notify)
|
| : notification_type(notification_type),
|
| enabled(enabled),
|
| - magnifier_type(ash::kDefaultMagnifierType),
|
| + magnifier_type(ui::kDefaultMagnifierType),
|
| notify(notify) {}
|
|
|
| AccessibilityStatusEventDetails::AccessibilityStatusEventDetails(
|
| AccessibilityNotificationType notification_type,
|
| bool enabled,
|
| - ash::MagnifierType magnifier_type,
|
| - ash::AccessibilityNotificationVisibility notify)
|
| + ui::MagnifierType magnifier_type,
|
| + ui::AccessibilityNotificationVisibility notify)
|
| : notification_type(notification_type),
|
| enabled(enabled),
|
| magnifier_type(magnifier_type),
|
| @@ -339,9 +342,13 @@ 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_(ash::A11Y_NOTIFICATION_NONE),
|
| + spoken_feedback_notification_(ui::A11Y_NOTIFICATION_NONE),
|
| should_speak_chrome_vox_announcements_on_user_screen_(true),
|
| system_sounds_enabled_(false),
|
| braille_display_connected_(false),
|
| @@ -386,7 +393,7 @@ AccessibilityManager::~AccessibilityManager() {
|
| AccessibilityStatusEventDetails details(
|
| ACCESSIBILITY_MANAGER_SHUTDOWN,
|
| false,
|
| - ash::A11Y_NOTIFICATION_NONE);
|
| + ui::A11Y_NOTIFICATION_NONE);
|
| NotifyAccessibilityStatusChanged(details);
|
| input_method::InputMethodManager::Get()->RemoveObserver(this);
|
| }
|
| @@ -452,7 +459,7 @@ void AccessibilityManager::UpdateLargeCursorFromPref() {
|
| AccessibilityStatusEventDetails details(
|
| ACCESSIBILITY_TOGGLE_LARGE_CURSOR,
|
| enabled,
|
| - ash::A11Y_NOTIFICATION_NONE);
|
| + ui::A11Y_NOTIFICATION_NONE);
|
|
|
| NotifyAccessibilityStatusChanged(details);
|
| #if !defined(USE_ATHENA)
|
| @@ -511,7 +518,7 @@ void AccessibilityManager::UpdateStickyKeysFromPref() {
|
|
|
| void AccessibilityManager::EnableSpokenFeedback(
|
| bool enabled,
|
| - ash::AccessibilityNotificationVisibility notify) {
|
| + ui::AccessibilityNotificationVisibility notify) {
|
| if (!profile_)
|
| return;
|
| #if !defined(USE_ATHENA)
|
| @@ -526,7 +533,7 @@ void AccessibilityManager::EnableSpokenFeedback(
|
| pref_service->SetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled, enabled);
|
| pref_service->CommitPendingWrite();
|
|
|
| - spoken_feedback_notification_ = ash::A11Y_NOTIFICATION_NONE;
|
| + spoken_feedback_notification_ = ui::A11Y_NOTIFICATION_NONE;
|
| }
|
|
|
| void AccessibilityManager::UpdateSpokenFeedbackFromPref() {
|
| @@ -646,7 +653,7 @@ bool AccessibilityManager::IsSpokenFeedbackEnabled() {
|
| }
|
|
|
| void AccessibilityManager::ToggleSpokenFeedback(
|
| - ash::AccessibilityNotificationVisibility notify) {
|
| + ui::AccessibilityNotificationVisibility notify) {
|
| EnableSpokenFeedback(!IsSpokenFeedbackEnabled(), notify);
|
| }
|
|
|
| @@ -674,7 +681,7 @@ void AccessibilityManager::UpdateHighContrastFromPref() {
|
| AccessibilityStatusEventDetails details(
|
| ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE,
|
| enabled,
|
| - ash::A11Y_NOTIFICATION_NONE);
|
| + ui::A11Y_NOTIFICATION_NONE);
|
|
|
| NotifyAccessibilityStatusChanged(details);
|
|
|
| @@ -702,13 +709,15 @@ void AccessibilityManager::OnLocaleChanged() {
|
| // If the system locale changes and spoken feedback is enabled,
|
| // reload ChromeVox so that it switches its internal translations
|
| // to the new language.
|
| - EnableSpokenFeedback(false, ash::A11Y_NOTIFICATION_NONE);
|
| - EnableSpokenFeedback(true, ash::A11Y_NOTIFICATION_NONE);
|
| + EnableSpokenFeedback(false, ui::A11Y_NOTIFICATION_NONE);
|
| + EnableSpokenFeedback(true, ui::A11Y_NOTIFICATION_NONE);
|
| }
|
|
|
| void AccessibilityManager::PlayEarcon(int sound_key) {
|
| +#if !defined(USE_ATHENA)
|
| DCHECK(sound_key < chromeos::SOUND_COUNT);
|
| ash::PlaySystemSoundIfSpokenFeedback(sound_key);
|
| +#endif
|
| }
|
|
|
| bool AccessibilityManager::IsHighContrastEnabled() {
|
| @@ -796,7 +805,7 @@ void AccessibilityManager::UpdateVirtualKeyboardFromPref() {
|
| AccessibilityStatusEventDetails details(
|
| ACCESSIBILITY_TOGGLE_VIRTUAL_KEYBOARD,
|
| enabled,
|
| - ash::A11Y_NOTIFICATION_NONE);
|
| + ui::A11Y_NOTIFICATION_NONE);
|
|
|
| NotifyAccessibilityStatusChanged(details);
|
|
|
| @@ -954,9 +963,11 @@ 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);
|
| @@ -1005,14 +1016,16 @@ 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;
|
| // '0' means magnifier is disabled.
|
| UMA_HISTOGRAM_ENUMERATION("Accessibility.CrosScreenMagnifier",
|
| type,
|
| - ash::kMaxMagnifierType + 1);
|
| + ui::kMaxMagnifierType + 1);
|
| }
|
| +#endif
|
| if (profile_) {
|
| const PrefService* const prefs = profile_->GetPrefs();
|
| UMA_HISTOGRAM_BOOLEAN(
|
| @@ -1058,10 +1071,12 @@ 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.
|
| @@ -1090,14 +1105,14 @@ void AccessibilityManager::OnBrailleDisplayStateChanged(
|
| const DisplayState& display_state) {
|
| braille_display_connected_ = display_state.available;
|
| if (braille_display_connected_) {
|
| - EnableSpokenFeedback(true, ash::A11Y_NOTIFICATION_SHOW);
|
| + EnableSpokenFeedback(true, ui::A11Y_NOTIFICATION_SHOW);
|
| }
|
| UpdateBrailleImeState();
|
|
|
| AccessibilityStatusEventDetails details(
|
| ACCESSIBILITY_BRAILLE_DISPLAY_CONNECTION_STATE_CHANGED,
|
| braille_display_connected_,
|
| - ash::A11Y_NOTIFICATION_SHOW);
|
| + ui::A11Y_NOTIFICATION_SHOW);
|
| NotifyAccessibilityStatusChanged(details);
|
| }
|
|
|
| @@ -1114,9 +1129,11 @@ 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_,
|
| @@ -1129,9 +1146,11 @@ 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>());
|
|
|