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

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

Issue 145283003: Switch AccessibilityMode to be a bitmap (Closed) Base URL: https://chromium.googlesource.com/chromium/src@enable
Patch Set: Address dtseng's comments Created 6 years, 11 months 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 3dee7d62b33d46a055500af0e3ee6dd9d87508b0..1b3b9198ee47ab79c8435fd2f7bc79c8984917ec 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl.cc
+++ b/content/browser/accessibility/browser_accessibility_state_impl.cc
@@ -80,12 +80,12 @@ void BrowserAccessibilityStateImpl::OnScreenReaderDetected() {
switches::kDisableRendererAccessibility)) {
return;
}
- SetAccessibilityMode(AccessibilityModeComplete);
+ SetAccessibilityMode(accessibility_mode_ | AccessibilityModeComplete);
}
void BrowserAccessibilityStateImpl::EnableAccessibility() {
// We may want to do something different with this later.
- SetAccessibilityMode(AccessibilityModeComplete);
+ SetAccessibilityMode(accessibility_mode_ | AccessibilityModeComplete);
}
void BrowserAccessibilityStateImpl::DisableAccessibility() {
@@ -93,7 +93,8 @@ void BrowserAccessibilityStateImpl::DisableAccessibility() {
}
bool BrowserAccessibilityStateImpl::IsAccessibleBrowser() {
- return (accessibility_mode_ == AccessibilityModeComplete);
+ return ((accessibility_mode_ & AccessibilityModeComplete) ==
+ AccessibilityModeComplete);
}
void BrowserAccessibilityStateImpl::AddHistogramCallback(
@@ -124,8 +125,7 @@ void BrowserAccessibilityStateImpl::UpdatePlatformSpecificHistograms() {
}
#endif
-void BrowserAccessibilityStateImpl::SetAccessibilityMode(
- AccessibilityMode mode) {
+void BrowserAccessibilityStateImpl::SetAccessibilityMode(unsigned int mode) {
if (accessibility_mode_ == mode)
return;
accessibility_mode_ = mode;
@@ -145,4 +145,28 @@ void BrowserAccessibilityStateImpl::SetAccessibilityMode(
}
}
+void BrowserAccessibilityStateImpl::SetRendererAccessibilityMode(bool on) {
+ if (bool(accessibility_mode_ & AccessibilityModeFlagRenderer) == on)
David Tseng 2014/01/27 22:16:06 Got it; this still looks cryptic because of the ca
+ return;
+
+ if (on)
David Tseng 2014/01/27 22:16:06 Ditto; xor
aboxhall 2014/01/28 00:18:42 Done.
+ accessibility_mode_ |= AccessibilityModeFlagRenderer;
+ else
+ accessibility_mode_ &= (~AccessibilityModeFlagRenderer);
+ // Iterate over all RenderWidgetHosts, even swapped out ones in case
David Tseng 2014/01/27 22:16:06 Why not just call through to SetAccessibilityMode
aboxhall 2014/01/28 00:18:42 Done, that's much better.
+ // they become active again.
+ scoped_ptr<RenderWidgetHostIterator> widgets(
+ RenderWidgetHostImpl::GetAllRenderWidgetHosts());
+ while (RenderWidgetHost* widget = widgets->GetNextHost()) {
+ // Ignore processes that don't have a connection, such as crashed tabs.
+ if (!widget->GetProcess()->HasConnection())
+ continue;
+ if (!widget->IsRenderView())
+ continue;
+
+ RenderWidgetHostImpl::From(widget)
+ ->SetAccessibilityMode(accessibility_mode_);
+ }
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698