summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content/browser/accessibility/browser_accessibility_state.cc27
-rw-r--r--content/browser/accessibility/browser_accessibility_state.h15
-rw-r--r--content/browser/renderer_host/render_widget_host.cc10
3 files changed, 43 insertions, 9 deletions
diff --git a/content/browser/accessibility/browser_accessibility_state.cc b/content/browser/accessibility/browser_accessibility_state.cc
index 45b3a3b..bb277b7 100644
--- a/content/browser/accessibility/browser_accessibility_state.cc
+++ b/content/browser/accessibility/browser_accessibility_state.cc
@@ -5,9 +5,19 @@
#include "content/browser/accessibility/browser_accessibility_state.h"
#include "base/memory/singleton.h"
+#include "base/metrics/histogram.h"
+#include "base/timer.h"
+
+// Update the accessibility histogram 45 seconds after initialization.
+static const int kAccessibilityHistogramDelaySecs = 45;
BrowserAccessibilityState::BrowserAccessibilityState()
- : screen_reader_active_(false) {
+ : accessibility_enabled_(false) {
+ update_histogram_timer_.Start(
+ FROM_HERE,
+ base::TimeDelta::FromSeconds(kAccessibilityHistogramDelaySecs),
+ this,
+ &BrowserAccessibilityState::UpdateHistogram);
}
BrowserAccessibilityState::~BrowserAccessibilityState() {
@@ -19,9 +29,20 @@ BrowserAccessibilityState* BrowserAccessibilityState::GetInstance() {
}
void BrowserAccessibilityState::OnScreenReaderDetected() {
- screen_reader_active_ = true;
+ accessibility_enabled_ = true;
+}
+
+void BrowserAccessibilityState::OnAccessibilityEnabledManually() {
+ // We may want to do something different with this later.
+ accessibility_enabled_ = true;
}
bool BrowserAccessibilityState::IsAccessibleBrowser() {
- return screen_reader_active_;
+ return accessibility_enabled_;
+}
+
+void BrowserAccessibilityState::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.h
index 62e19eb..c0e2048 100644
--- a/content/browser/accessibility/browser_accessibility_state.h
+++ b/content/browser/accessibility/browser_accessibility_state.h
@@ -7,6 +7,7 @@
#pragma once
#include "base/basictypes.h"
+#include "base/timer.h"
#include "content/common/content_export.h"
template <typename T> struct DefaultSingletonTraits;
@@ -35,18 +36,28 @@ class CONTENT_EXPORT BrowserAccessibilityState {
~BrowserAccessibilityState();
+ // 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();
+ // 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>;
- // Set to true when a screen reader client is detected.
- bool screen_reader_active_;
+ // 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_;
DISALLOW_COPY_AND_ASSIGN(BrowserAccessibilityState);
};
diff --git a/content/browser/renderer_host/render_widget_host.cc b/content/browser/renderer_host/render_widget_host.cc
index 4a64feb..bb1d5ba 100644
--- a/content/browser/renderer_host/render_widget_host.cc
+++ b/content/browser/renderer_host/render_widget_host.cc
@@ -10,7 +10,6 @@
#include "base/i18n/rtl.h"
#include "base/message_loop.h"
#include "base/metrics/histogram.h"
-#include "base/metrics/stats_counters.h"
#include "base/utf_string_conversions.h"
#include "content/browser/accessibility/browser_accessibility_state.h"
#include "content/browser/gpu/gpu_process_host.h"
@@ -110,9 +109,13 @@ RenderWidgetHost::RenderWidgetHost(RenderProcessHost* process,
// tell the process host that we're alive.
process_->WidgetRestored();
+ // Enable accessibility if it was manually specified or if it was
+ // auto-detected.
if (CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kForceRendererAccessibility) ||
- BrowserAccessibilityState::GetInstance()->IsAccessibleBrowser()) {
+ switches::kForceRendererAccessibility)) {
+ BrowserAccessibilityState::GetInstance()->OnAccessibilityEnabledManually();
+ EnableRendererAccessibility();
+ } else if (BrowserAccessibilityState::GetInstance()->IsAccessibleBrowser()) {
EnableRendererAccessibility();
}
}
@@ -1267,7 +1270,6 @@ void RenderWidgetHost::EnableRendererAccessibility() {
return;
}
- SIMPLE_STATS_COUNTER("Accessibility.SessionCount");
renderer_accessible_ = true;
if (process_->HasConnection()) {