diff options
author | dtseng@chromium.org <dtseng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-20 22:46:30 +0000 |
---|---|---|
committer | dtseng@chromium.org <dtseng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-20 22:46:30 +0000 |
commit | a9c6299d644877904be7937ec1751da3e6752f97 (patch) | |
tree | 9c4239b71125b499438a7450ed3f670add4e38d3 /chrome/browser/renderer_host | |
parent | c1d82b6a3c955189c3a807906779c2966ed16db5 (diff) | |
download | chromium_src-a9c6299d644877904be7937ec1751da3e6752f97.zip chromium_src-a9c6299d644877904be7937ec1751da3e6752f97.tar.gz chromium_src-a9c6299d644877904be7937ec1751da3e6752f97.tar.bz2 |
Only enable renderer accessibility on Mac if a command line flag is passed or VoiceOver is running.
BUG=55902
TEST=run Chrome with and without VoiceOver on. In the former case, verify that accessibility works; in the latter case, verify that accessibility doesn't work.
Review URL: http://codereview.chromium.org/3468001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59983 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host')
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host_view_mac.h | 3 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host_view_mac.mm | 12 |
2 files changed, 13 insertions, 2 deletions
diff --git a/chrome/browser/renderer_host/render_widget_host_view_mac.h b/chrome/browser/renderer_host/render_widget_host_view_mac.h index 1c34449..688ee42 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_mac.h +++ b/chrome/browser/renderer_host/render_widget_host_view_mac.h @@ -303,6 +303,9 @@ class RenderWidgetHostViewMac : public RenderWidgetHostView { // invoke it from the message loop. void ShutdownHost(); + // Used to determine whether or not to enable accessibility. + bool IsVoiceOverRunning(); + // The associated view. This is weak and is inserted into the view hierarchy // to own this RenderWidgetHostViewMac object unless is_popup_menu_ is true. // In that case, cocoa_view_ is never inserted into the view hierarchy, so diff --git a/chrome/browser/renderer_host/render_widget_host_view_mac.mm b/chrome/browser/renderer_host/render_widget_host_view_mac.mm index 966f9fb..bd18a81 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_mac.mm +++ b/chrome/browser/renderer_host/render_widget_host_view_mac.mm @@ -401,8 +401,10 @@ RenderWidgetHostViewMac::RenderWidgetHostViewMac(RenderWidgetHost* widget) initWithRenderWidgetHostViewMac:this] autorelease]; render_widget_host_->set_view(this); - renderer_accessible_ = !CommandLine::ForCurrentProcess()->HasSwitch( - switches::kDisableRendererAccessibility); + // Turn on accessibility only if one or both of these flags is true. + renderer_accessible_ = IsVoiceOverRunning() || + CommandLine::ForCurrentProcess()->HasSwitch( + switches::kForceRendererAccessibility); } RenderWidgetHostViewMac::~RenderWidgetHostViewMac() { @@ -984,6 +986,12 @@ void RenderWidgetHostViewMac::ShutdownHost() { // Do not touch any members at this point, |this| has been deleted. } +bool RenderWidgetHostViewMac::IsVoiceOverRunning() { + NSUserDefaults* user_defaults = [NSUserDefaults standardUserDefaults]; + [user_defaults addSuiteNamed:@"com.apple.universalaccess"]; + return 1 == [user_defaults integerForKey:@"voiceOverOnOffKey"]; +} + namespace { // Adjusts an NSRect in Cocoa screen coordinates to have an origin in the upper |