| 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(
|
|
|