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

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

Issue 2762123006: Android Autofill Accessibility, Phase I (Closed)
Patch Set: Move kAndroidAutofillAccessibility feature under OS_ANDROID. Created 3 years, 9 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
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";
-
// 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(
« no previous file with comments | « content/browser/accessibility/browser_accessibility_manager_android.cc ('k') | content/public/common/content_features.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698