Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(552)

Unified Diff: content/browser/accessibility/browser_accessibility_state_impl.cc

Issue 2581483002: Add support for faster, more limited accessibility modes. (Closed)
Patch Set: Address feedback from Ilya Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility_state_impl.cc
diff --git a/content/browser/accessibility/browser_accessibility_state_impl.cc b/content/browser/accessibility/browser_accessibility_state_impl.cc
index 4c50bb32dd2fa96194868c70b952b22f6f582039..45afab9dc5dae11f077eac5a9f7816caf7a19a07 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl.cc
+++ b/content/browser/accessibility/browser_accessibility_state_impl.cc
@@ -17,8 +17,30 @@
namespace content {
+// IMPORTANT!
+// These values are written to logs. Do not renumber or delete
+// existing items; add new entries to the end of the list.
+enum ModeFlagHistogramValue {
+ UMA_AX_MODE_FLAG_NATIVE_APIS = 0,
+ UMA_AX_MODE_FLAG_WEB_CONTENTS = 1,
+ UMA_AX_MODE_FLAG_INLINE_TEXT_BOXES = 2,
+ UMA_AX_MODE_FLAG_SCREEN_READER = 3,
+ UMA_AX_MODE_FLAG_HTML = 4,
+
+ // This must always be the last enum. It's okay for its value to
+ // increase, but none of the other enum values may change.
+ UMA_AX_MODE_FLAG_MAX
+};
+
+// Record a histograms for an accessibility mode when it's enabled.
+void RecordNewAccessibilityModeFlags(ModeFlagHistogramValue mode_flag) {
+ UMA_HISTOGRAM_ENUMERATION("Accessibility.ModeFlag",
+ mode_flag,
+ UMA_AX_MODE_FLAG_MAX);
+}
+
// Update the accessibility histogram 45 seconds after initialization.
-static const int kAccessibilityHistogramDelaySecs = 45;
+static const int ACCESSIBILITY_HISTOGRAM_DELAY_SECS = 45;
// static
BrowserAccessibilityState* BrowserAccessibilityState::GetInstance() {
@@ -54,7 +76,7 @@ BrowserAccessibilityStateImpl::BrowserAccessibilityStateImpl()
BrowserThread::PostDelayedTask(
update_histogram_thread, FROM_HERE,
base::Bind(&BrowserAccessibilityStateImpl::UpdateHistograms, this),
- base::TimeDelta::FromSeconds(kAccessibilityHistogramDelaySecs));
+ base::TimeDelta::FromSeconds(ACCESSIBILITY_HISTOGRAM_DELAY_SECS));
}
BrowserAccessibilityStateImpl::~BrowserAccessibilityStateImpl() {
@@ -133,7 +155,24 @@ void BrowserAccessibilityStateImpl::AddAccessibilityModeFlags(
return;
}
+ AccessibilityMode previous_mode = accessibility_mode_;
accessibility_mode_ |= mode;
+ if (accessibility_mode_ == previous_mode)
+ return;
+
+ // Retrieve only newly added modes for the purposes of logging.
+ AccessibilityMode new_mode_flags = accessibility_mode_ & (~previous_mode);
+ if (new_mode_flags & ACCESSIBILITY_MODE_FLAG_NATIVE_APIS)
+ RecordNewAccessibilityModeFlags(UMA_AX_MODE_FLAG_NATIVE_APIS);
+ if (new_mode_flags & ACCESSIBILITY_MODE_FLAG_WEB_CONTENTS)
+ RecordNewAccessibilityModeFlags(UMA_AX_MODE_FLAG_WEB_CONTENTS);
+ if (new_mode_flags & ACCESSIBILITY_MODE_FLAG_INLINE_TEXT_BOXES)
+ RecordNewAccessibilityModeFlags(UMA_AX_MODE_FLAG_INLINE_TEXT_BOXES);
+ if (new_mode_flags & ACCESSIBILITY_MODE_FLAG_SCREEN_READER)
+ RecordNewAccessibilityModeFlags(UMA_AX_MODE_FLAG_SCREEN_READER);
+ if (new_mode_flags & ACCESSIBILITY_MODE_FLAG_HTML)
+ RecordNewAccessibilityModeFlags(UMA_AX_MODE_FLAG_HTML);
+
std::vector<WebContentsImpl*> web_contents_vector =
WebContentsImpl::GetAllWebContents();
for (size_t i = 0; i < web_contents_vector.size(); ++i)

Powered by Google App Engine
This is Rietveld 408576698