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

Unified Diff: content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java

Issue 290633002: Implement Android accessible hit testing using an IPC to the renderer process. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@better_logging_2
Patch Set: Remove unused function Created 6 years, 7 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
« no previous file with comments | « content/content_tests.gypi ('k') | content/renderer/accessibility/renderer_accessibility_complete.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
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 63deca865b67ba0a772f2fce6225320f780b215b..6f4723369ce1bc00f9f45a8435c8beebc875c66f 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
@@ -248,18 +248,12 @@ public class BrowserAccessibilityManager {
float y = event.getY();
// Convert to CSS coordinates.
- int cssX = (int) (mRenderCoordinates.fromPixToLocalCss(x) +
- mRenderCoordinates.getScrollX());
- int cssY = (int) (mRenderCoordinates.fromPixToLocalCss(y) +
- mRenderCoordinates.getScrollY());
- int id = nativeHitTest(mNativeObj, cssX, cssY);
- if (mLastHoverId != id) {
- // Always send the ENTER and then the EXIT event, to match a standard Android View.
- sendAccessibilityEvent(id, AccessibilityEvent.TYPE_VIEW_HOVER_ENTER);
- sendAccessibilityEvent(mLastHoverId, AccessibilityEvent.TYPE_VIEW_HOVER_EXIT);
- mLastHoverId = id;
- }
+ int cssX = (int) (mRenderCoordinates.fromPixToLocalCss(x));
+ int cssY = (int) (mRenderCoordinates.fromPixToLocalCss(y));
+ // This sends an IPC to the render process to do the hit testing.
+ // The response is handled by handleHover.
+ nativeHitTest(mNativeObj, cssX, cssY);
return true;
}
@@ -441,6 +435,16 @@ public class BrowserAccessibilityManager {
}
@CalledByNative
+ private void handleHover(int id) {
+ if (mLastHoverId == id) return;
+
+ // Always send the ENTER and then the EXIT event, to match a standard Android View.
+ sendAccessibilityEvent(id, AccessibilityEvent.TYPE_VIEW_HOVER_ENTER);
+ sendAccessibilityEvent(mLastHoverId, AccessibilityEvent.TYPE_VIEW_HOVER_EXIT);
+ mLastHoverId = id;
+ }
+
+ @CalledByNative
private void announceLiveRegionText(String text) {
mView.announceForAccessibility(text);
}
@@ -682,7 +686,7 @@ public class BrowserAccessibilityManager {
private native int nativeGetRootId(long nativeBrowserAccessibilityManagerAndroid);
private native boolean nativeIsNodeValid(long nativeBrowserAccessibilityManagerAndroid, int id);
- private native int nativeHitTest(long nativeBrowserAccessibilityManagerAndroid, int x, int y);
+ private native void nativeHitTest(long nativeBrowserAccessibilityManagerAndroid, int x, int y);
private native boolean nativePopulateAccessibilityNodeInfo(
long nativeBrowserAccessibilityManagerAndroid, AccessibilityNodeInfo info, int id);
private native boolean nativePopulateAccessibilityEvent(
« no previous file with comments | « content/content_tests.gypi ('k') | content/renderer/accessibility/renderer_accessibility_complete.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698