| 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 fcd5ba5e8e8408f6efb2c273382f173031b1044f..7518ba95d059981ec09bc10301bae5654625215b 100644
|
| --- a/content/browser/accessibility/browser_accessibility_state_impl.cc
|
| +++ b/content/browser/accessibility/browser_accessibility_state_impl.cc
|
| @@ -21,22 +21,21 @@ namespace content {
|
| // 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,
|
| + UMA_AX_MODE_NATIVE_APIS = 0,
|
| + UMA_AX_MODE_WEB_CONTENTS = 1,
|
| + UMA_AX_MODE_INLINE_TEXT_BOXES = 2,
|
| + UMA_AX_MODE_SCREEN_READER = 3,
|
| + UMA_AX_MODE_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
|
| + UMA_AX_MODE_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);
|
| + UMA_HISTOGRAM_ENUMERATION("Accessibility.ModeFlag", mode_flag,
|
| + UMA_AX_MODE_MAX);
|
| }
|
|
|
| // Update the accessibility histogram 45 seconds after initialization.
|
| @@ -56,7 +55,7 @@ BrowserAccessibilityStateImpl* BrowserAccessibilityStateImpl::GetInstance() {
|
|
|
| BrowserAccessibilityStateImpl::BrowserAccessibilityStateImpl()
|
| : BrowserAccessibilityState(),
|
| - accessibility_mode_(AccessibilityModeOff),
|
| + accessibility_mode_(AccessibilityMode::kOff),
|
| disable_hot_tracking_(false) {
|
| ResetAccessibilityModeValue();
|
| #if defined(OS_WIN)
|
| @@ -91,7 +90,11 @@ void BrowserAccessibilityStateImpl::OnScreenReaderDetected() {
|
| }
|
|
|
| void BrowserAccessibilityStateImpl::EnableAccessibility() {
|
| - AddAccessibilityModeFlags(ACCESSIBILITY_MODE_COMPLETE);
|
| + AccessibilityMode complete_mode(
|
| + AccessibilityMode::kNativeAPIs | AccessibilityMode::kWebContents |
|
| + AccessibilityMode::kInlineTextBoxes | AccessibilityMode::kScreenReader |
|
| + AccessibilityMode::kHTML);
|
| + AddAccessibilityModeFlags(complete_mode);
|
| }
|
|
|
| void BrowserAccessibilityStateImpl::DisableAccessibility() {
|
| @@ -99,10 +102,14 @@ void BrowserAccessibilityStateImpl::DisableAccessibility() {
|
| }
|
|
|
| void BrowserAccessibilityStateImpl::ResetAccessibilityModeValue() {
|
| - accessibility_mode_ = AccessibilityModeOff;
|
| + accessibility_mode_ = AccessibilityMode::kOff;
|
| if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kForceRendererAccessibility)) {
|
| - accessibility_mode_ = ACCESSIBILITY_MODE_COMPLETE;
|
| + accessibility_mode_.set_mode(
|
| + AccessibilityMode::kNativeAPIs | AccessibilityMode::kWebContents |
|
| + AccessibilityMode::kInlineTextBoxes |
|
| + AccessibilityMode::kScreenReader | AccessibilityMode::kHTML,
|
| + true);
|
| }
|
| }
|
|
|
| @@ -116,8 +123,10 @@ void BrowserAccessibilityStateImpl::ResetAccessibilityMode() {
|
| }
|
|
|
| bool BrowserAccessibilityStateImpl::IsAccessibleBrowser() {
|
| - return ((accessibility_mode_ & ACCESSIBILITY_MODE_COMPLETE) ==
|
| - ACCESSIBILITY_MODE_COMPLETE);
|
| + return accessibility_mode_.has_mode(
|
| + AccessibilityMode::kNativeAPIs | AccessibilityMode::kWebContents |
|
| + AccessibilityMode::kInlineTextBoxes | AccessibilityMode::kScreenReader |
|
| + AccessibilityMode::kHTML);
|
| }
|
|
|
| void BrowserAccessibilityStateImpl::AddHistogramCallback(
|
| @@ -164,17 +173,17 @@ void BrowserAccessibilityStateImpl::AddAccessibilityModeFlags(
|
| 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);
|
| + int new_mode_flags = mode.get_mode() & (~previous_mode.get_mode());
|
| + if (new_mode_flags & AccessibilityMode::kNativeAPIs)
|
| + RecordNewAccessibilityModeFlags(UMA_AX_MODE_NATIVE_APIS);
|
| + if (new_mode_flags & AccessibilityMode::kWebContents)
|
| + RecordNewAccessibilityModeFlags(UMA_AX_MODE_WEB_CONTENTS);
|
| + if (new_mode_flags & AccessibilityMode::kInlineTextBoxes)
|
| + RecordNewAccessibilityModeFlags(UMA_AX_MODE_INLINE_TEXT_BOXES);
|
| + if (new_mode_flags & AccessibilityMode::kScreenReader)
|
| + RecordNewAccessibilityModeFlags(UMA_AX_MODE_SCREEN_READER);
|
| + if (new_mode_flags & AccessibilityMode::kHTML)
|
| + RecordNewAccessibilityModeFlags(UMA_AX_MODE_HTML);
|
|
|
| std::vector<WebContentsImpl*> web_contents_vector =
|
| WebContentsImpl::GetAllWebContents();
|
| @@ -186,11 +195,17 @@ void BrowserAccessibilityStateImpl::RemoveAccessibilityModeFlags(
|
| AccessibilityMode mode) {
|
| if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kForceRendererAccessibility) &&
|
| - mode == ACCESSIBILITY_MODE_COMPLETE) {
|
| + mode.has_mode(
|
| + AccessibilityMode::kNativeAPIs | AccessibilityMode::kWebContents |
|
| + AccessibilityMode::kInlineTextBoxes |
|
| + AccessibilityMode::kScreenReader | AccessibilityMode::kHTML)) {
|
| return;
|
| }
|
|
|
| - accessibility_mode_ = accessibility_mode_ ^ (mode & accessibility_mode_);
|
| + int raw_flags = accessibility_mode_.get_mode() ^
|
| + (mode.get_mode() & accessibility_mode_.get_mode());
|
| + accessibility_mode_ = raw_flags;
|
| +
|
| std::vector<WebContentsImpl*> web_contents_vector =
|
| WebContentsImpl::GetAllWebContents();
|
| for (size_t i = 0; i < web_contents_vector.size(); ++i)
|
|
|