Chromium Code Reviews| 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 6d63ded0c148b0b4c088d373b9af02707346af15..54ad7171810080c1d4434793253717ebb4deec92 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 |
| @@ -35,8 +35,6 @@ import java.util.Locale; |
| */ |
| @JNINamespace("content") |
| public class BrowserAccessibilityManager { |
| - private static final String TAG = "BrowserAccessibilityManager"; |
|
dmazzoni
2017/03/29 17:28:43
Why is this deleted?
csashi
2017/03/29 18:26:27
It was not used. I can add it back if the conventi
|
| - |
| // Constants from AccessibilityNodeInfo defined in the K SDK. |
| private static final int ACTION_COLLAPSE = 0x00080000; |
| private static final int ACTION_EXPAND = 0x00040000; |
| @@ -75,6 +73,7 @@ public class BrowserAccessibilityManager { |
| private int mSelectionEndIndex; |
| protected int mAccessibilityFocusId; |
| private Runnable mSendWindowContentChangedRunnable; |
| + private View mAutofillPopupView; |
| /** |
| * Create a BrowserAccessibilityManager object, which is owned by the C++ |
| @@ -162,7 +161,6 @@ public class BrowserAccessibilityManager { |
| if (!mAccessibilityManager.isEnabled() || mNativeObj == 0) { |
| return null; |
| } |
| - |
| int rootId = nativeGetRootId(mNativeObj); |
| if (virtualViewId == View.NO_ID) { |
| @@ -221,7 +219,6 @@ public class BrowserAccessibilityManager { |
| switch (action) { |
| case AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS: |
| if (!moveAccessibilityFocusToId(virtualViewId)) return true; |
| - |
| if (!mIsHovering) { |
| nativeScrollToMakeNodeVisible( |
| mNativeObj, mAccessibilityFocusId); |
| @@ -357,6 +354,20 @@ public class BrowserAccessibilityManager { |
| return false; |
| } |
| + public void onAutofillPopupDisplayed(View autofillPopupView) { |
| + if (mAccessibilityManager.isEnabled() && mNativeObj != 0) { |
| + mAutofillPopupView = autofillPopupView; |
| + nativeOnAutofillPopupDisplayed(mNativeObj); |
| + } |
| + } |
| + |
| + public void onAutofillPopupDismissed() { |
| + if (mAccessibilityManager.isEnabled() && mNativeObj != 0) { |
| + nativeOnAutofillPopupDismissed(mNativeObj); |
| + mAutofillPopupView = null; |
| + } |
| + } |
| + |
| /** |
| * @see View#onHoverEvent(MotionEvent) |
| */ |
| @@ -543,6 +554,8 @@ public class BrowserAccessibilityManager { |
| // for the whole subtree of the root. |
| if (mAccessibilityFocusId == mCurrentRootId) { |
| nativeSetAccessibilityFocus(mNativeObj, -1); |
| + } else if (nativeIsAutofillPopupNode(mNativeObj, mAccessibilityFocusId)) { |
| + mAutofillPopupView.requestFocus(); |
| } else { |
| nativeSetAccessibilityFocus(mNativeObj, mAccessibilityFocusId); |
| } |
| @@ -561,7 +574,6 @@ public class BrowserAccessibilityManager { |
| AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED); |
| mAccessibilityFocusId = View.NO_ID; |
| } |
| - |
| moveAccessibilityFocusToId(newAccessibilityFocusId); |
| } |
| @@ -1162,8 +1174,14 @@ public class BrowserAccessibilityManager { |
| Settings.Secure.ACCESSIBILITY_SPEAK_PASSWORD, 0) == 1); |
| } |
| + private native void nativeOnAutofillPopupDisplayed( |
| + long nativeBrowserAccessibilityManagerAndroid); |
| + private native void nativeOnAutofillPopupDismissed( |
| + long nativeBrowserAccessibilityManagerAndroid); |
| private native int nativeGetRootId(long nativeBrowserAccessibilityManagerAndroid); |
| private native boolean nativeIsNodeValid(long nativeBrowserAccessibilityManagerAndroid, int id); |
| + private native boolean nativeIsAutofillPopupNode( |
| + long nativeBrowserAccessibilityManagerAndroid, int id); |
| private native boolean nativeIsEditableText( |
| long nativeBrowserAccessibilityManagerAndroid, int id); |
| private native boolean nativeIsFocused( |