# 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", "res/values/dimens.xml", ] custom_package = "org.chromium.weblayer_private" deps = [ "//components/browser_ui/strings/android:browser_ui_strings_grd", "//components/browser_ui/styles/android:java_resources", "//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/resources/android/permissions_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/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/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/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/CookieManagerImpl.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/CookieChangeCause.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/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/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/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/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/IWebLayerClient.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" ] }