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

Unified Diff: components/autofill/android/java/src/org/chromium/components/autofill/AutofillProvider.java

Issue 2745803003: autofill-try
Patch Set: autofill-try Created 3 years, 7 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: components/autofill/android/java/src/org/chromium/components/autofill/AutofillProvider.java
diff --git a/components/autofill/android/java/src/org/chromium/components/autofill/AutofillProvider.java b/components/autofill/android/java/src/org/chromium/components/autofill/AutofillProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef2569cc088e5b02c0872895a123253d279ee930
--- /dev/null
+++ b/components/autofill/android/java/src/org/chromium/components/autofill/AutofillProvider.java
@@ -0,0 +1,120 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.components.autofill;
+
+import android.util.SparseArray;
+import android.view.ViewGroup;
+import android.view.ViewStructure;
+
+import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.annotations.JNINamespace;
+import org.chromium.content_public.browser.WebContents;
+
+/**
+ * This class defines interface of AutofillProvider, it doesn't use chrome's
+ * autofill service or suggestion UI, instead, uses third party autofill service
+ * by knowing of format structure and user's input.
+ *
+ * AutofillProvider handles one autofill session at time, each call of
+ * queryFormFieldAutofill cancels previous session and starts a new one, the
+ * calling of other methods shall associate with current session.
+ *
+ */
+@JNINamespace("autofill")
+public abstract class AutofillProvider {
+ public AutofillProvider() {}
+
+ /**
+ * Invoked when container view is changed.
+ *
+ * @param containerView new container view.
+ */
+ public abstract void onContainerViewChanged(ViewGroup containerView);
+
+ public abstract void setWebContents(WebContents webContents);
+
+ /**
+ * Invoked when autofill value is available, AutofillProvider shall fill the
+ * form with the provided values.
+ *
+ * @param values the array of autofill values, the key is virtual id of form
+ * field.
+ */
+ public abstract void autofill(final SparseArray<String> values);
+
+ /**
+ * Invoked when autofill service needs the form structure.
+ *
+ * @param structure see View.onProvideAutofillVirtualStructure()
+ * @param flags see View.onProvideAutofillVirtualStructure()
+ */
+ public abstract void onProvideAutoFillVirtualStructure(ViewStructure structure, int flags);
+
+ /**
+ * Invoked when filling form is need. AutofillProvider shall ask autofill
+ * service for the values with which to fill the form.
+ *
+ * @param formData the form needs to fill.
+ * @param focus the index of focus field in formData
+ * @param x the boundary of focus field.
+ * @param y the boundary of focus field.
+ * @param width the boundary of focus field.
+ * @param height the boundary of focus field.
+ */
+ @CalledByNative
+ protected abstract void startAutofillSession(
+ FormData formData, float focus, float x, float y, float width, float height);
+
+ /**
+ * Invoked when text field is changed.
+ *
+ * @param index index of field in current form.
+ */
+ @CalledByNative
+ protected abstract void onTextFieldDidChange(int index);
+
+ /**
+ * Invoked when current form will be submitted.
+ *
+ */
+ @CalledByNative
+ protected abstract void onWillSubmitForm();
+
+ /**
+ * Invoked when focus field changed.
+ *
+ * @param focusOnForm whether focus is still on form.
+ * @param focusItem the index of field has focus
+ * @param x the boundary of focus field.
+ * @param y the boundary of focus field.
+ * @param width the boundary of focus field.
+ * @param height the boundary of focus field.
+ */
+ @CalledByNative
+ protected abstract void onFocusChanged(
+ boolean focusOnForm, int focusItem, float x, float y, float width, float height);
+
+ /**
+ * Send form to renderer for filling.
+ *
+ * @param nativeAutofillProvider the native autofill provider.
+ * @param formData the form to fill.
+ */
+ protected void autofill(long nativeAutofillProvider, FormData formData) {
+ nativeOnAutofillAvailable(nativeAutofillProvider, formData);
+ }
+
+ /**
+ * Invoked when current query need to be reset.
+ */
+ @CalledByNative
+ protected abstract void reset();
+
+ @CalledByNative
+ protected abstract void setNativeAutofillProvider(long nativeAutofillProvider);
+
+ private native void nativeOnAutofillAvailable(
+ long nativeAutofillProviderAndroid, FormData formData);
+}

Powered by Google App Engine
This is Rietveld 408576698