Chromium Code Reviews| Index: android_webview/java/src/org/chromium/android_webview/AwContents.java |
| diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java |
| index 9ebbb5b57ef8576cac1111b73192d98c93ad29ca..4ac036c913bb9fba2d0cfe06421fc56201ef3c86 100644 |
| --- a/android_webview/java/src/org/chromium/android_webview/AwContents.java |
| +++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java |
| @@ -30,6 +30,7 @@ import android.os.SystemClock; |
| import android.text.TextUtils; |
| import android.util.Base64; |
| import android.util.Pair; |
| +import android.util.SparseArray; |
| import android.view.DragEvent; |
| import android.view.KeyEvent; |
| import android.view.MotionEvent; |
| @@ -57,6 +58,7 @@ import org.chromium.base.VisibleForTesting; |
| import org.chromium.base.annotations.CalledByNative; |
| import org.chromium.base.annotations.JNINamespace; |
| import org.chromium.base.annotations.SuppressFBWarnings; |
| +import org.chromium.components.autofill.AutofillProvider; |
| import org.chromium.components.navigation_interception.InterceptNavigationDelegate; |
| import org.chromium.components.navigation_interception.NavigationParams; |
| import org.chromium.content.browser.AppWebMessagePort; |
| @@ -245,6 +247,10 @@ public class AwContents implements SmartClipProvider { |
| AwScrollOffsetManager.Delegate delegate) { |
| return new AwScrollOffsetManager(delegate); |
| } |
| + |
| + public AutofillProvider createAutofillProvider(Context context, ViewGroup containerView) { |
| + return null; |
| + } |
| } |
| /** |
| @@ -362,6 +368,8 @@ public class AwContents implements SmartClipProvider { |
| // Do not use directly, call isNoOperation() instead. |
| private boolean mIsNoOperation; |
| + private AutofillProvider mAutofillProvider; |
| + |
| private static String sCurrentLocales = ""; |
| private Paint mPaintForNWorkaround; |
| @@ -751,6 +759,7 @@ public class AwContents implements SmartClipProvider { |
| mHandler = new Handler(); |
| mContext = context; |
| + mAutofillProvider = dependencyFactory.createAutofillProvider(context, mContainerView); |
| mAppTargetSdkVersion = mContext.getApplicationInfo().targetSdkVersion; |
| mInternalAccessAdapter = internalAccessAdapter; |
| mNativeDrawGLFunctorFactory = nativeDrawGLFunctorFactory; |
| @@ -960,6 +969,7 @@ public class AwContents implements SmartClipProvider { |
| awViewMethodsImpl.onWindowFocusChanged(mContainerView.hasWindowFocus()); |
| awViewMethodsImpl.onFocusChanged(mContainerView.hasFocus(), 0, null); |
| mContainerView.requestLayout(); |
| + if (mAutofillProvider != null) mAutofillProvider.onContainerViewChanged(mContainerView); |
| } |
| // This class destroys the WindowAndroid when after it is gc-ed. |
| @@ -2339,6 +2349,19 @@ public class AwContents implements SmartClipProvider { |
| mContentViewCore.onProvideVirtualStructure(structure, true); |
| } |
| + public void onProvideAutoFillVirtualStructure(ViewStructure structure, int flags) { |
| + if (mAutofillProvider != null) { |
| + mAutofillProvider.onProvideAutoFillVirtualStructure( |
| + nativeGetAutofillProvider(mNativeAwContents), structure, flags); |
| + } |
| + } |
| + |
| + public void autofill(final SparseArray<String> values) { |
| + if (mAutofillProvider != null) { |
| + mAutofillProvider.autofill(nativeGetAutofillProvider(mNativeAwContents), values); |
| + } |
| + } |
| + |
| public boolean isSelectActionModeAllowed(int actionModeItem) { |
| return (mSettings.getDisabledActionModeMenuItems() & actionModeItem) != actionModeItem; |
| } |
| @@ -2891,6 +2914,11 @@ public class AwContents implements SmartClipProvider { |
| client.init(mContentViewCore); |
| } |
| + @CalledByNative |
| + private AutofillProvider getAutofillProvider() { |
|
sgurun-gerrit only
2017/05/11 00:13:29
let's use -the well established- nativeSetJavaPeer
michaelbai
2017/05/12 00:37:23
Done.
|
| + return mAutofillProvider; |
| + } |
| + |
| @CalledByNative |
| private void didOverscroll(int deltaX, int deltaY, float velocityX, float velocityY) { |
| mScrollOffsetManager.overScrollBy(deltaX, deltaY); |
| @@ -3489,4 +3517,6 @@ public class AwContents implements SmartClipProvider { |
| private native void nativeGrantFileSchemeAccesstoChildProcess(long nativeAwContents); |
| private native void nativeResumeLoadingCreatedPopupWebContents(long nativeAwContents); |
| + |
| + private native long nativeGetAutofillProvider(long nativeAwContents); |
| } |