| Index: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| index d71649d625a40cc0fd81e60771119e3355d91a24..e4a89d29114e631e9d2c7138c2b59adefc607540 100644
|
| --- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| +++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| @@ -31,6 +31,7 @@ import android.view.Window;
|
| import android.view.WindowManager;
|
| import android.view.accessibility.AccessibilityEvent;
|
| import android.view.accessibility.AccessibilityNodeInfo;
|
| +import android.view.accessibility.AccessibilityNodeProvider;
|
| import android.view.inputmethod.EditorInfo;
|
| import android.view.inputmethod.InputConnection;
|
| import android.view.inputmethod.InputMethodManager;
|
| @@ -44,6 +45,7 @@ import org.chromium.base.WeakContext;
|
| import org.chromium.content.R;
|
| import org.chromium.content.browser.ContentViewGestureHandler.MotionEventDelegate;
|
| import org.chromium.content.browser.accessibility.AccessibilityInjector;
|
| +import org.chromium.content.browser.accessibility.BrowserAccessibilityManager;
|
| import org.chromium.content.browser.input.AdapterInputConnection;
|
| import org.chromium.content.browser.input.HandleView;
|
| import org.chromium.content.browser.input.ImeAdapter;
|
| @@ -360,6 +362,9 @@ public class ContentViewCore implements MotionEventDelegate, NavigationClient {
|
|
|
| private ViewAndroid mViewAndroid;
|
|
|
| + // Handles native accessibility, i.e. without any script injection.
|
| + private BrowserAccessibilityManager mBrowserAccessibilityManager;
|
| +
|
| /**
|
| * Constructs a new ContentViewCore. Embedders must call initialize() after constructing
|
| * a ContentViewCore and before using it.
|
| @@ -624,7 +629,7 @@ public class ContentViewCore implements MotionEventDelegate, NavigationClient {
|
| initializeContainerView(internalDispatcher, inputEventDeliveryMode);
|
|
|
| mAccessibilityInjector = AccessibilityInjector.newInstance(this);
|
| - mAccessibilityInjector.addOrRemoveAccessibilityApisIfNecessary();
|
| + //mAccessibilityInjector.addOrRemoveAccessibilityApisIfNecessary();
|
|
|
| String contentDescription = "Web View";
|
| if (R.string.accessibility_content_view == 0) {
|
| @@ -1074,7 +1079,7 @@ public class ContentViewCore implements MotionEventDelegate, NavigationClient {
|
| * Reload the current page.
|
| */
|
| public void reload() {
|
| - mAccessibilityInjector.addOrRemoveAccessibilityApisIfNecessary();
|
| + //mAccessibilityInjector.addOrRemoveAccessibilityApisIfNecessary();
|
| if (mNativeContentViewCore != 0) nativeReload(mNativeContentViewCore);
|
| }
|
|
|
| @@ -1634,6 +1639,16 @@ public class ContentViewCore implements MotionEventDelegate, NavigationClient {
|
| }
|
|
|
| /**
|
| + * @see View#dispatchHoverEvent(MotionEvent)
|
| + */
|
| + public boolean dispatchHoverEvent(MotionEvent event) {
|
| + if (mBrowserAccessibilityManager != null)
|
| + return mBrowserAccessibilityManager.dispatchHoverEvent(event);
|
| + else
|
| + return false; // TODO: call super on ContentView's dispatchHoverEvent?
|
| + }
|
| +
|
| + /**
|
| * @see View#scrollBy(int, int)
|
| * Currently the ContentView scrolling happens in the native side. In
|
| * the Java view system, it is always pinned at (0, 0). scrollBy() and scrollTo()
|
| @@ -2167,6 +2182,7 @@ public class ContentViewCore implements MotionEventDelegate, NavigationClient {
|
| controlsOffsetPix, contentOffsetYPix, overdrawBottomHeightPix);
|
|
|
| mPendingRendererFrame = true;
|
| + mBrowserAccessibilityManager.notifyFrameInfoInitialized();
|
| }
|
|
|
| @SuppressWarnings("unused")
|
| @@ -2569,17 +2585,34 @@ public class ContentViewCore implements MotionEventDelegate, NavigationClient {
|
| * the super {@link View} class.
|
| */
|
| public boolean performAccessibilityAction(int action, Bundle arguments) {
|
| + /*
|
| if (mAccessibilityInjector.supportsAccessibilityAction(action)) {
|
| return mAccessibilityInjector.performAccessibilityAction(action, arguments);
|
| - }
|
| + }*/
|
|
|
| return false;
|
| }
|
|
|
| + public void setBrowserAccessibilityManager(BrowserAccessibilityManager manager) {
|
| + mBrowserAccessibilityManager = manager;
|
| + }
|
| +
|
| + public BrowserAccessibilityManager getBrowserAccessibilityManager() {
|
| + return mBrowserAccessibilityManager;
|
| + }
|
| +
|
| + /**
|
| + * @see View#getAccessibilityNodeProvider(View host)
|
| + */
|
| + public AccessibilityNodeProvider getAccessibilityNodeProvider(View host) {
|
| + return mBrowserAccessibilityManager;
|
| + }
|
| +
|
| /**
|
| * @see View#onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo)
|
| */
|
| public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
|
| + // Note: this is only used by the script-injecting accessibility code.
|
| mAccessibilityInjector.onInitializeAccessibilityNodeInfo(info);
|
| }
|
|
|
| @@ -2587,6 +2620,7 @@ public class ContentViewCore implements MotionEventDelegate, NavigationClient {
|
| * @see View#onInitializeAccessibilityEvent(AccessibilityEvent)
|
| */
|
| public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
|
| + // Note: this is only used by the script-injecting accessibility code.
|
| event.setClassName(this.getClass().getName());
|
|
|
| // Identify where the top-left of the screen currently points to.
|
|
|