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