diff options
author | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-21 19:53:26 +0000 |
---|---|---|
committer | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-21 19:53:26 +0000 |
commit | fa4f91688f50803b510b21d0040deac6cd4f73a1 (patch) | |
tree | b3a8c5758993411b32b7470af7f384ace82ff425 | |
parent | 0ccc3f7ce460094544cf8383f828a1811e1a58bf (diff) | |
download | chromium_src-fa4f91688f50803b510b21d0040deac6cd4f73a1.zip chromium_src-fa4f91688f50803b510b21d0040deac6cd4f73a1.tar.gz chromium_src-fa4f91688f50803b510b21d0040deac6cd4f73a1.tar.bz2 |
Create content API for BrowserAccessibilityState
BUG=98716
TEST=none
TBR=sky
Review URL: http://codereview.chromium.org/9421030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122856 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/DEPS | 1 | ||||
-rw-r--r-- | chrome/browser/chrome_browser_application_mac.mm | 4 | ||||
-rw-r--r-- | chrome/browser/chromeos/accessibility/accessibility_util.cc | 2 | ||||
-rw-r--r-- | chrome/browser/ui/views/frame/browser_frame_win.cc | 4 | ||||
-rw-r--r-- | chrome/browser/ui/views/toolbar_view.cc | 2 | ||||
-rw-r--r-- | content/browser/accessibility/browser_accessibility_state_impl.cc (renamed from content/browser/accessibility/browser_accessibility_state.cc) | 36 | ||||
-rw-r--r-- | content/browser/accessibility/browser_accessibility_state_impl.h (renamed from content/browser/accessibility/browser_accessibility_state.h) | 40 | ||||
-rw-r--r-- | content/browser/renderer_host/render_widget_host.cc | 2 | ||||
-rw-r--r-- | content/browser/renderer_host/render_widget_host_view_win.cc | 2 | ||||
-rw-r--r-- | content/content_browser.gypi | 5 | ||||
-rw-r--r-- | content/public/browser/browser_accessibility_state.h | 31 |
11 files changed, 81 insertions, 48 deletions
diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS index e1284b9..47c5e7d 100644 --- a/chrome/browser/DEPS +++ b/chrome/browser/DEPS @@ -33,7 +33,6 @@ include_rules = [ # DO NOT ADD ANY MORE ITEMS TO THE LIST BELOW! "+content/browser/accessibility/browser_accessibility.h", "+content/browser/accessibility/browser_accessibility_manager.h", - "+content/browser/accessibility/browser_accessibility_state.h", "+content/browser/browser_url_handler.h", "+content/browser/cert_store.h", "+content/browser/disposition_utils.h", diff --git a/chrome/browser/chrome_browser_application_mac.mm b/chrome/browser/chrome_browser_application_mac.mm index 3ddba2c..e04c277 100644 --- a/chrome/browser/chrome_browser_application_mac.mm +++ b/chrome/browser/chrome_browser_application_mac.mm @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -15,8 +15,8 @@ #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" #import "chrome/common/mac/objc_method_swizzle.h" #import "chrome/common/mac/objc_zombie.h" -#include "content/browser/accessibility/browser_accessibility_state.h" #include "content/browser/renderer_host/render_view_host.h" +#include "content/public/browser/browser_accessibility_state.h" #include "content/public/browser/web_contents.h" // The implementation of NSExceptions break various assumptions in the diff --git a/chrome/browser/chromeos/accessibility/accessibility_util.cc b/chrome/browser/chromeos/accessibility/accessibility_util.cc index 597a682..1286ada 100644 --- a/chrome/browser/chromeos/accessibility/accessibility_util.cc +++ b/chrome/browser/chromeos/accessibility/accessibility_util.cc @@ -18,8 +18,8 @@ #include "chrome/common/extensions/extension_messages.h" #include "chrome/common/extensions/extension_resource.h" #include "chrome/common/pref_names.h" -#include "content/browser/accessibility/browser_accessibility_state.h" #include "content/browser/renderer_host/render_view_host.h" +#include "content/public/browser/browser_accessibility_state.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_ui.h" #include "grit/browser_resources.h" diff --git a/chrome/browser/ui/views/frame/browser_frame_win.cc b/chrome/browser/ui/views/frame/browser_frame_win.cc index bb7c7d1..a791241 100644 --- a/chrome/browser/ui/views/frame/browser_frame_win.cc +++ b/chrome/browser/ui/views/frame/browser_frame_win.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -11,7 +11,7 @@ #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/views/frame/browser_view.h" -#include "content/browser/accessibility/browser_accessibility_state.h" +#include "content/public/browser/browser_accessibility_state.h" #include "grit/theme_resources.h" #include "ui/base/theme_provider.h" #include "ui/gfx/font.h" diff --git a/chrome/browser/ui/views/toolbar_view.cc b/chrome/browser/ui/views/toolbar_view.cc index cf6a53c..bff7697 100644 --- a/chrome/browser/ui/views/toolbar_view.cc +++ b/chrome/browser/ui/views/toolbar_view.cc @@ -22,7 +22,7 @@ #include "chrome/browser/upgrade_detector.h" #include "chrome/common/chrome_notification_types.h" #include "chrome/common/pref_names.h" -#include "content/browser/accessibility/browser_accessibility_state.h" +#include "content/public/browser/browser_accessibility_state.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/user_metrics.h" #include "grit/chromium_strings.h" diff --git a/content/browser/accessibility/browser_accessibility_state.cc b/content/browser/accessibility/browser_accessibility_state_impl.cc index bb277b7..08c0775 100644 --- a/content/browser/accessibility/browser_accessibility_state.cc +++ b/content/browser/accessibility/browser_accessibility_state_impl.cc @@ -1,8 +1,8 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/browser/accessibility/browser_accessibility_state.h" +#include "content/browser/accessibility/browser_accessibility_state_impl.h" #include "base/memory/singleton.h" #include "base/metrics/histogram.h" @@ -11,37 +11,43 @@ // Update the accessibility histogram 45 seconds after initialization. static const int kAccessibilityHistogramDelaySecs = 45; -BrowserAccessibilityState::BrowserAccessibilityState() - : accessibility_enabled_(false) { +// static +BrowserAccessibilityState* BrowserAccessibilityState::GetInstance() { + return BrowserAccessibilityStateImpl::GetInstance(); +} + +// static +BrowserAccessibilityStateImpl* BrowserAccessibilityStateImpl::GetInstance() { + return Singleton<BrowserAccessibilityStateImpl>::get(); +} + +BrowserAccessibilityStateImpl::BrowserAccessibilityStateImpl() + : BrowserAccessibilityState(), + accessibility_enabled_(false) { update_histogram_timer_.Start( FROM_HERE, base::TimeDelta::FromSeconds(kAccessibilityHistogramDelaySecs), this, - &BrowserAccessibilityState::UpdateHistogram); -} - -BrowserAccessibilityState::~BrowserAccessibilityState() { + &BrowserAccessibilityStateImpl::UpdateHistogram); } -// static -BrowserAccessibilityState* BrowserAccessibilityState::GetInstance() { - return Singleton<BrowserAccessibilityState>::get(); +BrowserAccessibilityStateImpl::~BrowserAccessibilityStateImpl() { } -void BrowserAccessibilityState::OnScreenReaderDetected() { +void BrowserAccessibilityStateImpl::OnScreenReaderDetected() { accessibility_enabled_ = true; } -void BrowserAccessibilityState::OnAccessibilityEnabledManually() { +void BrowserAccessibilityStateImpl::OnAccessibilityEnabledManually() { // We may want to do something different with this later. accessibility_enabled_ = true; } -bool BrowserAccessibilityState::IsAccessibleBrowser() { +bool BrowserAccessibilityStateImpl::IsAccessibleBrowser() { return accessibility_enabled_; } -void BrowserAccessibilityState::UpdateHistogram() { +void BrowserAccessibilityStateImpl::UpdateHistogram() { UMA_HISTOGRAM_ENUMERATION("Accessibility.State", accessibility_enabled_ ? 1 : 0, 2); diff --git a/content/browser/accessibility/browser_accessibility_state.h b/content/browser/accessibility/browser_accessibility_state_impl.h index c0e2048..413f639 100644 --- a/content/browser/accessibility/browser_accessibility_state.h +++ b/content/browser/accessibility/browser_accessibility_state_impl.h @@ -1,14 +1,14 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_STATE_H_ -#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_STATE_H_ +#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_STATE_IMPL_H_ +#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_STATE_IMPL_H_ #pragma once #include "base/basictypes.h" #include "base/timer.h" -#include "content/common/content_export.h" +#include "content/public/browser/browser_accessibility_state.h" template <typename T> struct DefaultSingletonTraits; @@ -29,37 +29,33 @@ template <typename T> struct DefaultSingletonTraits; // when VoiceOver is launched and unset when VoiceOver is closed. This is an // improvement over reading defaults preference values (which has no callback // mechanism). -class CONTENT_EXPORT BrowserAccessibilityState { +class CONTENT_EXPORT BrowserAccessibilityStateImpl + : public BrowserAccessibilityState { public: - // Returns the singleton instance. - static BrowserAccessibilityState* GetInstance(); + virtual ~BrowserAccessibilityStateImpl(); - ~BrowserAccessibilityState(); + static BrowserAccessibilityStateImpl* GetInstance(); - // Called when accessibility is enabled manually (via command-line flag). - void OnAccessibilityEnabledManually(); - - // Called when screen reader client is detected. - void OnScreenReaderDetected(); - - // Returns true if the browser should be customized for accessibility. - bool IsAccessibleBrowser(); + virtual void OnAccessibilityEnabledManually() OVERRIDE; + virtual void OnScreenReaderDetected() OVERRIDE; + virtual bool IsAccessibleBrowser() OVERRIDE; // Called a short while after startup to allow time for the accessibility // state to be determined. Updates a histogram with the current state. void UpdateHistogram(); - private: - BrowserAccessibilityState(); - friend struct DefaultSingletonTraits<BrowserAccessibilityState>; + protected: + BrowserAccessibilityStateImpl(); + + friend struct DefaultSingletonTraits<BrowserAccessibilityStateImpl>; // Set to true when full accessibility features should be enabled. bool accessibility_enabled_; // Timer to update the histogram a short while after startup. - base::OneShotTimer<BrowserAccessibilityState> update_histogram_timer_; + base::OneShotTimer<BrowserAccessibilityStateImpl> update_histogram_timer_; - DISALLOW_COPY_AND_ASSIGN(BrowserAccessibilityState); + DISALLOW_COPY_AND_ASSIGN(BrowserAccessibilityStateImpl); }; -#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_STATE_H_ +#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_STATE_IMPL_H_ diff --git a/content/browser/renderer_host/render_widget_host.cc b/content/browser/renderer_host/render_widget_host.cc index d99a0a8..ed0851b 100644 --- a/content/browser/renderer_host/render_widget_host.cc +++ b/content/browser/renderer_host/render_widget_host.cc @@ -13,7 +13,6 @@ #include "base/metrics/histogram.h" #include "base/string_number_conversions.h" #include "base/utf_string_conversions.h" -#include "content/browser/accessibility/browser_accessibility_state.h" #include "content/browser/gpu/gpu_process_host.h" #include "content/browser/gpu/gpu_process_host_ui_shim.h" #include "content/browser/gpu/gpu_surface_tracker.h" @@ -25,6 +24,7 @@ #include "content/common/gpu/gpu_messages.h" #include "content/common/view_messages.h" #include "content/port/browser/render_widget_host_view_port.h" +#include "content/public/browser/browser_accessibility_state.h" #include "content/public/browser/native_web_keyboard_event.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_types.h" diff --git a/content/browser/renderer_host/render_widget_host_view_win.cc b/content/browser/renderer_host/render_widget_host_view_win.cc index 74e7d71..0a08050 100644 --- a/content/browser/renderer_host/render_widget_host_view_win.cc +++ b/content/browser/renderer_host/render_widget_host_view_win.cc @@ -19,7 +19,7 @@ #include "base/win/win_util.h" #include "base/win/windows_version.h" #include "base/win/wrapped_window_proc.h" -#include "content/browser/accessibility/browser_accessibility_state.h" +#include "content/browser/accessibility/browser_accessibility_state_impl.h" #include "content/browser/accessibility/browser_accessibility_win.h" #include "content/browser/gpu/gpu_process_host.h" #include "content/browser/gpu/gpu_process_host_ui_shim.h" diff --git a/content/content_browser.gypi b/content/content_browser.gypi index 37a09bb..5f3fa38 100644 --- a/content/content_browser.gypi +++ b/content/content_browser.gypi @@ -28,6 +28,7 @@ 'sources': [ 'port/browser/render_widget_host_view_port.h', 'public/browser/access_token_store.h', + 'public/browser/browser_accessibility_state.h', 'public/browser/browser_child_process_host.h', 'public/browser/browser_child_process_host_delegate.cc', 'public/browser/browser_child_process_host_delegate.h', @@ -138,8 +139,8 @@ 'browser/accessibility/browser_accessibility_manager_mac.mm', 'browser/accessibility/browser_accessibility_manager_win.cc', 'browser/accessibility/browser_accessibility_manager_win.h', - 'browser/accessibility/browser_accessibility_state.cc', - 'browser/accessibility/browser_accessibility_state.h', + 'browser/accessibility/browser_accessibility_state_impl.cc', + 'browser/accessibility/browser_accessibility_state_impl.h', 'browser/accessibility/browser_accessibility_win.cc', 'browser/accessibility/browser_accessibility_win.h', 'browser/appcache/appcache_dispatcher_host.cc', diff --git a/content/public/browser/browser_accessibility_state.h b/content/public/browser/browser_accessibility_state.h new file mode 100644 index 0000000..9860146 --- /dev/null +++ b/content/public/browser/browser_accessibility_state.h @@ -0,0 +1,31 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_PUBLIC_BROWSER_BROWSER_ACCESSIBILITY_STATE_H_ +#define CONTENT_PUBLIC_BROWSER_BROWSER_ACCESSIBILITY_STATE_H_ +#pragma once + +#include "content/common/content_export.h" + +// The BrowserAccessibilityState class is used to determine if the browser +// should be customized for users with assistive technology, such as screen +// readers. +class CONTENT_EXPORT BrowserAccessibilityState { + public: + virtual ~BrowserAccessibilityState() { } + + // Returns the singleton instance. + static BrowserAccessibilityState* GetInstance(); + + // Called when accessibility is enabled manually (via command-line flag). + virtual void OnAccessibilityEnabledManually() = 0; + + // Called when screen reader client is detected. + virtual void OnScreenReaderDetected() = 0; + + // Returns true if the browser should be customized for accessibility. + virtual bool IsAccessibleBrowser() = 0; +}; + +#endif // CONTENT_PUBLIC_BROWSER_BROWSER_ACCESSIBILITY_STATE_H_ |