| # 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" ] |
| } |