Cherry-pick "Send Android accessibility "content changed" event for any change"
Bug 10462111
Taken from unsubmitted https://codereview.chromium.org/23481011/ PS1
https://codereview.chromium.org/download/issue23481011_1.diff and
manually resolved.
Original change:
Send Android accessibility "content changed" event for any change.
Specifically, AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED should
be fired on the appropriate node any time the accessibility tree changes
- previously we were only firing it in a few circumstances. That
guarantees
tools like uiautomatorviewer won't see a stale accessibility tree.
BUG=286374
Change-Id: I53c337bb383dabe92625bb99d84d593f78800cf3
diff --git a/content/browser/accessibility/browser_accessibility_manager_android.cc b/content/browser/accessibility/browser_accessibility_manager_android.cc
index e14aa0b..2da686a 100644
--- a/content/browser/accessibility/browser_accessibility_manager_android.cc
+++ b/content/browser/accessibility/browser_accessibility_manager_android.cc
@@ -90,6 +90,12 @@
if (obj.is_null())
return;
+ // Always send AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED to notify
+ // the Android system that the accessibility hierarchy rooted at this
+ // node has changed.
+ Java_BrowserAccessibilityManager_handleContentChanged(
+ env, obj.obj(), node->renderer_id());
+
switch (type) {
case AccessibilityNotificationLoadComplete:
Java_BrowserAccessibilityManager_handlePageLoaded(
@@ -131,9 +137,6 @@
if (node->IsEditableText()) {
Java_BrowserAccessibilityManager_handleEditableTextChanged(
env, obj.obj(), node->renderer_id());
- } else {
- Java_BrowserAccessibilityManager_handleContentChanged(
- env, obj.obj(), node->renderer_id());
}
break;
default:
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
index f03ba9b..2180b48 100644
--- a/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
+++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
@@ -268,13 +268,11 @@
@CalledByNative
private void handleTextSelectionChanged(int id) {
- sendAccessibilityEvent(id, AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
sendAccessibilityEvent(id, AccessibilityEvent.TYPE_VIEW_TEXT_SELECTION_CHANGED);
}
@CalledByNative
private void handleEditableTextChanged(int id) {
- sendAccessibilityEvent(id, AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
sendAccessibilityEvent(id, AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED);
}