blob: 596886062c13dceb5adcdd274bc5425aa4491782 [file] [log] [blame]
# Copyright 2019 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.
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
import("//build/config/locales.gni")
import("//weblayer/variables.gni")
_bundle_utils_output =
"$target_gen_dir/org/chromium/weblayer_private/WebLayerBundleUtils.java"
jinja_template("weblayer_bundle_utils") {
input = "WebLayerBundleUtils.java.jinja2"
output = _bundle_utils_output
variables = "weblayer_in_split=$weblayer_in_split"
}
android_resources("weblayer_resources") {
sources = [
"res/drawable/weblayer_tab_indicator.xml",
"res/layout/site_settings_layout.xml",
"res/layout/weblayer_infobar_translate_compact_content.xml",
"res/layout/weblayer_url_bar.xml",
"res/values/colors.xml",
"res/values/dimens.xml",
"res/values/styles.xml",
]
create_srcjar = false
deps = [
":weblayer_strings_grd",
"//components/blocked_content/android:java_resources",
"//components/browser_ui/http_auth/android:java_resources",
"//components/browser_ui/media/android:java_resources",
"//components/browser_ui/settings/android:java_resources",
"//components/browser_ui/site_settings/android:java_resources",
"//components/browser_ui/strings/android:browser_ui_strings_grd",
"//components/browser_ui/styles/android:java_resources",
"//components/infobars/android:java_resources",
"//components/page_info/android:java_resources",
"//components/permissions/android:java_resources",
"//components/translate/content/android:java_resources",
"//third_party/android_deps:material_design_java",
"//weblayer:components_java_strings",
]
}
generate_product_config_srcjar("weblayer_product_config") {
java_package = weblayer_product_config_java_package
}
java_cpp_template("resource_id_javagen") {
sources = [ "ResourceId.template" ]
package_path = "org/chromium/weblayer_private/resources"
inputs = [
"//components/resources/android/blocked_content_resource_id.h",
"//components/resources/android/page_info_resource_id.h",
"//components/resources/android/permissions_resource_id.h",
"//components/resources/android/sms_resource_id.h",
]
}
java_strings_grd("weblayer_strings_grd") {
grd_file = "weblayer_strings.grd"
outputs = [ "values/weblayer_strings.xml" ] +
process_file_template(
android_bundle_locales_as_resources,
[ "values-{{source_name_part}}/weblayer_strings.xml" ])
}
java_cpp_enum("generated_enums") {
sources = [
"//weblayer/browser/controls_visibility_reason.h",
"//weblayer/public/download.h",
"//weblayer/public/navigation.h",
"//weblayer/public/new_tab_delegate.h",
"//weblayer/public/profile.h",
]
}
android_library("base_module_java") {
sources =
[ "org/chromium/weblayer_private/WebViewCompatibilityHelperImpl.java" ]
deps = [ "//base:base_java" ]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
}
android_library("java") {
sources = [
"org/chromium/weblayer_private/ActionModeCallback.java",
"org/chromium/weblayer_private/AutocompleteSchemeClassifierImpl.java",
"org/chromium/weblayer_private/AutofillView.java",
"org/chromium/weblayer_private/BrowserControlsContainerView.java",
"org/chromium/weblayer_private/BrowserFragmentImpl.java",
"org/chromium/weblayer_private/BrowserImpl.java",
"org/chromium/weblayer_private/BrowserViewController.java",
"org/chromium/weblayer_private/ChildProcessServiceImpl.java",
"org/chromium/weblayer_private/ContentViewRenderView.java",
"org/chromium/weblayer_private/CookieManagerImpl.java",
"org/chromium/weblayer_private/CrashReporterControllerImpl.java",
"org/chromium/weblayer_private/DownloadCallbackProxy.java",
"org/chromium/weblayer_private/DownloadImpl.java",
"org/chromium/weblayer_private/ErrorPageCallbackProxy.java",
"org/chromium/weblayer_private/ExternalNavigationDelegateImpl.java",
"org/chromium/weblayer_private/FaviconCallbackProxy.java",
"org/chromium/weblayer_private/FragmentAndroidPermissionDelegate.java",
"org/chromium/weblayer_private/FragmentWindowAndroid.java",
"org/chromium/weblayer_private/FullscreenCallbackProxy.java",
"org/chromium/weblayer_private/GoogleAccountsCallbackProxy.java",
"org/chromium/weblayer_private/InfoBarContainer.java",
"org/chromium/weblayer_private/InfoBarContainerView.java",
"org/chromium/weblayer_private/IntentUtils.java",
"org/chromium/weblayer_private/InterceptNavigationDelegateClientImpl.java",
"org/chromium/weblayer_private/LocaleChangedBroadcastReceiver.java",
"org/chromium/weblayer_private/MediaSessionManager.java",
"org/chromium/weblayer_private/MediaStreamManager.java",
"org/chromium/weblayer_private/MojoInterfaceRegistrar.java",
"org/chromium/weblayer_private/NavigationControllerImpl.java",
"org/chromium/weblayer_private/NavigationImpl.java",
"org/chromium/weblayer_private/NewTabCallbackProxy.java",
"org/chromium/weblayer_private/PageInfoControllerDelegateImpl.java",
"org/chromium/weblayer_private/ProfileImpl.java",
"org/chromium/weblayer_private/ProfileManager.java",
"org/chromium/weblayer_private/RemoteFragmentImpl.java",
"org/chromium/weblayer_private/SiteSettingsFragmentImpl.java",
"org/chromium/weblayer_private/TabCallbackProxy.java",
"org/chromium/weblayer_private/TabImpl.java",
"org/chromium/weblayer_private/TranslateCompactInfoBar.java",
"org/chromium/weblayer_private/UrlBarControllerImpl.java",
"org/chromium/weblayer_private/WebContentsGestureStateTracker.java",
"org/chromium/weblayer_private/WebLayerAccessibilityUtil.java",
"org/chromium/weblayer_private/WebLayerExceptionFilter.java",
"org/chromium/weblayer_private/WebLayerFactoryImpl.java",
"org/chromium/weblayer_private/WebLayerImpl.java",
"org/chromium/weblayer_private/WebLayerNotificationChannels.java",
"org/chromium/weblayer_private/WebLayerNotificationWrapperBuilder.java",
"org/chromium/weblayer_private/WebLayerSiteSettingsClient.java",
"org/chromium/weblayer_private/WebLayerTabModalPresenter.java",
"org/chromium/weblayer_private/WebMessageReplyProxyImpl.java",
"org/chromium/weblayer_private/WebShareServiceFactory.java",
"org/chromium/weblayer_private/metrics/MetricsServiceClient.java",
"org/chromium/weblayer_private/metrics/UmaUtils.java",
"org/chromium/weblayer_private/permissions/PermissionRequestUtils.java",
"org/chromium/weblayer_private/resources/ResourceMapper.java",
_bundle_utils_output,
]
resources_package = "org.chromium.weblayer_private"
deps = [
":base_module_java",
":gms_bridge_java",
":interfaces_java",
":weblayer_bundle_utils",
":weblayer_resources",
"//base:base_java",
"//base:jni_java",
"//components/autofill/android/provider:java",
"//components/browser_ui/banners/android:java",
"//components/browser_ui/client_certificate/android:java",
"//components/browser_ui/contacts_picker/android:java",
"//components/browser_ui/display_cutout/android:java",
"//components/browser_ui/http_auth/android:java",
"//components/browser_ui/media/android:java",
"//components/browser_ui/modaldialog/android:java",
"//components/browser_ui/notifications/android:java",
"//components/browser_ui/photo_picker/android:java",
"//components/browser_ui/settings/android:java",
"//components/browser_ui/share/android:java",
"//components/browser_ui/site_settings/android:java",
"//components/browser_ui/sms/android:java",
"//components/browser_ui/styles/android:java",
"//components/browser_ui/util/android:java",
"//components/browser_ui/webshare/android:java",
"//components/browser_ui/widget/android:java",
"//components/content_settings/android:content_settings_enums_java",
"//components/content_settings/android:java",
"//components/crash/android:handler_java",
"//components/crash/android:java",
"//components/download/internal/common:internal_java",
"//components/embedder_support/android:application_java",
"//components/embedder_support/android:browser_context_java",
"//components/embedder_support/android:content_view_java",
"//components/embedder_support/android:context_menu_java",
"//components/embedder_support/android:util_java",
"//components/embedder_support/android:web_contents_delegate_java",
"//components/embedder_support/android/metrics:java",
"//components/external_intents/android:java",
"//components/find_in_page/android:java",
"//components/infobars/android:infobar_android_enums_java",
"//components/infobars/android:java",
"//components/infobars/core:infobar_enums_java",
"//components/javascript_dialogs/android:java",
"//components/location/android:settings_java",
"//components/metrics:metrics_java",
"//components/minidump_uploader:minidump_uploader_java",
"//components/navigation_interception/android:navigation_interception_java",
"//components/omnibox/browser:browser_java",
"//components/page_info/android:java",
"//components/permissions/android:java",
"//components/safe_browsing/android:safe_browsing_java",
"//components/security_interstitials/content/android:java",
"//components/signin/core/browser:signin_enums_java",
"//components/spellcheck/browser/android:java",
"//components/translate/content/android:java",
"//components/translate/content/android:translate_android_enums_java",
"//components/url_formatter/android:url_formatter_java",
"//components/variations/android:variations_java",
"//components/version_info/android:version_constants_java",
"//components/webrtc/android:java",
"//content/public/android:content_java",
"//mojo/public/java:bindings_java",
"//net/android:net_java",
"//services/network/public/mojom:cookies_mojom_java",
"//services/network/public/mojom:mojom_java",
"//services/service_manager/public/java:service_manager_java",
"//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_deps:androidx_appcompat_appcompat_java",
"//third_party/android_deps:androidx_appcompat_appcompat_resources_java",
"//third_party/android_deps:androidx_core_core_java",
"//third_party/android_deps:androidx_fragment_fragment_java",
"//third_party/android_deps:androidx_media_media_java",
"//third_party/android_deps:androidx_preference_preference_java",
"//third_party/android_deps:material_design_java",
"//third_party/blink/public/mojom:android_mojo_bindings_java",
"//ui/android:ui_full_java",
"//ui/android:ui_java",
"//url:gurl_java",
"//url:origin_java",
]
srcjar_deps = [
":generated_enums",
":resource_id_javagen",
":weblayer_product_config",
]
jar_excluded_patterns = [ "*/ProductConfig.class" ]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
# Needed for android.webkit.WebView(Delegate|Factory)
alternative_android_sdk_dep =
"//third_party/android_sdk:public_framework_system_java"
}
generate_jni_registration("weblayer_jni_registration") {
targets = [ ":java" ]
header_output = "$target_gen_dir/$target_name.h"
namespace = "weblayer"
}
android_resources("weblayer_test_resources") {
sources = [
"res_test/layout/test_layout.xml",
"res_test/values/values.xml",
]
create_srcjar = false
}
android_library("test_java") {
testonly = true
sources = [
"org/chromium/weblayer_private/test/TestInfoBar.java",
"org/chromium/weblayer_private/test/TestWebLayerImpl.java",
]
resources_package = "org.chromium.weblayer_private.test"
deps = [
":interfaces_java",
":java",
":weblayer_test_resources",
"//base:base_java",
"//base:jni_java",
"//components/infobars/android:java",
"//components/location/android:location_java",
"//components/permissions/android:java",
"//content/public/test/android:content_java_test_support",
"//net/android:net_java",
"//services/device/public/java:geolocation_java",
"//services/device/public/java:geolocation_java_test_support",
"//third_party/android_deps:androidx_annotation_annotation_java",
"//ui/android:ui_full_java",
]
srcjar_deps = [ ":test_aidl" ]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
}
generate_jni_registration("test_weblayer_jni_registration") {
testonly = true
targets = [ ":test_java" ]
header_output = "$target_gen_dir/$target_name.h"
namespace = "weblayer_test"
}
generate_jni("test_jni") {
testonly = true
sources = [
"org/chromium/weblayer_private/test/TestInfoBar.java",
"org/chromium/weblayer_private/test/TestWebLayerImpl.java",
]
}
generate_jni("jni") {
sources = [
"org/chromium/weblayer_private/AutocompleteSchemeClassifierImpl.java",
"org/chromium/weblayer_private/BrowserControlsContainerView.java",
"org/chromium/weblayer_private/BrowserImpl.java",
"org/chromium/weblayer_private/ContentViewRenderView.java",
"org/chromium/weblayer_private/CookieManagerImpl.java",
"org/chromium/weblayer_private/DownloadCallbackProxy.java",
"org/chromium/weblayer_private/DownloadImpl.java",
"org/chromium/weblayer_private/ErrorPageCallbackProxy.java",
"org/chromium/weblayer_private/FaviconCallbackProxy.java",
"org/chromium/weblayer_private/FullscreenCallbackProxy.java",
"org/chromium/weblayer_private/GoogleAccountsCallbackProxy.java",
"org/chromium/weblayer_private/InfoBarContainer.java",
"org/chromium/weblayer_private/LocaleChangedBroadcastReceiver.java",
"org/chromium/weblayer_private/MediaStreamManager.java",
"org/chromium/weblayer_private/MojoInterfaceRegistrar.java",
"org/chromium/weblayer_private/NavigationControllerImpl.java",
"org/chromium/weblayer_private/NavigationImpl.java",
"org/chromium/weblayer_private/NewTabCallbackProxy.java",
"org/chromium/weblayer_private/ProfileImpl.java",
"org/chromium/weblayer_private/TabCallbackProxy.java",
"org/chromium/weblayer_private/TabImpl.java",
"org/chromium/weblayer_private/TranslateCompactInfoBar.java",
"org/chromium/weblayer_private/UrlBarControllerImpl.java",
"org/chromium/weblayer_private/WebLayerExceptionFilter.java",
"org/chromium/weblayer_private/WebLayerFactoryImpl.java",
"org/chromium/weblayer_private/WebLayerImpl.java",
"org/chromium/weblayer_private/WebMessageReplyProxyImpl.java",
"org/chromium/weblayer_private/WebViewCompatibilityHelperImpl.java",
"org/chromium/weblayer_private/metrics/MetricsServiceClient.java",
"org/chromium/weblayer_private/metrics/UmaUtils.java",
"org/chromium/weblayer_private/permissions/PermissionRequestUtils.java",
"org/chromium/weblayer_private/resources/ResourceMapper.java",
]
}
android_library("interfaces_java") {
sources = [
"org/chromium/weblayer_private/interfaces/APICallException.java",
"org/chromium/weblayer_private/interfaces/BrowserFragmentArgs.java",
"org/chromium/weblayer_private/interfaces/BrowsingDataType.java",
"org/chromium/weblayer_private/interfaces/CookieChangeCause.java",
"org/chromium/weblayer_private/interfaces/DownloadError.java",
"org/chromium/weblayer_private/interfaces/DownloadState.java",
"org/chromium/weblayer_private/interfaces/GoogleAccountServiceType.java",
"org/chromium/weblayer_private/interfaces/LoadError.java",
"org/chromium/weblayer_private/interfaces/NavigateParams.java",
"org/chromium/weblayer_private/interfaces/NavigationState.java",
"org/chromium/weblayer_private/interfaces/NewTabType.java",
"org/chromium/weblayer_private/interfaces/ObjectWrapper.java",
"org/chromium/weblayer_private/interfaces/ScrollNotificationType.java",
"org/chromium/weblayer_private/interfaces/SettingType.java",
"org/chromium/weblayer_private/interfaces/SiteSettingsFragmentArgs.java",
"org/chromium/weblayer_private/interfaces/SiteSettingsIntentHelper.java",
"org/chromium/weblayer_private/interfaces/StrictModeWorkaround.java",
"org/chromium/weblayer_private/interfaces/UrlBarOptionsKeys.java",
"org/chromium/weblayer_private/interfaces/WebLayerVersionConstants.java",
]
deps = [ "//third_party/android_deps:androidx_annotation_annotation_java" ]
srcjar_deps = [ ":aidl" ]
}
# Separate target to allow for a dependency on GmsCore without pulling in all of
# java classes. It compiles the abstract class; implementations are compiled
# separately.
android_library("gms_bridge_java") {
sources = [
"org/chromium/weblayer_private/GmsBridge.java",
"org/chromium/weblayer_private/GmsBridgeImpl.java",
]
deps = [
"//base:base_java",
"//components/embedder_support/android/metrics:java",
]
# The appropriate .class file will be loaded via a dependency to a library
# like :gms_bridge_upstream_impl_java below.
jar_excluded_patterns = [ "*/GmsBridgeImpl.class" ]
}
# This target compiles the implementation of GmsBridge for public targets.
android_library("gms_bridge_upstream_impl_java") {
sources = [ "org/chromium/weblayer_private/GmsBridgeImpl.java" ]
deps = [ ":gms_bridge_java" ]
}
android_aidl("aidl") {
import_include = [ "." ]
sources = [
"org/chromium/weblayer_private/interfaces/IBrowser.aidl",
"org/chromium/weblayer_private/interfaces/IBrowserClient.aidl",
"org/chromium/weblayer_private/interfaces/IBrowserFragment.aidl",
"org/chromium/weblayer_private/interfaces/IChildProcessService.aidl",
"org/chromium/weblayer_private/interfaces/IClientDownload.aidl",
"org/chromium/weblayer_private/interfaces/IClientNavigation.aidl",
"org/chromium/weblayer_private/interfaces/ICookieChangedCallbackClient.aidl",
"org/chromium/weblayer_private/interfaces/ICookieManager.aidl",
"org/chromium/weblayer_private/interfaces/ICrashReporterController.aidl",
"org/chromium/weblayer_private/interfaces/ICrashReporterControllerClient.aidl",
"org/chromium/weblayer_private/interfaces/IDownload.aidl",
"org/chromium/weblayer_private/interfaces/IDownloadCallbackClient.aidl",
"org/chromium/weblayer_private/interfaces/IErrorPageCallbackClient.aidl",
"org/chromium/weblayer_private/interfaces/IFaviconFetcher.aidl",
"org/chromium/weblayer_private/interfaces/IFaviconFetcherClient.aidl",
"org/chromium/weblayer_private/interfaces/IFindInPageCallbackClient.aidl",
"org/chromium/weblayer_private/interfaces/IFullscreenCallbackClient.aidl",
"org/chromium/weblayer_private/interfaces/IGoogleAccountsCallbackClient.aidl",
"org/chromium/weblayer_private/interfaces/IMediaCaptureCallbackClient.aidl",
"org/chromium/weblayer_private/interfaces/INavigation.aidl",
"org/chromium/weblayer_private/interfaces/INavigationController.aidl",
"org/chromium/weblayer_private/interfaces/INavigationControllerClient.aidl",
"org/chromium/weblayer_private/interfaces/IObjectWrapper.aidl",
"org/chromium/weblayer_private/interfaces/IProfile.aidl",
"org/chromium/weblayer_private/interfaces/IRemoteFragment.aidl",
"org/chromium/weblayer_private/interfaces/IRemoteFragmentClient.aidl",
"org/chromium/weblayer_private/interfaces/ISiteSettingsFragment.aidl",
"org/chromium/weblayer_private/interfaces/ITab.aidl",
"org/chromium/weblayer_private/interfaces/ITabClient.aidl",
"org/chromium/weblayer_private/interfaces/IUrlBarController.aidl",
"org/chromium/weblayer_private/interfaces/IWebLayer.aidl",
"org/chromium/weblayer_private/interfaces/IWebLayerClient.aidl",
"org/chromium/weblayer_private/interfaces/IWebLayerFactory.aidl",
"org/chromium/weblayer_private/interfaces/IWebMessageCallbackClient.aidl",
"org/chromium/weblayer_private/interfaces/IWebMessageReplyProxy.aidl",
]
}
android_aidl("test_aidl") {
import_include = [ "." ]
testonly = true
sources =
[ "org/chromium/weblayer_private/test_interfaces/ITestWebLayer.aidl" ]
}