summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ash/ash_strings.grd3
-rw-r--r--ash/shell/shell_delegate_impl.cc11
-rw-r--r--ash/shell/shell_delegate_impl.h3
-rw-r--r--ash/shell_delegate.h6
-rw-r--r--ash/system/tray_accessibility.cc19
-rw-r--r--ash/system/tray_accessibility.h2
-rw-r--r--ash/test/test_shell_delegate.cc9
-rw-r--r--ash/test/test_shell_delegate.h3
-rw-r--r--chrome/browser/chromeos/system/ash_system_tray_delegate.cc5
-rw-r--r--chrome/browser/chromeos/system/tray_accessibility_browsertest.cc82
-rw-r--r--chrome/browser/ui/ash/chrome_shell_delegate.h2
-rw-r--r--chrome/browser/ui/ash/chrome_shell_delegate_chromeos.cc10
-rw-r--r--chrome/browser/ui/ash/chrome_shell_delegate_views.cc7
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;
}