diff options
-rw-r--r-- | ash/ash_strings.grd | 3 | ||||
-rw-r--r-- | ash/shell/shell_delegate_impl.cc | 11 | ||||
-rw-r--r-- | ash/shell/shell_delegate_impl.h | 3 | ||||
-rw-r--r-- | ash/shell_delegate.h | 6 | ||||
-rw-r--r-- | ash/system/tray_accessibility.cc | 19 | ||||
-rw-r--r-- | ash/system/tray_accessibility.h | 2 | ||||
-rw-r--r-- | ash/test/test_shell_delegate.cc | 9 | ||||
-rw-r--r-- | ash/test/test_shell_delegate.h | 3 | ||||
-rw-r--r-- | chrome/browser/chromeos/system/ash_system_tray_delegate.cc | 5 | ||||
-rw-r--r-- | chrome/browser/chromeos/system/tray_accessibility_browsertest.cc | 82 | ||||
-rw-r--r-- | chrome/browser/ui/ash/chrome_shell_delegate.h | 2 | ||||
-rw-r--r-- | chrome/browser/ui/ash/chrome_shell_delegate_chromeos.cc | 10 | ||||
-rw-r--r-- | chrome/browser/ui/ash/chrome_shell_delegate_views.cc | 7 |
13 files changed, 160 insertions, 2 deletions
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd index 75559f4..289c8b1 100644 --- a/ash/ash_strings.grd +++ b/ash/ash_strings.grd @@ -439,6 +439,9 @@ Press Shift + Alt to switch. <message name="IDS_ASH_STATUS_TRAY_ACCESSIBILITY_LARGE_CURSOR" desc="The label used in the accessibility menu of the system tray to toggle on/off large mouse cursor feature."> Large mouse cursor </message> + <message name="IDS_ASH_STATUS_TRAY_ACCESSIBILITY_AUTOCLICK" desc="The label used in the accessibility menu of the system tray to toggle on/off automatic mouse clicks."> + Automatic clicks + </message> <message name="IDS_ASH_STATUS_TRAY_ACCESSIBILITY_LEARN_MORE" desc="The label used in the accessibility menu of the system tray to open a webpage (article on help center) containing explanation about accessibility feature."> Learn more... diff --git a/ash/shell/shell_delegate_impl.cc b/ash/shell/shell_delegate_impl.cc index 6d65f8b..02f6bc6 100644 --- a/ash/shell/shell_delegate_impl.cc +++ b/ash/shell/shell_delegate_impl.cc @@ -33,7 +33,8 @@ ShellDelegateImpl::ShellDelegateImpl() high_contrast_enabled_(false), screen_magnifier_enabled_(false), screen_magnifier_type_(kDefaultMagnifierType), - large_cursor_enabled_(false) { + large_cursor_enabled_(false), + autoclick_enabled_(false) { } ShellDelegateImpl::~ShellDelegateImpl() { @@ -149,6 +150,14 @@ bool ShellDelegateImpl::IsLargeCursorEnabled() const { return large_cursor_enabled_; } +void ShellDelegateImpl::SetAutoclickEnabled(bool enabled) { + autoclick_enabled_ = enabled; +} + +bool ShellDelegateImpl::IsAutoclickEnabled() const { + return autoclick_enabled_; +} + bool ShellDelegateImpl::ShouldAlwaysShowAccessibilityMenu() const { return false; } diff --git a/ash/shell/shell_delegate_impl.h b/ash/shell/shell_delegate_impl.h index 4d4abe9..e51a39d 100644 --- a/ash/shell/shell_delegate_impl.h +++ b/ash/shell/shell_delegate_impl.h @@ -55,6 +55,8 @@ class ShellDelegateImpl : public ash::ShellDelegate { virtual MagnifierType GetMagnifierType() const OVERRIDE; virtual void SetLargeCursorEnabled(bool enabled) OVERRIDE; virtual bool IsLargeCursorEnabled() const OVERRIDE; + virtual void SetAutoclickEnabled(bool enabled) OVERRIDE; + virtual bool IsAutoclickEnabled() const OVERRIDE; virtual bool ShouldAlwaysShowAccessibilityMenu() const OVERRIDE; virtual void SilenceSpokenFeedback() const OVERRIDE; virtual app_list::AppListViewDelegate* CreateAppListViewDelegate() OVERRIDE; @@ -88,6 +90,7 @@ class ShellDelegateImpl : public ash::ShellDelegate { bool screen_magnifier_enabled_; MagnifierType screen_magnifier_type_; bool large_cursor_enabled_; + bool autoclick_enabled_; DISALLOW_COPY_AND_ASSIGN(ShellDelegateImpl); }; diff --git a/ash/shell_delegate.h b/ash/shell_delegate.h index 02fea7f..a78e1c1 100644 --- a/ash/shell_delegate.h +++ b/ash/shell_delegate.h @@ -195,6 +195,12 @@ class ASH_EXPORT ShellDelegate { // Returns if Large Cursor is enabled or not. virtual bool IsLargeCursorEnabled() const = 0; + // Invoked to enable autoclick. + virtual void SetAutoclickEnabled(bool enabled) = 0; + + // Returns if autoclick is enabled or not. + virtual bool IsAutoclickEnabled() const = 0; + // Returns true if the user want to show accesibility menu even when all the // accessibility features are disabled. virtual bool ShouldAlwaysShowAccessibilityMenu() const = 0; diff --git a/ash/system/tray_accessibility.cc b/ash/system/tray_accessibility.cc index 6297d5c..28c88d7 100644 --- a/ash/system/tray_accessibility.cc +++ b/ash/system/tray_accessibility.cc @@ -36,6 +36,7 @@ enum AccessibilityState { A11Y_HIGH_CONTRAST = 1 << 1, A11Y_SCREEN_MAGNIFIER = 1 << 2, A11Y_LARGE_CURSOR = 1 << 3, + A11Y_AUTOCLICK = 1 << 4, }; uint32 GetAccessibilityState() { @@ -49,6 +50,8 @@ uint32 GetAccessibilityState() { state |= A11Y_SCREEN_MAGNIFIER; if (shell_delegate->IsLargeCursorEnabled()) state |= A11Y_LARGE_CURSOR; + if (shell_delegate->IsAutoclickEnabled()) + state |= A11Y_AUTOCLICK; return state; } @@ -112,10 +115,12 @@ AccessibilityDetailedView::AccessibilityDetailedView( large_cursor_view_(NULL), help_view_(NULL), settings_view_(NULL), + autoclick_view_(NULL), spoken_feedback_enabled_(false), high_contrast_enabled_(false), screen_magnifier_enabled_(false), large_cursor_enabled_(false), + autoclick_enabled_(false), login_(login) { Reset(); @@ -161,6 +166,16 @@ void AccessibilityDetailedView::AppendAccessibilityList() { IDS_ASH_STATUS_TRAY_ACCESSIBILITY_SCREEN_MAGNIFIER), screen_magnifier_enabled_ ? gfx::Font::BOLD : gfx::Font::NORMAL, screen_magnifier_enabled_); + + // Don't show autoclick option at login screen. + if (login_ != user::LOGGED_IN_NONE) { + autoclick_enabled_ = shell_delegate->IsAutoclickEnabled(); + autoclick_view_ = AddScrollListItem( + bundle.GetLocalizedString( + IDS_ASH_STATUS_TRAY_ACCESSIBILITY_AUTOCLICK), + autoclick_enabled_ ? gfx::Font::BOLD : gfx::Font::NORMAL, + autoclick_enabled_); + } } void AccessibilityDetailedView::AppendHelpEntries() { @@ -221,6 +236,8 @@ void AccessibilityDetailedView::OnViewClicked(views::View* sender) { } else if (large_cursor_view_ && sender == large_cursor_view_) { shell_delegate-> SetLargeCursorEnabled(!shell_delegate->IsLargeCursorEnabled()); + } else if (autoclick_view_ && sender == autoclick_view_) { + shell_delegate->SetAutoclickEnabled(!shell_delegate->IsAutoclickEnabled()); } } @@ -334,7 +351,7 @@ void TrayAccessibility::OnAccessibilityModeChanged( SetTrayIconVisible(GetInitialVisibility()); uint32 accessibility_state = GetAccessibilityState(); - if ((notify == ash::A11Y_NOTIFICATION_SHOW)&& + if ((notify == ash::A11Y_NOTIFICATION_SHOW) && !(previous_accessibility_state_ & A11Y_SPOKEN_FEEDBACK) && (accessibility_state & A11Y_SPOKEN_FEEDBACK)) { // Shows popup if |notify| is true and the spoken feedback is being enabled. diff --git a/ash/system/tray_accessibility.h b/ash/system/tray_accessibility.h index 0171378..5ed27320 100644 --- a/ash/system/tray_accessibility.h +++ b/ash/system/tray_accessibility.h @@ -76,11 +76,13 @@ class AccessibilityDetailedView : public TrayDetailsView, views::View* large_cursor_view_;; views::View* help_view_; views::View* settings_view_; + views::View* autoclick_view_; bool spoken_feedback_enabled_; bool high_contrast_enabled_; bool screen_magnifier_enabled_; bool large_cursor_enabled_; + bool autoclick_enabled_; user::LoginStatus login_; friend class chromeos::TrayAccessibilityTest; diff --git a/ash/test/test_shell_delegate.cc b/ash/test/test_shell_delegate.cc index 8dfff8e..e4c8a5e 100644 --- a/ash/test/test_shell_delegate.cc +++ b/ash/test/test_shell_delegate.cc @@ -32,6 +32,7 @@ TestShellDelegate::TestShellDelegate() screen_magnifier_enabled_(false), screen_magnifier_type_(kDefaultMagnifierType), large_cursor_enabled_(false), + autoclick_enabled_(false), num_exit_requests_(0), multi_profiles_enabled_(false), test_session_state_delegate_(NULL) { @@ -137,6 +138,14 @@ bool TestShellDelegate::IsLargeCursorEnabled() const { return large_cursor_enabled_; } +void TestShellDelegate::SetAutoclickEnabled(bool enabled) { + autoclick_enabled_ = enabled; +} + +bool TestShellDelegate::IsAutoclickEnabled() const { + return autoclick_enabled_; +} + bool TestShellDelegate::ShouldAlwaysShowAccessibilityMenu() const { return false; } diff --git a/ash/test/test_shell_delegate.h b/ash/test/test_shell_delegate.h index c4c8332..c361bc0 100644 --- a/ash/test/test_shell_delegate.h +++ b/ash/test/test_shell_delegate.h @@ -58,6 +58,8 @@ class TestShellDelegate : public ShellDelegate { virtual MagnifierType GetMagnifierType() const OVERRIDE; virtual void SetLargeCursorEnabled(bool enabled) OVERRIDE; virtual bool IsLargeCursorEnabled() const OVERRIDE; + virtual void SetAutoclickEnabled(bool enabled) OVERRIDE; + virtual bool IsAutoclickEnabled() const OVERRIDE; virtual bool ShouldAlwaysShowAccessibilityMenu() const OVERRIDE; virtual void SilenceSpokenFeedback() const OVERRIDE; virtual app_list::AppListViewDelegate* CreateAppListViewDelegate() OVERRIDE; @@ -89,6 +91,7 @@ class TestShellDelegate : public ShellDelegate { bool screen_magnifier_enabled_; MagnifierType screen_magnifier_type_; bool large_cursor_enabled_; + bool autoclick_enabled_; int num_exit_requests_; bool multi_profiles_enabled_; diff --git a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc index ac0bd64..f367b99 100644 --- a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc +++ b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc @@ -866,6 +866,11 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, base::Unretained(this), ash::A11Y_NOTIFICATION_NONE)); user_pref_registrar_->Add( + prefs::kAutoclickEnabled, + base::Bind(&SystemTrayDelegate::OnAccessibilityModeChanged, + base::Unretained(this), + ash::A11Y_NOTIFICATION_NONE)); + user_pref_registrar_->Add( prefs::kShouldAlwaysShowAccessibilityMenu, base::Bind(&SystemTrayDelegate::OnAccessibilityModeChanged, base::Unretained(this), diff --git a/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc b/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc index 47649cf..6955e05 100644 --- a/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc +++ b/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc @@ -164,6 +164,12 @@ class TrayAccessibilityTest tray()->detailed_menu_->OnViewClicked(button); } + void ClickAutoclickOnDetailMenu() { + views::View* button = tray()->detailed_menu_->autoclick_view_; + EXPECT_TRUE(button); + tray()->detailed_menu_->OnViewClicked(button); + } + bool IsSpokenFeedbackEnabledOnDetailMenu() { return tray()->detailed_menu_->spoken_feedback_enabled_; } @@ -180,6 +186,9 @@ class TrayAccessibilityTest return tray()->detailed_menu_->large_cursor_enabled_; } + bool IsAutoclickEnabledOnDetailMenu() { + return tray()->detailed_menu_->autoclick_enabled_; + } bool IsSpokenFeedbackMenuShownOnDetailMenu() { return tray()->detailed_menu_->spoken_feedback_view_; } @@ -196,6 +205,10 @@ class TrayAccessibilityTest return tray()->detailed_menu_->large_cursor_view_; } + bool IsAutoclickMenuShownOnDetailMenu() { + return tray()->detailed_menu_->autoclick_view_; + } + policy::MockConfigurationPolicyProvider provider_; }; @@ -298,6 +311,12 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenu) { SetMagnifierEnabled(false); EXPECT_FALSE(CanCreateMenuItem()); + // Toggling autoclick changes the visibility of the menu. + AccessibilityManager::Get()->EnableAutoclick(true); + EXPECT_TRUE(CanCreateMenuItem()); + AccessibilityManager::Get()->EnableAutoclick(false); + EXPECT_FALSE(CanCreateMenuItem()); + // Enabling all accessibility features. SetMagnifierEnabled(true); EXPECT_TRUE(CanCreateMenuItem()); @@ -306,6 +325,10 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenu) { AccessibilityManager::Get()->EnableSpokenFeedback( true, ash::A11Y_NOTIFICATION_NONE); EXPECT_TRUE(CanCreateMenuItem()); + AccessibilityManager::Get()->EnableAutoclick(true); + EXPECT_TRUE(CanCreateMenuItem()); + AccessibilityManager::Get()->EnableAutoclick(false); + EXPECT_TRUE(CanCreateMenuItem()); AccessibilityManager::Get()->EnableSpokenFeedback( false, ash::A11Y_NOTIFICATION_NONE); EXPECT_TRUE(CanCreateMenuItem()); @@ -346,6 +369,12 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenuWithShowMenuOption) { SetMagnifierEnabled(false); EXPECT_TRUE(CanCreateMenuItem()); + // The menu is keeping visible regardless of toggling autoclick. + AccessibilityManager::Get()->EnableAutoclick(true); + EXPECT_TRUE(CanCreateMenuItem()); + AccessibilityManager::Get()->EnableAutoclick(false); + EXPECT_TRUE(CanCreateMenuItem()); + // Enabling all accessibility features. SetMagnifierEnabled(true); EXPECT_TRUE(CanCreateMenuItem()); @@ -354,6 +383,10 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, ShowMenuWithShowMenuOption) { AccessibilityManager::Get()->EnableSpokenFeedback( true, ash::A11Y_NOTIFICATION_NONE); EXPECT_TRUE(CanCreateMenuItem()); + AccessibilityManager::Get()->EnableAutoclick(true); + EXPECT_TRUE(CanCreateMenuItem()); + AccessibilityManager::Get()->EnableAutoclick(false); + EXPECT_TRUE(CanCreateMenuItem()); AccessibilityManager::Get()->EnableSpokenFeedback( false, ash::A11Y_NOTIFICATION_NONE); EXPECT_TRUE(CanCreateMenuItem()); @@ -477,6 +510,17 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, MAYBE_ClickDetailMenu) { EXPECT_TRUE(CreateDetailedMenu()); ClickScreenMagnifierOnDetailMenu(); EXPECT_FALSE(MagnificationManager::Get()->IsMagnifierEnabled()); + + // Confirms that the check item toggles autoclick. + EXPECT_FALSE(AccessibilityManager::Get()->IsAutoclickEnabled()); + + EXPECT_TRUE(CreateDetailedMenu()); + ClickAutoclickOnDetailMenu(); + EXPECT_TRUE(AccessibilityManager::Get()->IsAutoclickEnabled()); + + EXPECT_TRUE(CreateDetailedMenu()); + ClickAutoclickOnDetailMenu(); + EXPECT_FALSE(AccessibilityManager::Get()->IsAutoclickEnabled()); } IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { @@ -488,6 +532,8 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); + EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu()); + EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu()); CloseDetailMenu(); // Enabling spoken feedback. @@ -498,6 +544,7 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); + EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu()); CloseDetailMenu(); // Disabling spoken feedback. @@ -508,6 +555,7 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); + EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu()); CloseDetailMenu(); // Enabling high contrast. @@ -517,6 +565,7 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { EXPECT_TRUE(IsHighContrastEnabledOnDetailMenu()); EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); + EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu()); CloseDetailMenu(); // Disabling high contrast. @@ -526,6 +575,7 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); + EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu()); CloseDetailMenu(); // Enabling full screen magnifier. @@ -535,6 +585,7 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); EXPECT_TRUE(IsScreenMagnifierEnabledOnDetailMenu()); EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); + EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu()); CloseDetailMenu(); // Disabling screen magnifier. @@ -544,6 +595,7 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); + EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu()); CloseDetailMenu(); // Enabling large cursor. @@ -553,6 +605,7 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); EXPECT_TRUE(IsLargeCursorEnabledOnDetailMenu()); + EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu()); CloseDetailMenu(); // Disabling large cursor. @@ -562,6 +615,7 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); + EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu()); CloseDetailMenu(); // Enabling all of the a11y features. @@ -575,6 +629,7 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { EXPECT_TRUE(IsHighContrastEnabledOnDetailMenu()); EXPECT_TRUE(IsScreenMagnifierEnabledOnDetailMenu()); EXPECT_TRUE(IsLargeCursorEnabledOnDetailMenu()); + EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu()); CloseDetailMenu(); // Disabling all of the a11y features. @@ -588,6 +643,30 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMarksOnDetailMenu) { EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); + EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu()); + CloseDetailMenu(); + + // Autoclick is disabled on login screen. + SetLoginStatus(ash::user::LOGGED_IN_USER); + + // Enabling autoclick. + AccessibilityManager::Get()->EnableAutoclick(true); + EXPECT_TRUE(CreateDetailedMenu()); + EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); + EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); + EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); + EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); + EXPECT_TRUE(IsAutoclickEnabledOnDetailMenu()); + CloseDetailMenu(); + + // Disabling autoclick. + AccessibilityManager::Get()->EnableAutoclick(false); + EXPECT_TRUE(CreateDetailedMenu()); + EXPECT_FALSE(IsSpokenFeedbackEnabledOnDetailMenu()); + EXPECT_FALSE(IsHighContrastEnabledOnDetailMenu()); + EXPECT_FALSE(IsScreenMagnifierEnabledOnDetailMenu()); + EXPECT_FALSE(IsLargeCursorEnabledOnDetailMenu()); + EXPECT_FALSE(IsAutoclickEnabledOnDetailMenu()); CloseDetailMenu(); } @@ -598,6 +677,7 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMenuVisibilityOnDetailMenu) { EXPECT_TRUE(IsHighContrastMenuShownOnDetailMenu()); EXPECT_TRUE(IsScreenMagnifierMenuShownOnDetailMenu()); EXPECT_TRUE(IsLargeCursorMenuShownOnDetailMenu()); + EXPECT_FALSE(IsAutoclickMenuShownOnDetailMenu()); CloseDetailMenu(); SetLoginStatus(ash::user::LOGGED_IN_USER); @@ -606,6 +686,7 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMenuVisibilityOnDetailMenu) { EXPECT_TRUE(IsHighContrastMenuShownOnDetailMenu()); EXPECT_TRUE(IsScreenMagnifierMenuShownOnDetailMenu()); EXPECT_FALSE(IsLargeCursorMenuShownOnDetailMenu()); + EXPECT_TRUE(IsAutoclickMenuShownOnDetailMenu()); CloseDetailMenu(); SetLoginStatus(ash::user::LOGGED_IN_LOCKED); @@ -614,6 +695,7 @@ IN_PROC_BROWSER_TEST_P(TrayAccessibilityTest, CheckMenuVisibilityOnDetailMenu) { EXPECT_TRUE(IsHighContrastMenuShownOnDetailMenu()); EXPECT_TRUE(IsScreenMagnifierMenuShownOnDetailMenu()); EXPECT_FALSE(IsLargeCursorMenuShownOnDetailMenu()); + EXPECT_TRUE(IsAutoclickMenuShownOnDetailMenu()); CloseDetailMenu(); } diff --git a/chrome/browser/ui/ash/chrome_shell_delegate.h b/chrome/browser/ui/ash/chrome_shell_delegate.h index 804d1c0..2bdde85 100644 --- a/chrome/browser/ui/ash/chrome_shell_delegate.h +++ b/chrome/browser/ui/ash/chrome_shell_delegate.h @@ -64,6 +64,8 @@ class ChromeShellDelegate : public ash::ShellDelegate, virtual ash::MagnifierType GetMagnifierType() const OVERRIDE; virtual void SetLargeCursorEnabled(bool enabled) OVERRIDE; virtual bool IsLargeCursorEnabled() const OVERRIDE; + virtual void SetAutoclickEnabled(bool enabled) OVERRIDE; + virtual bool IsAutoclickEnabled() const OVERRIDE; virtual bool ShouldAlwaysShowAccessibilityMenu() const OVERRIDE; virtual void SilenceSpokenFeedback() const OVERRIDE; virtual app_list::AppListViewDelegate* CreateAppListViewDelegate() OVERRIDE; diff --git a/chrome/browser/ui/ash/chrome_shell_delegate_chromeos.cc b/chrome/browser/ui/ash/chrome_shell_delegate_chromeos.cc index 2c5be45..8eb98ef 100644 --- a/chrome/browser/ui/ash/chrome_shell_delegate_chromeos.cc +++ b/chrome/browser/ui/ash/chrome_shell_delegate_chromeos.cc @@ -182,6 +182,16 @@ bool ChromeShellDelegate::IsLargeCursorEnabled() const { return chromeos::AccessibilityManager::Get()->IsLargeCursorEnabled(); } +void ChromeShellDelegate::SetAutoclickEnabled(bool enabled) { + DCHECK(chromeos::AccessibilityManager::Get()); + return chromeos::AccessibilityManager::Get()->EnableAutoclick(enabled); +} + +bool ChromeShellDelegate::IsAutoclickEnabled() const { + DCHECK(chromeos::AccessibilityManager::Get()); + return chromeos::AccessibilityManager::Get()->IsAutoclickEnabled(); +} + ash::CapsLockDelegate* ChromeShellDelegate::CreateCapsLockDelegate() { chromeos::input_method::XKeyboard* xkeyboard = chromeos::input_method::InputMethodManager::Get()->GetXKeyboard(); diff --git a/chrome/browser/ui/ash/chrome_shell_delegate_views.cc b/chrome/browser/ui/ash/chrome_shell_delegate_views.cc index c6cf777..a85b78c 100644 --- a/chrome/browser/ui/ash/chrome_shell_delegate_views.cc +++ b/chrome/browser/ui/ash/chrome_shell_delegate_views.cc @@ -62,6 +62,13 @@ bool ChromeShellDelegate::IsLargeCursorEnabled() const { return false; } +void ChromeShellDelegate::SetAutoclickEnabled(bool enabled) { +} + +bool ChromeShellDelegate::IsAutoclickEnabled() const { + return false; +} + bool ChromeShellDelegate::IsHighContrastEnabled() const { return false; } |