blob: 123a4e84f65f6647dc7c393730c52744fde1ef81 [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("//weblayer/variables.gni")
android_resources("weblayer_resources") {
sources = [ "res/layout/weblayer_url_bar.xml" ]
custom_package = "org.chromium.weblayer_private"
deps = [
"//components/browser_ui/strings/android:browser_ui_strings_grd",
"//components/permissions/android:java_resources",
"//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/permissions/android/resource_id.h" ]
}
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("java") {
sources = [
"org/chromium/weblayer_private/ActionModeCallback.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/ContentView.java",
"org/chromium/weblayer_private/ContentViewRenderView.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/FragmentAndroidPermissionDelegate.java",
"org/chromium/weblayer_private/FragmentWindowAndroid.java",
"org/chromium/weblayer_private/FullscreenCallbackProxy.java",
"org/chromium/weblayer_private/InterceptNavigationDelegateImpl.java",
"org/chromium/weblayer_private/LocaleChangedBroadcastReceiver.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/ProfileManager.java",
"org/chromium/weblayer_private/RemoteFragmentImpl.java",
"org/chromium/weblayer_private/TabCallbackProxy.java",
"org/chromium/weblayer_private/TabImpl.java",
"org/chromium/weblayer_private/TopControlsContainerView.java",
"org/chromium/weblayer_private/UrlBarControllerImpl.java",
"org/chromium/weblayer_private/WebContentsGestureStateTracker.java",
"org/chromium/weblayer_private/WebLayerExceptionFilter.java",
"org/chromium/weblayer_private/WebLayerFactoryImpl.java",
"org/chromium/weblayer_private/WebLayerImpl.java",
"org/chromium/weblayer_private/WebLayerNetworkChangeNotifierRegistrationPolicy.java",
"org/chromium/weblayer_private/WebLayerTabModalPresenter.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",
]
deps = [
":gms_bridge_java",
":interfaces_java",
":weblayer_resources",
"//base:base_java",
"//base:jni_java",
"//components/autofill/android:provider_java",
"//components/browser_ui/modaldialog/android:java",
"//components/browser_ui/styles/android:java",
"//components/browser_ui/styles/android:java_resources",
"//components/browser_ui/util/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: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/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/permissions/android:java",
"//components/security_interstitials/content/android:java",
"//components/spellcheck/browser/android:java",
"//components/url_formatter/android:url_formatter_java",
"//components/variations/android:variations_java",
"//components/version_info/android:version_constants_java",
"//content/public/android:content_java",
"//net/android:net_java",
"//services/network/public/mojom:mojom_java",
"//third_party/android_deps:androidx_core_core_java",
"//third_party/android_deps:com_android_support_support_compat_java",
"//ui/android:ui_full_java",
"//ui/android:ui_java",
"//url:gurl_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",
]
custom_package = "org.chromium.weblayer_private.test"
}
android_library("test_java") {
testonly = true
sources = [ "org/chromium/weblayer_private/test/TestWebLayerImpl.java" ]
deps = [
":weblayer_test_resources",
"//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",
"//ui/android:ui_full_java",
]
srcjar_deps = [ ":test_aidl" ]
}
generate_jni("jni") {
sources = [
"org/chromium/weblayer_private/BrowserImpl.java",
"org/chromium/weblayer_private/ContentViewRenderView.java",
"org/chromium/weblayer_private/DownloadCallbackProxy.java",
"org/chromium/weblayer_private/DownloadImpl.java",
"org/chromium/weblayer_private/ErrorPageCallbackProxy.java",
"org/chromium/weblayer_private/FullscreenCallbackProxy.java",
"org/chromium/weblayer_private/InterceptNavigationDelegateImpl.java",
"org/chromium/weblayer_private/LocaleChangedBroadcastReceiver.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/TopControlsContainerView.java",
"org/chromium/weblayer_private/UrlBarControllerImpl.java",
"org/chromium/weblayer_private/WebLayerExceptionFilter.java",
"org/chromium/weblayer_private/WebLayerImpl.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/DownloadError.java",
"org/chromium/weblayer_private/interfaces/DownloadState.java",
"org/chromium/weblayer_private/interfaces/LoadError.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/StrictModeWorkaround.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/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/IFindInPageCallbackClient.aidl",
"org/chromium/weblayer_private/interfaces/IFullscreenCallbackClient.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/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/IWebLayerFactory.aidl",
]
}
android_aidl("test_aidl") {
import_include = [ "." ]
testonly = true
sources =
[ "org/chromium/weblayer_private/test_interfaces/ITestWebLayer.aidl" ]
}