Skip to content

Commit

Permalink
[AA WebLayer] Add static Java WebLayer dependencies
Browse files Browse the repository at this point in the history
We are in the process of launching Autofill Assistant on WebLayer.

In this cl we add the first static dependencies class and create a separate Autofill Assistant target to keep the binary size impact on WebLayer and WebView minimal.

Bug: b/222671580
Change-Id: I859f7457f0be4c1f07d3346ce81f6f2c22ad1aea
Binary-Size: We are adding Autofill Assistant to WebLayer. This is a necessary change to keep Autofill Assistant running if Apps change from CCT to WebLayer.
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3525116
Auto-Submit: Florian Gauger <fga@google.com>
Reviewed-by: Sandro Maggi <sandromaggi@google.com>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#987392}
  • Loading branch information
Florian Gauger authored and Chromium LUCI CQ committed Mar 31, 2022
1 parent 58a0db3 commit 41f3c43
Show file tree
Hide file tree
Showing 10 changed files with 212 additions and 26 deletions.
3 changes: 3 additions & 0 deletions chrome/android/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -459,6 +459,7 @@ android_library("chrome_java") {
"//chrome/browser/xsurface:java",
"//components/autofill/android:autofill_java",
"//components/autofill/android:prefeditor_autofill_java",
"//components/autofill_assistant/android:public_dependencies_java",
"//components/autofill_assistant/android:public_java",
"//components/autofill_assistant/browser:proto_java",
"//components/background_task_scheduler:background_task_scheduler_java",
Expand Down Expand Up @@ -846,6 +847,7 @@ group("jni_headers") {
"//chrome/browser/webauthn/android:jni_headers",
"//components/autofill_assistant/android:jni_headers",
"//components/autofill_assistant/android:jni_headers_public",
"//components/autofill_assistant/android:jni_headers_public_dependencies",
"//components/image_fetcher:jni_headers",
"//components/media_router/browser/android:jni_headers",
"//components/ukm/android:jni_headers",
Expand Down Expand Up @@ -1474,6 +1476,7 @@ android_library("chrome_test_java") {
"//chrome/test/android/test_trusted_web_activity:test_trusted_web_activity_java",
"//components/autofill/android:autofill_java",
"//components/autofill/android:prefeditor_autofill_java",
"//components/autofill_assistant/android:public_dependencies_java",
"//components/autofill_assistant/android:public_java",
"//components/background_task_scheduler:background_task_scheduler_java",
"//components/background_task_scheduler:background_task_scheduler_task_ids_java",
Expand Down
1 change: 1 addition & 0 deletions chrome/android/features/autofill_assistant/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ android_library("test_java") {
"//components/autofill/android:autofill_payments_java_resources",
"//components/autofill_assistant/android:java",
"//components/autofill_assistant/android:java_resources",
"//components/autofill_assistant/android:public_dependencies_java",
"//components/autofill_assistant/android:public_java",
"//components/autofill_assistant/browser:proto_java",
"//components/browser_ui/bottomsheet/android:java",
Expand Down
1 change: 1 addition & 0 deletions chrome/browser/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -3409,6 +3409,7 @@ static_library("browser") {
"//components/autofill_assistant/browser",
"//components/autofill_assistant/browser:proto",
"//components/autofill_assistant/browser/android",
"//components/autofill_assistant/browser/android:dependencies_android",
"//components/autofill_assistant/content/browser",
"//components/background_sync",
"//components/bookmarks/common/android",
Expand Down
74 changes: 52 additions & 22 deletions components/autofill_assistant/android/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ android_library("java") {
deps = [
":autofill_assistant_public_java",
":java_resources",
":public_dependencies_java",
":public_java",
"//base:base_java",
"//components/autofill/android:autofill_java",
Expand Down Expand Up @@ -172,10 +173,9 @@ android_library("public_java") {

deps = [
":autofill_assistant_public_java",
":public_dependencies_java",
"//base:base_java",
"//base:jni_java",
"//components/autofill/android:autofill_payments_java_resources",
"//components/autofill/android:main_autofill_java",
"//components/browser_ui/bottomsheet/android:java",
"//components/favicon/android:java",
"//components/image_fetcher:java",
Expand All @@ -190,26 +190,62 @@ android_library("public_java") {
]

sources = [
"public/java/src/org/chromium/components/autofill_assistant/AssistantAccessTokenUtil.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantAddressEditorGms.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantContactEditorAccount.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantFeatures.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantModuleInstallUi.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantOnboardingHelper.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantPaymentInstrumentEditorGms.java",
"public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantActionHandler.java",
"public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantDirectAction.java",
"public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantMetrics.java",
"public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantModuleEntry.java",
"public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantModuleEntryProvider.java",
"public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantPreferencesUtil.java",
"public/java/src/org/chromium/components/autofill_assistant/Starter.java",
"public/java/src/org/chromium/components/autofill_assistant/TriggerContext.java",
]

annotation_processor_deps = [
"//base/android/jni_generator:jni_processor",
"//components/module_installer/android:module_interface_processor",
]
}

android_library("public_dependencies_java") {
resources_package = "org.chromium.components.autofill_assistant"

deps = [
"//base:base_java",
"//base:jni_java",
"//components/autofill/android:autofill_payments_java_resources",
"//components/autofill/android:main_autofill_java",
"//components/browser_ui/bottomsheet/android:java",
"//components/favicon/android:java",
"//components/image_fetcher:java",
"//components/payments/content/android:java_resources",
"//components/signin/public/android:java",
"//content/public/android:content_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//ui/android:ui_java",
"//url:gurl_java",
]

sources = [
"public/java/src/org/chromium/components/autofill_assistant/AssistantAccessTokenUtil.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantAutofillCreditCard.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantAutofillProfile.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantBrowserControls.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantBrowserControlsFactory.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantContactEditorAccount.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantDependencies.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantEditor.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantEditorFactory.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantFeatures.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantFeedbackUtil.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantInfoPageUtil.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantIsGsaFunction.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantIsMsbbEnabledFunction.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantModuleInstallUi.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantOnboardingHelper.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantOptionModel.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantPaymentInstrument.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantPaymentInstrumentEditorGms.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantProfileImageUtil.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantSettingsUtil.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantSnackbar.java",
Expand All @@ -219,20 +255,9 @@ android_library("public_java") {
"public/java/src/org/chromium/components/autofill_assistant/AssistantTabObscuringUtil.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantTabObserver.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantTabUtil.java",
"public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantActionHandler.java",
"public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantDirectAction.java",
"public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantMetrics.java",
"public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantModuleEntry.java",
"public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantModuleEntryProvider.java",
"public/java/src/org/chromium/components/autofill_assistant/AutofillAssistantPreferencesUtil.java",
"public/java/src/org/chromium/components/autofill_assistant/Starter.java",
"public/java/src/org/chromium/components/autofill_assistant/TriggerContext.java",
]

annotation_processor_deps = [
"//base/android/jni_generator:jni_processor",
"//components/module_installer/android:module_interface_processor",
]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]

srcjar_deps = [
"//components/autofill_assistant/browser:autofill_assistant_enums_java",
Expand Down Expand Up @@ -286,13 +311,18 @@ generate_jni("jni_headers_public") {
sources = [
"public/java/src/org/chromium/components/autofill_assistant/AssistantAutofillCreditCard.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantAutofillProfile.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantDependencies.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantFeatures.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantStaticDependencies.java",
"public/java/src/org/chromium/components/autofill_assistant/Starter.java",
]
}

generate_jni("jni_headers_public_dependencies") {
sources = [
"public/java/src/org/chromium/components/autofill_assistant/AssistantDependencies.java",
"public/java/src/org/chromium/components/autofill_assistant/AssistantStaticDependencies.java",
]
}

android_resources("animated_poodle_resources") {
sources =
[ "internal/java/res_poodle/drawable/ic_autofill_assistant_24dp.xml" ]
Expand Down
21 changes: 19 additions & 2 deletions components/autofill_assistant/browser/android/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ static_library("android") {
"assistant_overlay_delegate.h",
"client_android.cc",
"client_android.h",
"dependencies.cc",
"dependencies.h",
"features_android.cc",
"generic_ui_events_android.cc",
"generic_ui_events_android.h",
Expand Down Expand Up @@ -49,6 +47,7 @@ static_library("android") {
]

deps = [
":dependencies_android",
"//base",
"//components/autofill/android:autofill_core_browser_java_enums",
"//components/autofill/core/browser",
Expand Down Expand Up @@ -77,3 +76,21 @@ static_library("android") {
"//url:gurl_android",
]
}

static_library("dependencies_android") {
sources = [
"dependencies.cc",
"dependencies.h",
]

deps = [
"//base",
"//components/autofill/core/browser",
"//components/autofill_assistant/android:jni_headers_public_dependencies",
"//components/autofill_assistant/browser",
"//components/autofill_assistant/content/browser",
"//components/password_manager/core/browser",
"//components/variations/service",
"//content/public/browser",
]
}
4 changes: 2 additions & 2 deletions components/autofill_assistant/browser/android/dependencies.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
#include "base/android/scoped_java_ref.h"
#include "base/memory/ptr_util.h"
#include "base/strings/string_piece.h"
#include "components/autofill_assistant/android/jni_headers_public/AssistantDependencies_jni.h"
#include "components/autofill_assistant/android/jni_headers_public/AssistantStaticDependencies_jni.h"
#include "components/autofill_assistant/android/jni_headers_public_dependencies/AssistantDependencies_jni.h"
#include "components/autofill_assistant/android/jni_headers_public_dependencies/AssistantStaticDependencies_jni.h"

using ::base::android::AttachCurrentThread;
using ::base::android::JavaParamRef;
Expand Down
2 changes: 2 additions & 0 deletions weblayer/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,7 @@ source_set("weblayer_lib_base") {
"//components/android_autofill/browser",
"//components/android_autofill/browser:android",
"//components/android_system_error_page",
"//components/autofill_assistant/browser/android:dependencies_android",
"//components/browser_ui/accessibility/android",
"//components/browser_ui/client_certificate/android",
"//components/browser_ui/contacts_picker/android",
Expand All @@ -729,6 +730,7 @@ source_set("weblayer_lib_base") {
"//components/embedder_support/android/metrics",
"//components/external_intents/android",
"//components/favicon/android",
"//components/image_fetcher:android",
"//components/infobars/android",
"//components/installedapp/android",
"//components/javascript_dialogs",
Expand Down
4 changes: 4 additions & 0 deletions weblayer/browser/java/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ android_library("java") {
"org/chromium/weblayer_private/WebMessageReplyProxyImpl.java",
"org/chromium/weblayer_private/WebShareServiceFactory.java",
"org/chromium/weblayer_private/WebappsHelper.java",
"org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantStaticDependencies.java",
"org/chromium/weblayer_private/bluetooth/WebLayerBluetoothChooserAndroidDelegate.java",
"org/chromium/weblayer_private/bluetooth/WebLayerBluetoothScanningPromptAndroidDelegate.java",
"org/chromium/weblayer_private/media/MediaRouteDialogFragmentImpl.java",
Expand Down Expand Up @@ -208,6 +209,7 @@ android_library("java") {
"//base:base_java",
"//cc:cc_java",
"//components/android_autofill/browser:java",
"//components/autofill_assistant/android:public_dependencies_java",
"//components/browser_ui/accessibility/android:java",
"//components/browser_ui/banners/android:java",
"//components/browser_ui/bottomsheet/android:factory_java",
Expand Down Expand Up @@ -246,7 +248,9 @@ android_library("java") {
"//components/embedder_support/android:web_contents_delegate_java",
"//components/embedder_support/android/metrics:java",
"//components/external_intents/android:java",
"//components/favicon/android:java",
"//components/find_in_page/android:java",
"//components/image_fetcher:java",
"//components/infobars/android:infobar_android_enums_java",
"//components/infobars/android:java",
"//components/infobars/core:infobar_enums_java",
Expand Down
2 changes: 2 additions & 0 deletions weblayer/browser/java/DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ include_rules = [
"+components/payments/content/android",
"+components/webapk/android/libs",
"+components/webauthn/android",
"+components/image_fetcher",
"+components/autofill_assistant",
"+services/device/public/java/src/org/chromium/device/geolocation",

# WebLayerNotificationWrapperBuilder should be used for all notifications.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
// Copyright 2022 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.weblayer_private.autofill_assistant;

import android.app.Activity;
import android.content.Context;

import androidx.annotation.DimenRes;
import androidx.annotation.Nullable;

import org.chromium.components.autofill_assistant.AssistantAccessTokenUtil;
import org.chromium.components.autofill_assistant.AssistantDependencies;
import org.chromium.components.autofill_assistant.AssistantEditorFactory;
import org.chromium.components.autofill_assistant.AssistantFeedbackUtil;
import org.chromium.components.autofill_assistant.AssistantInfoPageUtil;
import org.chromium.components.autofill_assistant.AssistantProfileImageUtil;
import org.chromium.components.autofill_assistant.AssistantSettingsUtil;
import org.chromium.components.autofill_assistant.AssistantStaticDependencies;
import org.chromium.components.autofill_assistant.AssistantTabObscuringUtil;
import org.chromium.components.autofill_assistant.AssistantTabUtil;
import org.chromium.components.favicon.LargeIconBridge;
import org.chromium.components.image_fetcher.ImageFetcher;
import org.chromium.content_public.browser.BrowserContextHandle;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.util.AccessibilityUtil;
import org.chromium.weblayer_private.WebLayerAccessibilityUtil;

/**
* Provides default implementations of {@link AssistantStaticDependencies} for WebLayer.
*/
public class WebLayerAssistantStaticDependencies implements AssistantStaticDependencies {
@Override
public long createNative() {
// TODO(b/222671580): Implement
return 0;
}

@Override
public AssistantDependencies createDependencies(Activity activity) {
// TODO(b/222671580): Implement
return null;
}

@Override
public AccessibilityUtil getAccessibilityUtil() {
return WebLayerAccessibilityUtil.get();
}

@Override
@Nullable
public AssistantTabObscuringUtil getTabObscuringUtilOrNull(WindowAndroid windowAndroid) {
// TODO(b/222671580): Implement
return null;
}

@Override
public AssistantInfoPageUtil createInfoPageUtil() {
// TODO(b/222671580): Implement
return null;
}

@Override
public AssistantFeedbackUtil createFeedbackUtil() {
// TODO(b/222671580): Implement
return null;
}

@Override
public AssistantTabUtil createTabUtil() {
// TODO(b/222671580): Implement
return null;
}

@Override
public AssistantSettingsUtil createSettingsUtil() {
// TODO(b/222671580): Implement
return null;
}

@Override
public AssistantAccessTokenUtil createAccessTokenUtil() {
// TODO(b/222671580): Implement
return null;
}

@Override
public BrowserContextHandle getBrowserContext() {
// TODO(b/222671580): Implement
return null;
}

@Override
public ImageFetcher createImageFetcher() {
// TODO(b/222671580): Implement
return null;
}

@Override
public LargeIconBridge createIconBridge() {
// TODO(b/222671580): Implement
return null;
}

@Override
@Nullable
public String getSignedInAccountEmailOrNull() {
// TODO(b/222671580): Implement
return null;
}

@Override
@Nullable
public AssistantProfileImageUtil createProfileImageUtilOrNull(
Context context, @DimenRes int imageSizeRedId) {
// TODO(b/222671580): Implement
return null;
}

@Override
public AssistantEditorFactory createEditorFactory() {
// TODO(b/222671580): Implement
return null;
}
}

0 comments on commit 41f3c43

Please sign in to comment.