Commit 9d51f685 authored by Tao Bai's avatar Tao Bai Committed by Commit Bot

Consolidate the AutofillProvider and AutofillProviderImpl

The AutofillProvider interface was added for downstream coding when
the Android autofill feature was first introduced. It wasn't
necessary now.

This patch shall also reduce the binary size a little bit.

Bug: 1094377
Change-Id: I8896fbaa6260750d8b9e92df9ed67b4f5a0b26c4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2248170Reviewed-by: default avatarDominic Battré <battre@chromium.org>
Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Commit-Queue: Tao Bai <michaelbai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#779362}
parent a1c0f147
...@@ -55,7 +55,6 @@ import org.chromium.base.library_loader.NativeLibraries; ...@@ -55,7 +55,6 @@ import org.chromium.base.library_loader.NativeLibraries;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.ScopedSysTraceEvent; import org.chromium.base.metrics.ScopedSysTraceEvent;
import org.chromium.components.autofill.AutofillProvider; import org.chromium.components.autofill.AutofillProvider;
import org.chromium.components.autofill.AutofillProviderImpl;
import org.chromium.components.embedder_support.application.ClassLoaderContextWrapperFactory; import org.chromium.components.embedder_support.application.ClassLoaderContextWrapperFactory;
import org.chromium.components.embedder_support.application.FirebaseConfig; import org.chromium.components.embedder_support.application.FirebaseConfig;
import org.chromium.content_public.browser.LGEmailActionModeWorkaround; import org.chromium.content_public.browser.LGEmailActionModeWorkaround;
...@@ -630,7 +629,7 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { ...@@ -630,7 +629,7 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider {
AutofillProvider createAutofillProvider(Context context, ViewGroup containerView) { AutofillProvider createAutofillProvider(Context context, ViewGroup containerView) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) return null; if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) return null;
return new AutofillProviderImpl(context, containerView, "Android WebView"); return new AutofillProvider(context, containerView, "Android WebView");
} }
void startYourEngines(boolean onMainThread) { void startYourEngines(boolean onMainThread) {
......
...@@ -55,7 +55,6 @@ import org.chromium.base.test.util.MinAndroidSdkLevel; ...@@ -55,7 +55,6 @@ import org.chromium.base.test.util.MinAndroidSdkLevel;
import org.chromium.components.autofill.AutofillManagerWrapper; import org.chromium.components.autofill.AutofillManagerWrapper;
import org.chromium.components.autofill.AutofillPopup; import org.chromium.components.autofill.AutofillPopup;
import org.chromium.components.autofill.AutofillProvider; import org.chromium.components.autofill.AutofillProvider;
import org.chromium.components.autofill.AutofillProviderImpl;
import org.chromium.components.autofill.AutofillProviderUMA; import org.chromium.components.autofill.AutofillProviderUMA;
import org.chromium.content_public.browser.UiThreadTaskTraits; import org.chromium.content_public.browser.UiThreadTaskTraits;
import org.chromium.content_public.browser.test.util.DOMUtils; import org.chromium.content_public.browser.test.util.DOMUtils;
...@@ -759,7 +758,7 @@ public class AwAutofillTest { ...@@ -759,7 +758,7 @@ public class AwAutofillTest {
private int mSubmissionSource; private int mSubmissionSource;
private TestAutofillManagerWrapper mTestAutofillManagerWrapper; private TestAutofillManagerWrapper mTestAutofillManagerWrapper;
private AwAutofillSessionUMATestHelper mUMATestHelper; private AwAutofillSessionUMATestHelper mUMATestHelper;
private AutofillProviderImpl mAutofillProviderImpl; private AutofillProvider mAutofillProvider;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
...@@ -772,9 +771,9 @@ public class AwAutofillTest { ...@@ -772,9 +771,9 @@ public class AwAutofillTest {
public AutofillProvider createAutofillProvider( public AutofillProvider createAutofillProvider(
Context context, ViewGroup containerView) { Context context, ViewGroup containerView) {
mTestAutofillManagerWrapper = new TestAutofillManagerWrapper(context); mTestAutofillManagerWrapper = new TestAutofillManagerWrapper(context);
mAutofillProviderImpl = new AutofillProviderImpl(containerView, mAutofillProvider = new AutofillProvider(containerView,
mTestAutofillManagerWrapper, context, "AwAutofillTest"); mTestAutofillManagerWrapper, context, "AwAutofillTest");
return mAutofillProviderImpl; return mAutofillProvider;
} }
}); });
mAwContents = mTestContainerView.getAwContents(); mAwContents = mTestContainerView.getAwContents();
...@@ -784,7 +783,7 @@ public class AwAutofillTest { ...@@ -784,7 +783,7 @@ public class AwAutofillTest {
@After @After
public void tearDown() { public void tearDown() {
mWebServer.shutdown(); mWebServer.shutdown();
mAutofillProviderImpl = null; mAutofillProvider = null;
} }
@Test @Test
...@@ -1785,7 +1784,7 @@ public class AwAutofillTest { ...@@ -1785,7 +1784,7 @@ public class AwAutofillTest {
List<Integer> expectedValues = new ArrayList<>(); List<Integer> expectedValues = new ArrayList<>();
// On Android version below P scroll triggers additional // On Android version below P scroll triggers additional
// AUTOFILL_VIEW_ENTERED (@see AutofillProviderImpl#onTextFieldDidScroll). // AUTOFILL_VIEW_ENTERED (@see AutofillProvider#onTextFieldDidScroll).
if (VERSION.SDK_INT < Build.VERSION_CODES.P) { if (VERSION.SDK_INT < Build.VERSION_CODES.P) {
expectedValues.add(AUTOFILL_VIEW_ENTERED); expectedValues.add(AUTOFILL_VIEW_ENTERED);
} }
...@@ -1914,7 +1913,7 @@ public class AwAutofillTest { ...@@ -1914,7 +1913,7 @@ public class AwAutofillTest {
dispatchDownAndUpKeyEvents(KeyEvent.KEYCODE_A); dispatchDownAndUpKeyEvents(KeyEvent.KEYCODE_A);
pollDatalistPopupShown(); pollDatalistPopupShown();
TouchCommon.singleClickView( TouchCommon.singleClickView(
mAutofillProviderImpl.getDatalistPopupForTesting().getListView().getChildAt(1)); mAutofillProvider.getDatalistPopupForTesting().getListView().getChildAt(1));
// Verify the selection accepted by renderer. // Verify the selection accepted by renderer.
pollJavascriptResult("document.getElementById('text2').value;", "\"A2\""); pollJavascriptResult("document.getElementById('text2').value;", "\"A2\"");
} }
...@@ -1931,7 +1930,7 @@ public class AwAutofillTest { ...@@ -1931,7 +1930,7 @@ public class AwAutofillTest {
private void pollDatalistPopupShown() { private void pollDatalistPopupShown() {
AwActivityTestRule.pollInstrumentationThread(() -> { AwActivityTestRule.pollInstrumentationThread(() -> {
AutofillPopup popup = mAutofillProviderImpl.getDatalistPopupForTesting(); AutofillPopup popup = mAutofillProvider.getDatalistPopupForTesting();
return popup != null && popup.getListView().getChildCount() > 0; return popup != null && popup.getListView().getChildCount() > 0;
}); });
} }
......
...@@ -72,7 +72,6 @@ android_library("provider_java") { ...@@ -72,7 +72,6 @@ android_library("provider_java") {
"java/src/org/chromium/components/autofill/AutofillActionModeCallback.java", "java/src/org/chromium/components/autofill/AutofillActionModeCallback.java",
"java/src/org/chromium/components/autofill/AutofillManagerWrapper.java", "java/src/org/chromium/components/autofill/AutofillManagerWrapper.java",
"java/src/org/chromium/components/autofill/AutofillProvider.java", "java/src/org/chromium/components/autofill/AutofillProvider.java",
"java/src/org/chromium/components/autofill/AutofillProviderImpl.java",
"java/src/org/chromium/components/autofill/AutofillProviderUMA.java", "java/src/org/chromium/components/autofill/AutofillProviderUMA.java",
"java/src/org/chromium/components/autofill/FormData.java", "java/src/org/chromium/components/autofill/FormData.java",
"java/src/org/chromium/components/autofill/FormFieldData.java", "java/src/org/chromium/components/autofill/FormFieldData.java",
......
...@@ -9,8 +9,7 @@ java_library("components_autofill_junit_tests") { ...@@ -9,8 +9,7 @@ java_library("components_autofill_junit_tests") {
# Platform checks are broken for Robolectric. See https://crbug.com/1071638. # Platform checks are broken for Robolectric. See https://crbug.com/1071638.
bypass_platform_checks = true bypass_platform_checks = true
testonly = true testonly = true
sources = sources = [ "src/org/chromium/components/autofill/AutofillProviderTest.java" ]
[ "src/org/chromium/components/autofill/AutofillProviderImplTest.java" ]
deps = [ deps = [
"//base:base_java_test_support", "//base:base_java_test_support",
"//base:base_junit_test_support", "//base:base_junit_test_support",
......
...@@ -31,11 +31,11 @@ import org.chromium.ui.display.DisplayAndroid; ...@@ -31,11 +31,11 @@ import org.chromium.ui.display.DisplayAndroid;
import java.util.ArrayList; import java.util.ArrayList;
/** /**
* The unit tests for AutofillProviderImpl. * The unit tests for AutofillProvider.
*/ */
@RunWith(BaseRobolectricTestRunner.class) @RunWith(BaseRobolectricTestRunner.class)
@Config(manifest = Config.NONE) @Config(manifest = Config.NONE)
public class AutofillProviderImplTest { public class AutofillProviderTest {
private static final float EXPECTED_DIP_SCALE = 2; private static final float EXPECTED_DIP_SCALE = 2;
private static final int SCROLL_X = 15; private static final int SCROLL_X = 15;
private static final int SCROLL_Y = 155; private static final int SCROLL_Y = 155;
...@@ -46,7 +46,7 @@ public class AutofillProviderImplTest { ...@@ -46,7 +46,7 @@ public class AutofillProviderImplTest {
private WindowAndroid mWindowAndroid; private WindowAndroid mWindowAndroid;
private WebContents mWebContents; private WebContents mWebContents;
private ViewGroup mContainerView; private ViewGroup mContainerView;
private AutofillProviderImpl mAutofillProvider; private AutofillProvider mAutofillProvider;
private DisplayAndroid mDisplayAndroid; private DisplayAndroid mDisplayAndroid;
@Before @Before
...@@ -57,8 +57,7 @@ public class AutofillProviderImplTest { ...@@ -57,8 +57,7 @@ public class AutofillProviderImplTest {
mDisplayAndroid = Mockito.mock(DisplayAndroid.class); mDisplayAndroid = Mockito.mock(DisplayAndroid.class);
mWebContents = Mockito.mock(WebContents.class); mWebContents = Mockito.mock(WebContents.class);
mContainerView = Mockito.mock(ViewGroup.class); mContainerView = Mockito.mock(ViewGroup.class);
mAutofillProvider = mAutofillProvider = new AutofillProvider(mContext, mContainerView, "AutofillProviderTest");
new AutofillProviderImpl(mContext, mContainerView, "AutofillProviderImplTest");
mAutofillProvider.setWebContents(mWebContents); mAutofillProvider.setWebContents(mWebContents);
when(mWebContents.getTopLevelNativeWindow()).thenReturn(mWindowAndroid); when(mWebContents.getTopLevelNativeWindow()).thenReturn(mWindowAndroid);
......
...@@ -26,7 +26,6 @@ import org.chromium.base.annotations.JNINamespace; ...@@ -26,7 +26,6 @@ import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeMethods; import org.chromium.base.annotations.NativeMethods;
import org.chromium.components.autofill.AutofillActionModeCallback; import org.chromium.components.autofill.AutofillActionModeCallback;
import org.chromium.components.autofill.AutofillProvider; import org.chromium.components.autofill.AutofillProvider;
import org.chromium.components.autofill.AutofillProviderImpl;
import org.chromium.components.browser_ui.http_auth.LoginPrompt; import org.chromium.components.browser_ui.http_auth.LoginPrompt;
import org.chromium.components.browser_ui.util.BrowserControlsVisibilityDelegate; import org.chromium.components.browser_ui.util.BrowserControlsVisibilityDelegate;
import org.chromium.components.browser_ui.util.ComposedBrowserControlsVisibilityDelegate; import org.chromium.components.browser_ui.util.ComposedBrowserControlsVisibilityDelegate;
...@@ -291,7 +290,7 @@ public final class TabImpl extends ITab.Stub implements LoginPrompt.Observer { ...@@ -291,7 +290,7 @@ public final class TabImpl extends ITab.Stub implements LoginPrompt.Observer {
// Set up |mAutofillProvider| to operate in the new Context. It's safe to assume // Set up |mAutofillProvider| to operate in the new Context. It's safe to assume
// the context won't change unless it is first nulled out, since the fragment // the context won't change unless it is first nulled out, since the fragment
// must be detached before it can be reattached to a new Context. // must be detached before it can be reattached to a new Context.
mAutofillProvider = new AutofillProviderImpl( mAutofillProvider = new AutofillProvider(
mBrowser.getContext(), mBrowser.getAutofillView(), "WebLayer"); mBrowser.getContext(), mBrowser.getAutofillView(), "WebLayer");
TabImplJni.get().onAutofillProviderChanged(mNativeTab, mAutofillProvider); TabImplJni.get().onAutofillProviderChanged(mNativeTab, mAutofillProvider);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment