summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/accessibility/browser_accessibility_state_browsertest.cc30
-rw-r--r--chrome/chrome_tests.gypi1
-rw-r--r--content/browser/accessibility/browser_accessibility_state_impl.cc12
-rw-r--r--content/browser/accessibility/browser_accessibility_state_impl.h8
-rw-r--r--content/public/browser/browser_accessibility_state.h2
5 files changed, 46 insertions, 7 deletions
diff --git a/chrome/browser/accessibility/browser_accessibility_state_browsertest.cc b/chrome/browser/accessibility/browser_accessibility_state_browsertest.cc
new file mode 100644
index 0000000..f23f218
--- /dev/null
+++ b/chrome/browser/accessibility/browser_accessibility_state_browsertest.cc
@@ -0,0 +1,30 @@
+// Copyright (c) 2013 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/public/browser/browser_accessibility_state.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "chrome/test/base/uma_histogram_helper.h"
+
+namespace content {
+
+// Note: even though BrowserAccessibilityStateImpl is in content, this
+// test should be in Chrome because otherwise the Chrome-OS-specific
+// histograms won't get updated.
+class BrowserAccessibilityStateImplTest : public InProcessBrowserTest {
+};
+
+IN_PROC_BROWSER_TEST_F(BrowserAccessibilityStateImplTest, TestHistograms) {
+ UMAHistogramHelper histograms;
+
+ BrowserAccessibilityState::GetInstance()->UpdateHistogramsForTesting();
+ histograms.Fetch();
+ histograms.ExpectTotalCount("Accessibility.State", 1);
+#if defined(OS_WIN)
+ histograms.ExpectTotalCount("Accessibility.WinScreenReader", 1);
+#elif defined(OS_CHROMEOS)
+ histograms.ExpectTotalCount("Accessibility.CrosSpokenFeedback", 1);
+#endif
+}
+
+} // namespace content
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index 5073a8f..3624732 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -878,6 +878,7 @@
'app/chrome_dll_resource.h',
'app/chrome_version.rc.version',
'browser/accessibility/accessibility_extension_apitest.cc',
+ 'browser/accessibility/browser_accessibility_state_browsertest.cc',
'browser/app_controller_mac_browsertest.mm',
'browser/autocomplete/autocomplete_browsertest.cc',
'browser/autofill/autofill_browsertest.cc',
diff --git a/content/browser/accessibility/browser_accessibility_state_impl.cc b/content/browser/accessibility/browser_accessibility_state_impl.cc
index 2f6e0c3..3cb73fe 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl.cc
+++ b/content/browser/accessibility/browser_accessibility_state_impl.cc
@@ -50,12 +50,12 @@ BrowserAccessibilityStateImpl::BrowserAccessibilityStateImpl()
}
#if defined(OS_WIN)
- // On Windows, UpdateHistogram calls some system functions with unknown
+ // On Windows, UpdateHistograms calls some system functions with unknown
// runtime, so call it on the file thread to ensure there's no jank.
// Everything in that method must be safe to call on another thread.
BrowserThread::ID update_histogram_thread = BrowserThread::FILE;
#else
- // On all other platforms, UpdateHistogram should be called on the main
+ // On all other platforms, UpdateHistograms should be called on the main
// thread.
BrowserThread::ID update_histogram_thread = BrowserThread::UI;
#endif
@@ -65,7 +65,7 @@ BrowserAccessibilityStateImpl::BrowserAccessibilityStateImpl()
AddRef();
BrowserThread::PostDelayedTask(
update_histogram_thread, FROM_HERE,
- base::Bind(&BrowserAccessibilityStateImpl::UpdateHistogram, this),
+ base::Bind(&BrowserAccessibilityStateImpl::UpdateHistograms, this),
base::TimeDelta::FromSeconds(kAccessibilityHistogramDelaySecs));
}
@@ -94,7 +94,11 @@ void BrowserAccessibilityStateImpl::AddHistogramCallback(
histogram_callbacks_.push_back(callback);
}
-void BrowserAccessibilityStateImpl::UpdateHistogram() {
+void BrowserAccessibilityStateImpl::UpdateHistogramsForTesting() {
+ UpdateHistograms();
+}
+
+void BrowserAccessibilityStateImpl::UpdateHistograms() {
UpdatePlatformSpecificHistograms();
for (size_t i = 0; i < histogram_callbacks_.size(); ++i)
diff --git a/content/browser/accessibility/browser_accessibility_state_impl.h b/content/browser/accessibility/browser_accessibility_state_impl.h
index 40d99fd..46621ea 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl.h
+++ b/content/browser/accessibility/browser_accessibility_state_impl.h
@@ -45,9 +45,7 @@ class CONTENT_EXPORT BrowserAccessibilityStateImpl
virtual bool IsAccessibleBrowser() OVERRIDE;
virtual void AddHistogramCallback(base::Closure callback) 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();
+ virtual void UpdateHistogramsForTesting() OVERRIDE;
AccessibilityMode GetAccessibilityMode();
void SetAccessibilityMode(AccessibilityMode mode);
@@ -56,6 +54,10 @@ class CONTENT_EXPORT BrowserAccessibilityStateImpl
friend class base::RefCountedThreadSafe<BrowserAccessibilityStateImpl>;
friend struct DefaultSingletonTraits<BrowserAccessibilityStateImpl>;
+ // Called a short while after startup to allow time for the accessibility
+ // state to be determined. Updates histograms with the current state.
+ void UpdateHistograms();
+
// Leaky singleton, destructor generally won't be called.
virtual ~BrowserAccessibilityStateImpl();
diff --git a/content/public/browser/browser_accessibility_state.h b/content/public/browser/browser_accessibility_state.h
index 4c89f5a..16cf706 100644
--- a/content/public/browser/browser_accessibility_state.h
+++ b/content/public/browser/browser_accessibility_state.h
@@ -34,6 +34,8 @@ class CONTENT_EXPORT BrowserAccessibilityState {
// Use this to register a method to update additional accessibility
// histograms.
virtual void AddHistogramCallback(base::Closure callback) = 0;
+
+ virtual void UpdateHistogramsForTesting() = 0;
};
} // namespace content