diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-03-11 11:32:04 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-03-18 13:40:17 +0000 |
commit | 31ccca0778db85c159634478b4ec7997f6704860 (patch) | |
tree | 3d33fc3afd9d5ec95541e1bbe074a9cf8da12a0e /chromium/android_webview | |
parent | 248b70b82a40964d5594eb04feca0fa36716185d (diff) | |
download | qtwebengine-chromium-31ccca0778db85c159634478b4ec7997f6704860.tar.gz |
BASELINE: Update Chromium to 80.0.3987.136
Change-Id: I98e1649aafae85ba3a83e67af00bb27ef301db7b
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Diffstat (limited to 'chromium/android_webview')
-rw-r--r-- | chromium/android_webview/BUILD.gn | 987 | ||||
-rw-r--r-- | chromium/android_webview/apk/BUILD.gn | 61 | ||||
-rw-r--r-- | chromium/android_webview/browser/BUILD.gn | 11 | ||||
-rw-r--r-- | chromium/android_webview/browser/gfx/BUILD.gn | 4 | ||||
-rw-r--r-- | chromium/android_webview/common/js_java_interaction/interfaces.mojom | 3 | ||||
-rw-r--r-- | chromium/android_webview/glue/BUILD.gn | 11 | ||||
-rw-r--r-- | chromium/android_webview/lib/BUILD.gn | 70 | ||||
-rw-r--r-- | chromium/android_webview/nonembedded/BUILD.gn | 155 | ||||
-rw-r--r-- | chromium/android_webview/renderer/BUILD.gn | 7 | ||||
-rw-r--r-- | chromium/android_webview/support_library/BUILD.gn | 2 | ||||
-rw-r--r-- | chromium/android_webview/support_library/callback/BUILD.gn | 2 | ||||
-rw-r--r-- | chromium/android_webview/system_webview_apk_tmpl.gni | 109 | ||||
-rw-r--r-- | chromium/android_webview/test/BUILD.gn | 51 | ||||
-rw-r--r-- | chromium/android_webview/tools/automated_ui_tests/BUILD.gn | 2 | ||||
-rw-r--r-- | chromium/android_webview/tools/system_webview_shell/BUILD.gn | 5 | ||||
-rw-r--r-- | chromium/android_webview/variables.gni | 10 |
16 files changed, 794 insertions, 696 deletions
diff --git a/chromium/android_webview/BUILD.gn b/chromium/android_webview/BUILD.gn index 48c2db3d5af..153f6c0a2ad 100644 --- a/chromium/android_webview/BUILD.gn +++ b/chromium/android_webview/BUILD.gn @@ -12,7 +12,6 @@ import("//build/config/locales.gni") import("//chrome/android/chrome_common_shared_library.gni") import("//chrome/android/chrome_public_apk_tmpl.gni") import("//chrome/android/trichrome.gni") -import("//components/gwp_asan/buildflags/buildflags.gni") import("//components/spellcheck/spellcheck_build_features.gni") import("//tools/grit/repack.gni") import("//tools/resources/generate_resource_whitelist.gni") @@ -24,12 +23,150 @@ if (enable_resource_whitelist_generation) { "$target_gen_dir/system_webview_pak_whitelist.txt" } -group("android_webview") { - if (public_android_sdk) { - deps = [ +if (public_android_sdk) { + # Standalone WebView APK. + system_webview_apk_tmpl("system_webview_apk") { + android_manifest = system_webview_android_manifest + android_manifest_dep = + "//android_webview/nonembedded:system_webview_manifest" + deps = upstream_only_webview_deps + apk_name = "SystemWebView" + min_sdk_version = 21 + } + + android_resource_sizes_test("resource_sizes_system_webview_apk") { + apk_name = "SystemWebView" + data_deps = [ ":system_webview_apk", ] } + + # Trichrome WebView APK. + system_webview_apk_tmpl("trichrome_webview_apk") { + android_manifest = trichrome_webview_android_manifest + android_manifest_dep = + "//android_webview/nonembedded:trichrome_webview_manifest" + min_sdk_version = 29 + + deps = upstream_only_webview_deps + apk_name = "TrichromeWebView" + use_trichrome_library = true + + if (android_64bit_target_cpu) { + is_64_bit_browser = false + include_64_bit_webview = true + } + + uncompress_dex = true + if (trichrome_synchronized_proguard) { + static_library_provider = "//chrome/android:trichrome_library_apk" + } + } + + # Trichrome WebView APK for a 64-bit Chrome. + if (android_64bit_target_cpu) { + system_webview_apk_tmpl("trichrome_webview_64_32_apk") { + android_manifest = trichrome_webview_64_32_android_manifest + android_manifest_dep = + "//android_webview/nonembedded:trichrome_webview_64_32_manifest" + use_trichrome_library = true + is_64_bit_browser = true + include_32_bit_webview = true + + min_sdk_version = 29 + + deps = upstream_only_webview_deps + apk_name = "TrichromeWebView6432" + uncompress_dex = true + if (trichrome_synchronized_proguard) { + static_library_provider = "//chrome/android:trichrome_library_apk" + } + } + } +} + +# The shared library used by standalone WebView. +shared_library("libwebviewchromium") { + deps = [ + "//android_webview/lib", + "//android_webview/lib:webview_entry_point", + "//android_webview/nonembedded", + ] + configs -= [ "//build/config/android:hide_all_but_jni_onload" ] + configs += [ "//build/config/android:hide_all_but_jni" ] +} + +# This template is used to define WebView's alternate-ABI libraries, which are +# used by Monochrome and Trichrome on 64-bit devices which support both 32 and +# 64-bit ABIs. WebView's browser process must use the same ABI as the embedding +# app (renderer processes used the ABI defined in the WebView APK manifest), +# which requires us to have two copies of the library available, one for each +# ABI. The primary library is the one shared with Chrome, and the alternate is +# a WebView-specific library defined here for whichever ABI isn't used by +# Chrome. +# +# Note that this library only includes code needed for the embedded usecase, +# as all non-embedded code uses the primary library. +template("webview_alternate_library") { + chrome_common_shared_library(target_name) { + forward_variables_from(invoker, "*") + deps = [ + "//android_webview/lib", + "//android_webview/lib:webview_entry_point", + ] + is_webview = true + } +} + +if (defined(android_secondary_abi_toolchain)) { + # Note here that on a given system, the webview-only library needs the same + # library name as the browser library, since the system webview factory will + # differentiate only by ABI. + if (current_toolchain == android_secondary_abi_toolchain) { + # This target is the 32-bit WebView library that pairs with a 64-bit + # browser. It is suffixed with _64 because its name must match the 64-bit + # browser library. + webview_alternate_library("monochrome_64") { + } + } else { + # Inverse of above, for the original 32-bit case. + webview_alternate_library("monochrome") { + } + } +} else { + # 32-bit WebView library used in 32-bit only builds of 64/32 targets. + webview_alternate_library("monochrome_64") { + } +} + +# Contains all Java dependencies used by WebView. +# TODO(crbug.com/934152): Rename this to android_webview_java. It has a +# temporary name because GN doesn't allow the direction +# of existing dependencies to be reversed. +java_group("android_webview_step1_java") { + deps = [ + ":browser_java", + + # This includes AwResource, which may be called via JNI. We're including it + # here because there's currently no good way to enforce that it gets included + # when it's depended on via JNI. + ":common_java", + "//android_webview/glue", + "//android_webview/nonembedded:nonembedded_java", + "//android_webview/support_library:support_lib_glue_java", + ] + + if (webview_includes_weblayer) { + deps += [ + "//components/viz/service:service_java", + "//weblayer/browser/java", + ] + } +} + +# An empty group included in //BUILD.gn to make this and other WebView build +# files reachable by GN. +group("empty_group") { } generate_jni("common_jni_headers") { @@ -89,19 +226,261 @@ generate_jar_jni("cancellation_signal_android_jar_jni_headers") { classes = [ "android/os/CancellationSignal.class" ] } -jinja_template("system_webview_manifest") { - input = "apk/java/AndroidManifest.xml" - output = system_webview_android_manifest - variables = [ "manifest_package=$system_webview_package_name" ] +android_library("browser_java") { + java_files = [ + "java/src/org/chromium/android_webview/AndroidProtocolHandler.java", + "java/src/org/chromium/android_webview/AutofillActionModeCallback.java", + "java/src/org/chromium/android_webview/AwActionModeCallback.java", + "java/src/org/chromium/android_webview/AwAutofillClient.java", + "java/src/org/chromium/android_webview/AwAutofillManager.java", + "java/src/org/chromium/android_webview/AwAutofillProvider.java", + "java/src/org/chromium/android_webview/AwAutofillUMA.java", + "java/src/org/chromium/android_webview/AwBrowserContext.java", + "java/src/org/chromium/android_webview/AwBrowserProcess.java", + "java/src/org/chromium/android_webview/AwConsoleMessage.java", + "java/src/org/chromium/android_webview/AwContents.java", + "java/src/org/chromium/android_webview/AwContentsBackgroundThreadClient.java", + "java/src/org/chromium/android_webview/AwContentsClient.java", + "java/src/org/chromium/android_webview/AwContentsClientBridge.java", + "java/src/org/chromium/android_webview/AwContentsClientCallbackHelper.java", + "java/src/org/chromium/android_webview/AwContentsIoThreadClient.java", + "java/src/org/chromium/android_webview/AwContentsLifecycleNotifier.java", + "java/src/org/chromium/android_webview/AwContentsStatics.java", + "java/src/org/chromium/android_webview/AwCookieManager.java", + "java/src/org/chromium/android_webview/AwDebug.java", + "java/src/org/chromium/android_webview/AwDevToolsServer.java", + "java/src/org/chromium/android_webview/AwFeatures.java", + "java/src/org/chromium/android_webview/AwFeatureList.java", + "java/src/org/chromium/android_webview/AwFirebaseConfig.java", + "java/src/org/chromium/android_webview/AwFormDatabase.java", + "java/src/org/chromium/android_webview/AwGeolocationPermissions.java", + "java/src/org/chromium/android_webview/AwHistogramRecorder.java", + "java/src/org/chromium/android_webview/AwHttpAuthHandler.java", + "java/src/org/chromium/android_webview/AwLayoutSizer.java", + "java/src/org/chromium/android_webview/AwNetworkChangeNotifierRegistrationPolicy.java", + "java/src/org/chromium/android_webview/AwPdfExporter.java", + "java/src/org/chromium/android_webview/AwPrintDocumentAdapter.java", + "java/src/org/chromium/android_webview/AwProxyController.java", + "java/src/org/chromium/android_webview/AwQuotaManagerBridge.java", + "java/src/org/chromium/android_webview/AwRenderProcess.java", + "java/src/org/chromium/android_webview/AwRenderProcessGoneDetail.java", + "java/src/org/chromium/android_webview/AwScrollOffsetManager.java", + "java/src/org/chromium/android_webview/AwServiceWorkerClient.java", + "java/src/org/chromium/android_webview/AwServiceWorkerController.java", + "java/src/org/chromium/android_webview/AwServiceWorkerSettings.java", + "java/src/org/chromium/android_webview/AwSettings.java", + "java/src/org/chromium/android_webview/AwSupportLibIsomorphic.java", + "java/src/org/chromium/android_webview/AwSwitches.java", + "java/src/org/chromium/android_webview/AwTracingController.java", + "java/src/org/chromium/android_webview/AwVariationsSeedBridge.java", + "java/src/org/chromium/android_webview/AwViewAndroidDelegate.java", + "java/src/org/chromium/android_webview/AwViewMethods.java", + "java/src/org/chromium/android_webview/AwWebContentsDelegate.java", + "java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java", + "java/src/org/chromium/android_webview/AwWebContentsObserver.java", + "java/src/org/chromium/android_webview/AwWebResourceInterceptResponse.java", + "java/src/org/chromium/android_webview/AwWebResourceResponse.java", + "java/src/org/chromium/android_webview/AwZoomControls.java", + "java/src/org/chromium/android_webview/CleanupReference.java", + "java/src/org/chromium/android_webview/ClientCertLookupTable.java", + "java/src/org/chromium/android_webview/DefaultVideoPosterRequestHandler.java", + "java/src/org/chromium/android_webview/ErrorCodeConversionHelper.java", + "java/src/org/chromium/android_webview/FindAddress.java", + "java/src/org/chromium/android_webview/FullScreenView.java", + "java/src/org/chromium/android_webview/HttpAuthDatabase.java", + "java/src/org/chromium/android_webview/InputStreamUtil.java", + "java/src/org/chromium/android_webview/JsPromptResultReceiver.java", + "java/src/org/chromium/android_webview/JsReplyProxy.java", + "java/src/org/chromium/android_webview/JsResultHandler.java", + "java/src/org/chromium/android_webview/JsResultReceiver.java", + "java/src/org/chromium/android_webview/NullAwViewMethods.java", + "java/src/org/chromium/android_webview/OverScrollGlow.java", + "java/src/org/chromium/android_webview/PopupTouchHandleDrawable.java", + "java/src/org/chromium/android_webview/ScrollAccessibilityHelper.java", + "java/src/org/chromium/android_webview/SslUtil.java", + "java/src/org/chromium/android_webview/VariationsSeedLoader.java", + "java/src/org/chromium/android_webview/ViewPositionObserver.java", + "java/src/org/chromium/android_webview/WebMessageListener.java", + "java/src/org/chromium/android_webview/WebMessageListenerHolder.java", + "java/src/org/chromium/android_webview/WebViewChromiumRunQueue.java", + "java/src/org/chromium/android_webview/gfx/AwDrawFnImpl.java", + "java/src/org/chromium/android_webview/gfx/AwFunctor.java", + "java/src/org/chromium/android_webview/gfx/AwGLFunctor.java", + "java/src/org/chromium/android_webview/gfx/AwPicture.java", + "java/src/org/chromium/android_webview/gfx/JavaBrowserViewRendererHelper.java", + "java/src/org/chromium/android_webview/metrics/AwMetricsLogUploader.java", + "java/src/org/chromium/android_webview/metrics/AwMetricsServiceClient.java", + "java/src/org/chromium/android_webview/safe_browsing/AwSafeBrowsingConfigHelper.java", + "java/src/org/chromium/android_webview/safe_browsing/AwSafeBrowsingConversionHelper.java", + "java/src/org/chromium/android_webview/safe_browsing/AwSafeBrowsingResponse.java", + "java/src/org/chromium/android_webview/permission/AwGeolocationCallback.java", + "java/src/org/chromium/android_webview/permission/AwPermissionRequest.java", + "java/src/org/chromium/android_webview/policy/AwPolicyProvider.java", + ] + deps = [ + ":common_aidl_java", + ":common_commandline_java", + ":common_crash_java", + ":common_java", + ":common_platform_services_java", + ":common_variations_utils_java", + ":resources", + "//android_webview/nonembedded:system_webview_manifest", + "//base:base_java", + "//base:jni_java", + "//components/autofill/android:autofill_java", + "//components/autofill/android:provider_java", + "//components/background_task_scheduler:background_task_scheduler_task_ids_java", + "//components/content_capture/android:java", + "//components/crash/android:handler_java", + "//components/crash/android:java", + "//components/embedder_support/android:web_contents_delegate_java", + "//components/minidump_uploader:minidump_uploader_java", + "//components/navigation_interception/android:navigation_interception_java", + "//components/policy/android:policy_java", + "//components/safe_browsing/android:safe_browsing_java", + "//components/variations:load_seed_result_enum_java", + "//components/variations/android:variations_java", + "//components/version_info/android:version_constants_java", + "//components/viz/common:common_java", + "//content/public/android:content_java", + "//device/gamepad:java", + "//mojo/public/java:system_java", + "//mojo/public/java/system:system_impl_java", + "//net/android:net_java", + "//services/network/public/mojom:mojom_java", + "//third_party/android_deps:androidx_annotation_annotation_java", + "//third_party/blink/public:blink_headers_java", + "//ui/android:ui_java", + ] + annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] + + if (enable_spellcheck) { + deps += [ "//components/spellcheck/browser/android:java" ] + } + + srcjar_deps = [ + "//android_webview/browser:browser_enums", + "//components/safe_browsing/db:sb_threat_values", + ] + + android_manifest_for_lint = system_webview_android_manifest + min_sdk_version = 21 +} + +android_library("common_variations_utils_java") { + java_files = [ "java/src/org/chromium/android_webview/common/variations/VariationsUtils.java" ] + deps = [ + "//android_webview/proto:aw_variations_seed_proto_java", + "//base:base_java", + "//components/variations/android:variations_java", + "//third_party/android_deps:com_google_protobuf_protobuf_lite_java", + ] } -jinja_template("trichrome_webview_manifest") { - input = "apk/java/AndroidManifest.xml" - output = trichrome_webview_android_manifest - variables = trichrome_jinja_variables + [ - "manifest_package=$system_webview_package_name", - "library=libmonochrome.so", - ] +# Separate target to allow for a dependency on GmsCore without pulling in all of +# android_webview_java. It compiles the abstract class; implementations are +# compiled separately. +android_library("common_platform_services_java") { + java_files = [ + "java/src/org/chromium/android_webview/common/PlatformServiceBridge.java", + "java/src/org/chromium/android_webview/common/PlatformServiceBridgeImpl.java", + ] + + deps = [ + "//base:base_java", + "//third_party/android_deps:androidx_annotation_annotation_java", + ] + + # The appropriate .class file will be loaded via a dependency to a library + # like :platform_service_bridge_upstream_implementation_java below. We only include the + # .java file because other files in the target depend on it. + jar_excluded_patterns = [ "*/PlatformServiceBridgeImpl.class" ] +} + +# This target compiles the implementation of PlatformServiceBridge for AOSP targets. +android_library("platform_service_bridge_upstream_implementation_java") { + java_files = [ "java/src/org/chromium/android_webview/common/PlatformServiceBridgeImpl.java" ] + deps = [ + ":common_platform_services_java", + ] +} + +android_library("common_crash_java") { + java_files = [ + "java/src/org/chromium/android_webview/common/crash/AwCrashReporterClient.java", + "java/src/org/chromium/android_webview/common/crash/CrashInfo.java", + "java/src/org/chromium/android_webview/common/crash/SystemWideCrashDirectories.java", + ] + + deps = [ + "//base:base_java", + "//base:jni_java", + ] + annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] +} + +android_library("common_java") { + java_files = [ + "java/src/org/chromium/android_webview/common/AwResource.java", + "java/src/org/chromium/android_webview/common/Flag.java", + "java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java", + "java/src/org/chromium/android_webview/common/services/ServiceNames.java", + ] + deps = [ + "//base:base_java", + "//third_party/android_deps:androidx_annotation_annotation_java", + ] +} + +android_library("common_commandline_java") { + java_files = + [ "java/src/org/chromium/android_webview/common/CommandLineUtil.java" ] + + deps = [ + "//base:base_java", + ] +} + +android_aidl("common_aidl") { + import_include = [ "java/src" ] + sources = [ + "java/src/org/chromium/android_webview/common/services/ICrashReceiverService.aidl", + "java/src/org/chromium/android_webview/common/services/IDeveloperUiService.aidl", + "java/src/org/chromium/android_webview/common/services/IVariationsSeedServer.aidl", + ] +} + +android_library("common_aidl_java") { + srcjar_deps = [ ":common_aidl" ] +} + +# Generate ProductConfig.java so that android_webview_product_config_java's +# compile step works. +generate_product_config_srcjar("webview_product_config") { + java_package = webview_product_config_java_package +} + +# ProductConfig.java is excluded from the generated .jar +# (via. jar_excluded_patterns) and the final version is inserted at the APK +# level - with the list of pak locales populated by looking at the assets that +# are listed in the final APK's .build_config. +android_library("android_webview_product_config_java") { + java_files = [ "java/src/org/chromium/android_webview/AwLocaleConfig.java" ] + srcjar_deps = [ ":webview_product_config" ] + jar_excluded_patterns = [ "*/ProductConfig.class" ] +} + +if (enable_resource_whitelist_generation) { + generate_resource_whitelist("system_webview_pak_whitelist") { + deps = [ + ":libwebviewchromium", + ] + inputs = [ + "$root_out_dir/lib.unstripped/libwebviewchromium$shlib_extension", + ] + output = system_webview_pak_whitelist + } } webview_repack_locales("repack_locales") { @@ -193,6 +572,28 @@ android_assets("pak_file_assets") { disable_compression = true } +if (android_64bit_target_cpu) { + android_assets("v8_snapshot_secondary_abi_assets") { + _secondary_abi_out_dir = + get_label_info("//v8($android_secondary_abi_toolchain)", "root_out_dir") + assert(android_64bit_target_cpu, + "32-bit targets shouldn't have secondary abi") + arch_suffix = "32" + if (use_v8_context_snapshot) { + renaming_sources = [ "$_secondary_abi_out_dir/v8_context_snapshot.bin" ] + renaming_destinations = [ "v8_context_snapshot_$arch_suffix.bin" ] + } else { + renaming_sources = [ "$_secondary_abi_out_dir/snapshot_blob.bin" ] + renaming_destinations = [ "snapshot_blob_$arch_suffix.bin" ] + } + disable_compression = true + deps = [ + "//tools/v8_context_snapshot($android_secondary_abi_toolchain)", + "//v8($android_secondary_abi_toolchain)", + ] + } +} + # These assets are needed by both monochrome and stand alone WebView, but not by # Chrome or TrichromeWebView. android_assets("monochrome_webview_assets") { @@ -204,7 +605,7 @@ android_assets("monochrome_webview_assets") { } else { deps += [ "//v8:v8_external_startup_data_assets" ] } - if (android_64bit_target_cpu && build_apk_secondary_abi) { + if (android_64bit_target_cpu) { deps += [ ":v8_snapshot_secondary_abi_assets" ] } } @@ -217,11 +618,6 @@ android_assets("stub_assets") { ] } -android_resources("system_webview_resources") { - resource_dirs = [ "apk/java/res" ] - custom_package = system_webview_package_name -} - android_resources("resources") { resource_dirs = [ "java/res" ] custom_package = "org.chromium.android_webview" @@ -408,551 +804,10 @@ grit("generate_components_strings") { } } -source_set("webview_entry_point") { - deps = [ - ":common", - "//base", - ] - sources = [ - "lib/webview_entry_point.cc", - ] - - if (webview_includes_weblayer) { - defines = [ "WEBVIEW_INCLUDES_WEBLAYER" ] - deps += [ "//weblayer:weblayer_lib" ] - } -} - -shared_library("libwebviewchromium") { - deps = [ - ":webview_entry_point", - "//components/about_ui:about_ui_android", - ] - configs -= [ "//build/config/android:hide_all_but_jni_onload" ] - configs += [ "//build/config/android:hide_all_but_jni" ] -} - -if (android_64bit_target_cpu) { - android_assets("v8_snapshot_secondary_abi_assets") { - _secondary_abi_out_dir = - get_label_info("//v8($android_secondary_abi_toolchain)", "root_out_dir") - assert(android_64bit_target_cpu, - "32-bit targets shouldn't have secondary abi") - arch_suffix = "32" - if (use_v8_context_snapshot) { - renaming_sources = [ "$_secondary_abi_out_dir/v8_context_snapshot.bin" ] - renaming_destinations = [ "v8_context_snapshot_$arch_suffix.bin" ] - } else { - sources = [ - "$root_out_dir/natives_blob.bin", - ] - renaming_sources = [ "$_secondary_abi_out_dir/snapshot_blob.bin" ] - renaming_destinations = [ "snapshot_blob_$arch_suffix.bin" ] - } - disable_compression = true - deps = [ - "//tools/v8_context_snapshot($android_secondary_abi_toolchain)", - "//v8($android_secondary_abi_toolchain)", - ] - } -} - -if (defined(android_secondary_abi_toolchain)) { - template("webview_library") { - chrome_common_shared_library(target_name) { - forward_variables_from(invoker, "*") - deps = [ - ":webview_entry_point", - ] - is_webview = true - } - } - - # Note here that on a given system, the webview-only library needs the same - # library name as the browser library, since the system webview factory will - # differentiate only by ABI. - if (current_toolchain == android_secondary_abi_toolchain) { - # This target is the 32-bit WebView library that pairs with a 64-bit - # browser. It is suffixed with _64 because its name must match the 64-bit - # browser library. - webview_library("monochrome_64") { - } - } else { - # Inverse of above, for the original 32-bit case. - webview_library("monochrome") { - } - } -} - -if (enable_resource_whitelist_generation) { - generate_resource_whitelist("system_webview_pak_whitelist") { - deps = [ - ":libwebviewchromium", - ] - inputs = [ - "$root_out_dir/lib.unstripped/libwebviewchromium$shlib_extension", - ] - output = system_webview_pak_whitelist - } -} - -source_set("common") { - sources = [ - "lib/aw_main_delegate.cc", - "lib/aw_main_delegate.h", - "lib/webview_jni_onload.cc", - "lib/webview_jni_onload.h", - ] - - deps = [ - ":browser_jni_headers", - "//android_webview/apk", - "//android_webview/apk:webview_license_provider", - "//android_webview/browser", - "//android_webview/browser/gfx", - "//android_webview/common", - "//android_webview/gpu", - "//android_webview/renderer", - "//components/autofill/core/common", - "//components/crash/android:crashpad_main", - "//components/gwp_asan/buildflags", - "//components/safe_browsing/android:safe_browsing_api_handler", - "//components/services/heap_profiling/public/cpp", - "//components/spellcheck:buildflags", - "//components/spellcheck/common", - "//components/version_info", - "//components/version_info/android:channel_getter", - "//content/public/app:both", - "//content/public/browser", - "//content/public/common:content_descriptor_keys", - "//gin", - "//gpu/command_buffer/service", - "//gpu/ipc:gl_in_process_context", - "//ui/events:gesture_detection", - ] - - if (enable_gwp_asan) { - deps += [ "//components/gwp_asan/client" ] - } - - if (webview_includes_weblayer) { - defines = [ "WEBVIEW_INCLUDES_WEBLAYER" ] - deps += [ "//weblayer:weblayer_lib" ] - } -} - -java_group("android_webview_java") { - deps = [ - ":browser_java", - ":services_java", - ] -} - -android_library("browser_java") { - java_files = [ - "java/src/org/chromium/android_webview/AndroidProtocolHandler.java", - "java/src/org/chromium/android_webview/AutofillActionModeCallback.java", - "java/src/org/chromium/android_webview/AwActionModeCallback.java", - "java/src/org/chromium/android_webview/AwAutofillClient.java", - "java/src/org/chromium/android_webview/AwAutofillManager.java", - "java/src/org/chromium/android_webview/AwAutofillProvider.java", - "java/src/org/chromium/android_webview/AwAutofillUMA.java", - "java/src/org/chromium/android_webview/AwBrowserContext.java", - "java/src/org/chromium/android_webview/AwBrowserProcess.java", - "java/src/org/chromium/android_webview/AwConsoleMessage.java", - "java/src/org/chromium/android_webview/AwContents.java", - "java/src/org/chromium/android_webview/AwContentsBackgroundThreadClient.java", - "java/src/org/chromium/android_webview/AwContentsClient.java", - "java/src/org/chromium/android_webview/AwContentsClientBridge.java", - "java/src/org/chromium/android_webview/AwContentsClientCallbackHelper.java", - "java/src/org/chromium/android_webview/AwContentsIoThreadClient.java", - "java/src/org/chromium/android_webview/AwContentsLifecycleNotifier.java", - "java/src/org/chromium/android_webview/AwContentsStatics.java", - "java/src/org/chromium/android_webview/AwCookieManager.java", - "java/src/org/chromium/android_webview/AwDebug.java", - "java/src/org/chromium/android_webview/AwDevToolsServer.java", - "java/src/org/chromium/android_webview/AwFeatures.java", - "java/src/org/chromium/android_webview/AwFeatureList.java", - "java/src/org/chromium/android_webview/AwFirebaseConfig.java", - "java/src/org/chromium/android_webview/AwFormDatabase.java", - "java/src/org/chromium/android_webview/AwGeolocationPermissions.java", - "java/src/org/chromium/android_webview/AwHistogramRecorder.java", - "java/src/org/chromium/android_webview/AwHttpAuthHandler.java", - "java/src/org/chromium/android_webview/AwLayoutSizer.java", - "java/src/org/chromium/android_webview/AwNetworkChangeNotifierRegistrationPolicy.java", - "java/src/org/chromium/android_webview/AwPdfExporter.java", - "java/src/org/chromium/android_webview/AwPrintDocumentAdapter.java", - "java/src/org/chromium/android_webview/AwProxyController.java", - "java/src/org/chromium/android_webview/AwQuotaManagerBridge.java", - "java/src/org/chromium/android_webview/AwRenderProcess.java", - "java/src/org/chromium/android_webview/AwRenderProcessGoneDetail.java", - "java/src/org/chromium/android_webview/AwScrollOffsetManager.java", - "java/src/org/chromium/android_webview/AwServiceWorkerClient.java", - "java/src/org/chromium/android_webview/AwServiceWorkerController.java", - "java/src/org/chromium/android_webview/AwServiceWorkerSettings.java", - "java/src/org/chromium/android_webview/AwSettings.java", - "java/src/org/chromium/android_webview/AwSupportLibIsomorphic.java", - "java/src/org/chromium/android_webview/AwSwitches.java", - "java/src/org/chromium/android_webview/AwTracingController.java", - "java/src/org/chromium/android_webview/AwVariationsSeedBridge.java", - "java/src/org/chromium/android_webview/AwViewAndroidDelegate.java", - "java/src/org/chromium/android_webview/AwViewMethods.java", - "java/src/org/chromium/android_webview/AwWebContentsDelegate.java", - "java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java", - "java/src/org/chromium/android_webview/AwWebContentsObserver.java", - "java/src/org/chromium/android_webview/AwWebResourceInterceptResponse.java", - "java/src/org/chromium/android_webview/AwWebResourceResponse.java", - "java/src/org/chromium/android_webview/AwZoomControls.java", - "java/src/org/chromium/android_webview/CleanupReference.java", - "java/src/org/chromium/android_webview/ClientCertLookupTable.java", - "java/src/org/chromium/android_webview/DefaultVideoPosterRequestHandler.java", - "java/src/org/chromium/android_webview/ErrorCodeConversionHelper.java", - "java/src/org/chromium/android_webview/FindAddress.java", - "java/src/org/chromium/android_webview/FullScreenView.java", - "java/src/org/chromium/android_webview/HttpAuthDatabase.java", - "java/src/org/chromium/android_webview/InputStreamUtil.java", - "java/src/org/chromium/android_webview/JsPromptResultReceiver.java", - "java/src/org/chromium/android_webview/JsReplyProxy.java", - "java/src/org/chromium/android_webview/JsResultHandler.java", - "java/src/org/chromium/android_webview/JsResultReceiver.java", - "java/src/org/chromium/android_webview/NullAwViewMethods.java", - "java/src/org/chromium/android_webview/OverScrollGlow.java", - "java/src/org/chromium/android_webview/PopupTouchHandleDrawable.java", - "java/src/org/chromium/android_webview/ResourcesContextWrapperFactory.java", - "java/src/org/chromium/android_webview/ScrollAccessibilityHelper.java", - "java/src/org/chromium/android_webview/SslUtil.java", - "java/src/org/chromium/android_webview/VariationsSeedLoader.java", - "java/src/org/chromium/android_webview/ViewPositionObserver.java", - "java/src/org/chromium/android_webview/WebMessageListener.java", - "java/src/org/chromium/android_webview/WebMessageListenerHolder.java", - "java/src/org/chromium/android_webview/WebViewChromiumRunQueue.java", - "java/src/org/chromium/android_webview/gfx/AwDrawFnImpl.java", - "java/src/org/chromium/android_webview/gfx/AwFunctor.java", - "java/src/org/chromium/android_webview/gfx/AwGLFunctor.java", - "java/src/org/chromium/android_webview/gfx/AwPicture.java", - "java/src/org/chromium/android_webview/gfx/JavaBrowserViewRendererHelper.java", - "java/src/org/chromium/android_webview/metrics/AwMetricsLogUploader.java", - "java/src/org/chromium/android_webview/metrics/AwMetricsServiceClient.java", - "java/src/org/chromium/android_webview/safe_browsing/AwSafeBrowsingConfigHelper.java", - "java/src/org/chromium/android_webview/safe_browsing/AwSafeBrowsingConversionHelper.java", - "java/src/org/chromium/android_webview/safe_browsing/AwSafeBrowsingResponse.java", - "java/src/org/chromium/android_webview/permission/AwGeolocationCallback.java", - "java/src/org/chromium/android_webview/permission/AwPermissionRequest.java", - "java/src/org/chromium/android_webview/policy/AwPolicyProvider.java", - "java/src/org/chromium/android_webview/ui/CrashesListActivity.java", - "java/src/org/chromium/android_webview/ui/util/CrashInfoLoader.java", - "java/src/org/chromium/android_webview/ui/util/UnuploadedFilesStateLoader.java", - "java/src/org/chromium/android_webview/ui/util/UploadedCrashesInfoLoader.java", - "java/src/org/chromium/android_webview/ui/util/WebViewCrashInfoCollector.java", - "java/src/org/chromium/android_webview/ui/util/WebViewCrashLogParser.java", - ] - deps = [ - ":common_aidl_java", - ":common_commandline_java", - ":common_crash_java", - - # This includes AwResource, which may be called via JNI. We're including it - # here because there's currently no good way to enforce that it gets included - # when it's depended on via JNI. - ":common_java", - ":common_platform_services_java", - ":common_variations_utils_java", - ":resources", - ":strings_grd", - ":system_webview_manifest", - "//base:base_java", - "//base:jni_java", - "//components/autofill/android:autofill_java", - "//components/autofill/android:provider_java", - "//components/background_task_scheduler:background_task_scheduler_task_ids_java", - "//components/content_capture/android:java", - "//components/crash/android:handler_java", - "//components/crash/android:java", - "//components/embedder_support/android:application_java", - "//components/embedder_support/android:web_contents_delegate_java", - "//components/minidump_uploader:minidump_uploader_java", - "//components/navigation_interception/android:navigation_interception_java", - "//components/policy/android:policy_java", - "//components/safe_browsing/android:safe_browsing_java", - "//components/variations:load_seed_result_enum_java", - "//components/variations/android:variations_java", - "//components/version_info/android:version_constants_java", - "//components/viz/common:common_java", - "//content/public/android:content_java", - "//device/gamepad:java", - "//mojo/public/java:system_java", - "//mojo/public/java/system:system_impl_java", - "//net/android:net_java", - "//services/network/public/mojom:mojom_java", - "//third_party/android_deps:androidx_annotation_annotation_java", - "//third_party/blink/public:blink_headers_java", - "//ui/android:ui_java", - ] - annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] - - if (enable_spellcheck) { - deps += [ "//components/spellcheck/browser/android:java" ] - } - - if (webview_includes_weblayer) { - deps += [ - "//components/viz/service:service_java", - "//weblayer/browser/java", - ] - } - - srcjar_deps = [ - "//android_webview/browser:browser_enums", - "//components/safe_browsing/db:sb_threat_values", - ] - - android_manifest_for_lint = system_webview_android_manifest - min_sdk_version = 21 -} - -android_library("common_variations_utils_java") { - java_files = [ "java/src/org/chromium/android_webview/common/variations/VariationsUtils.java" ] - deps = [ - "//android_webview/proto:aw_variations_seed_proto_java", - "//base:base_java", - "//components/variations/android:variations_java", - "//third_party/android_deps:com_google_protobuf_protobuf_lite_java", - ] -} - java_strings_grd("strings_grd") { grd_file = "java/strings/android_webview_strings.grd" - outputs = [ - "values-am/android_webview_strings.xml", - "values-ar/android_webview_strings.xml", - "values-bg/android_webview_strings.xml", - "values-bn/android_webview_strings.xml", - "values-ca/android_webview_strings.xml", - "values-cs/android_webview_strings.xml", - "values-da/android_webview_strings.xml", - "values-de/android_webview_strings.xml", - "values-el/android_webview_strings.xml", - "values-en-rGB/android_webview_strings.xml", - "values-es/android_webview_strings.xml", - "values-es-rUS/android_webview_strings.xml", - "values-et/android_webview_strings.xml", - "values-fa/android_webview_strings.xml", - "values-fi/android_webview_strings.xml", - "values-fr/android_webview_strings.xml", - "values-gu/android_webview_strings.xml", - "values-hi/android_webview_strings.xml", - "values-hr/android_webview_strings.xml", - "values-hu/android_webview_strings.xml", - "values-in/android_webview_strings.xml", - "values-it/android_webview_strings.xml", - "values-iw/android_webview_strings.xml", - "values-ja/android_webview_strings.xml", - "values-kn/android_webview_strings.xml", - "values-ko/android_webview_strings.xml", - "values-lt/android_webview_strings.xml", - "values-lv/android_webview_strings.xml", - "values-ml/android_webview_strings.xml", - "values-mr/android_webview_strings.xml", - "values-ms/android_webview_strings.xml", - "values-nb/android_webview_strings.xml", - "values-nl/android_webview_strings.xml", - "values-pl/android_webview_strings.xml", - "values-pt-rBR/android_webview_strings.xml", - "values-pt-rPT/android_webview_strings.xml", - "values-ro/android_webview_strings.xml", - "values-ru/android_webview_strings.xml", - "values-sk/android_webview_strings.xml", - "values-sl/android_webview_strings.xml", - "values-sr/android_webview_strings.xml", - "values-sv/android_webview_strings.xml", - "values-sw/android_webview_strings.xml", - "values-ta/android_webview_strings.xml", - "values-te/android_webview_strings.xml", - "values-th/android_webview_strings.xml", - "values-tl/android_webview_strings.xml", - "values-tr/android_webview_strings.xml", - "values-uk/android_webview_strings.xml", - "values-vi/android_webview_strings.xml", - "values-zh-rCN/android_webview_strings.xml", - "values-zh-rTW/android_webview_strings.xml", - "values/android_webview_strings.xml", - ] -} - -# Separate target to allow for a dependency on GmsCore without pulling in all of -# android_webview_java. It compiles the abstract class; implementations are -# compiled separately. -android_library("common_platform_services_java") { - java_files = [ - "java/src/org/chromium/android_webview/common/PlatformServiceBridge.java", - "java/src/org/chromium/android_webview/common/PlatformServiceBridgeImpl.java", - ] - - deps = [ - "//base:base_java", - "//third_party/android_deps:androidx_annotation_annotation_java", - ] - - # The appropriate .class file will be loaded via a dependency to a library - # like :platform_service_bridge_upstream_implementation_java below. We only include the - # .java file because other files in the target depend on it. - jar_excluded_patterns = [ "*/PlatformServiceBridgeImpl.class" ] -} - -# This target compiles the implementation of PlatformServiceBridge for AOSP targets. -android_library("platform_service_bridge_upstream_implementation_java") { - java_files = [ "java/src/org/chromium/android_webview/common/PlatformServiceBridgeImpl.java" ] - deps = [ - ":common_platform_services_java", - ] -} - -android_library("common_crash_java") { - java_files = [ - "java/src/org/chromium/android_webview/common/crash/AwCrashReporterClient.java", - "java/src/org/chromium/android_webview/common/crash/CrashInfo.java", - "java/src/org/chromium/android_webview/common/crash/SystemWideCrashDirectories.java", - ] - - deps = [ - "//base:base_java", - "//base:jni_java", - ] - annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] -} - -android_library("common_java") { - java_files = [ - "java/src/org/chromium/android_webview/common/AwResource.java", - "java/src/org/chromium/android_webview/common/ServiceNames.java", - ] - deps = [ - "//base:base_java", - ] -} - -android_library("common_commandline_java") { - java_files = - [ "java/src/org/chromium/android_webview/common/CommandLineUtil.java" ] - - deps = [ - "//base:base_java", - ] -} - -android_aidl("services_variations_seed_server_aidl") { - import_include = [ "java/src" ] - sources = [ - "java/src/org/chromium/android_webview/services/IVariationsSeedServer.aidl", - ] -} - -android_aidl("services_crash_receiver_aidl") { - import_include = [ "java/src" ] - sources = [ - "java/src/org/chromium/android_webview/services/ICrashReceiverService.aidl", - ] -} - -android_library("common_aidl_java") { - srcjar_deps = [ - ":services_crash_receiver_aidl", - ":services_variations_seed_server_aidl", - ] -} - -# Keep WebView's services separate from other WebView code to keep their deps clean -# (and make them easy to move). -android_library("services_java") { - java_files = [ - "java/src/org/chromium/android_webview/services/AwMinidumpUploadJobService.java", - "java/src/org/chromium/android_webview/services/AwMinidumpUploaderDelegate.java", - "java/src/org/chromium/android_webview/services/AwVariationsSeedFetcher.java", - "java/src/org/chromium/android_webview/services/CrashReceiverService.java", - "java/src/org/chromium/android_webview/services/VariationsSeedHolder.java", - "java/src/org/chromium/android_webview/services/VariationsSeedServer.java", - ] - deps = [ - ":common_aidl_java", - ":common_commandline_java", - ":common_crash_java", - ":common_platform_services_java", - ":common_variations_utils_java", - ":system_webview_manifest", - "//base:base_java", - "//components/background_task_scheduler:background_task_scheduler_task_ids_java", - "//components/minidump_uploader:minidump_uploader_java", - "//components/variations/android:variations_java", - "//components/version_info/android:version_constants_java", - ] - android_manifest_for_lint = system_webview_android_manifest - min_sdk_version = 21 -} - -# Generate LocaleConfig.java so that android_webview_locale_config_java's -# compile step works. -generate_locale_config_srcjar("webview_locale_config") { - java_package = webview_locale_config_java_package -} - -# LocaleConfig.java is excluded from the generated .jar -# (via. jar_excluded_patterns) and the final version is inserted at the APK -# level - with the list of pak locales populated by looking at the assets that -# are listed in the final APK's .build_config. -android_library("android_webview_locale_config_java") { - java_files = [ "java/src/org/chromium/android_webview/AwLocaleConfig.java" ] - srcjar_deps = [ ":webview_locale_config" ] - jar_excluded_patterns = [ "*/LocaleConfig.class" ] -} - -if (public_android_sdk) { - system_webview_apk_tmpl("system_webview_apk") { - android_manifest = system_webview_android_manifest - android_manifest_dep = ":system_webview_manifest" - deps = upstream_only_webview_deps - apk_name = "SystemWebView" - min_sdk_version = 21 - } - - android_resource_sizes_test("resource_sizes_system_webview_apk") { - apk_name = "SystemWebView" - data_deps = [ - ":system_webview_apk", - ] - } - - system_webview_apk_tmpl("trichrome_webview_apk") { - android_manifest = trichrome_webview_android_manifest - android_manifest_dep = ":trichrome_webview_manifest" - - # TODO(torne): make minsdk=Q once we no longer build hacky P version - min_sdk_version = android_sdk_version - - deps = upstream_only_webview_deps - apk_name = "TrichromeWebView" - use_trichrome_library = true - uncompress_dex = use_uncompressed_dex - if (trichrome_synchronized_proguard) { - static_library_provider = "//chrome/android:trichrome_library_apk" - } - } - - # This target should be removed once Trichrome only supports Chrome bundle - # builds. - system_webview_apk_tmpl("trichrome_webview_for_bundle_apk") { - android_manifest = trichrome_webview_android_manifest - android_manifest_dep = ":trichrome_webview_manifest" - - # TODO(torne): make minsdk=Q once we no longer build hacky P version - min_sdk_version = android_sdk_version - - deps = upstream_only_webview_deps - apk_name = "TrichromeWebViewForBundle" - use_trichrome_library = true - uncompress_dex = use_uncompressed_dex - if (trichrome_synchronized_proguard) { - static_library_provider = - "//chrome/android:trichrome_library_for_bundle_apk" - } - } + outputs = [ "values/android_webview_strings.xml" ] + + process_file_template( + android_bundle_locales_as_resources, + [ "values-{{source_name_part}}/android_webview_strings.xml" ]) } diff --git a/chromium/android_webview/apk/BUILD.gn b/chromium/android_webview/apk/BUILD.gn deleted file mode 100644 index cc44b703d9d..00000000000 --- a/chromium/android_webview/apk/BUILD.gn +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright 2017 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/rules.gni") - -generate_jni("apk_jni_headers") { - sources = [ - "java/src/com/android/webview/chromium/WebViewApkApplication.java", - ] -} - -# Monochrome uses a different copy of LicenseContentProvider.java. -# This one is used in Trichrome and SystemWebview. -android_library("webview_license_provider_java") { - java_files = - [ "java/src/com/android/webview/chromium/LicenseContentProvider.java" ] - deps = [ - ":apk_java", - "//base:base_java", - "//components/about_ui/android:aboutui_java", - ] -} - -# Contains the native dependencies used by LicenseContentProvider via JNI. -# This should be included in the shared library of any APK that depends on -# :webview_license_provider_java. -group("webview_license_provider") { - deps = [ - "//components/about_ui", - ] -} - -# Contains classes needed by the webview apk, but not used when loading the apk -# as a library. -android_library("apk_java") { - java_files = [ - "java/src/com/android/webview/chromium/LicenseActivity.java", - "java/src/com/android/webview/chromium/WebViewApkApplication.java", - ] - deps = [ - "//android_webview:android_webview_locale_config_java", - "//android_webview:common_commandline_java", - "//base:base_java", - "//base:jni_java", - "//components/embedder_support/android:application_java", - "//ui/android:ui_java", - ] - annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] -} - -source_set("apk") { - sources = [ - "webview_apk_application.cc", - ] - deps = [ - ":apk_jni_headers", - "//android_webview/common", - "//base", - ] -} diff --git a/chromium/android_webview/browser/BUILD.gn b/chromium/android_webview/browser/BUILD.gn index 72b458039a5..643e623bb51 100644 --- a/chromium/android_webview/browser/BUILD.gn +++ b/chromium/android_webview/browser/BUILD.gn @@ -36,8 +36,6 @@ source_set("browser") { "aw_content_browser_client.h", "aw_content_browser_overlay_manifest.cc", "aw_content_browser_overlay_manifest.h", - "aw_content_renderer_overlay_manifest.cc", - "aw_content_renderer_overlay_manifest.h", "aw_contents.cc", "aw_contents.h", "aw_contents_client_bridge.cc", @@ -163,6 +161,10 @@ source_set("browser") { "renderer_host/aw_render_view_host_ext.h", "safe_browsing/aw_safe_browsing_blocking_page.cc", "safe_browsing/aw_safe_browsing_blocking_page.h", + "safe_browsing/aw_safe_browsing_navigation_throttle.cc", + "safe_browsing/aw_safe_browsing_navigation_throttle.h", + "safe_browsing/aw_safe_browsing_subresource_helper.cc", + "safe_browsing/aw_safe_browsing_subresource_helper.h", "safe_browsing/aw_safe_browsing_ui_manager.cc", "safe_browsing/aw_safe_browsing_ui_manager.h", "safe_browsing/aw_safe_browsing_whitelist_manager.cc", @@ -194,6 +196,9 @@ source_set("browser") { "//components/cdm/browser", "//components/content_capture/android", "//components/content_capture/browser", + + # Called via JNI in CrashpadMain + "//components/crash/android:crashpad_main", "//components/crash/content/app", "//components/crash/content/browser", "//components/embedder_support/android:web_contents_delegate", @@ -209,6 +214,7 @@ source_set("browser") { "//components/prefs", "//components/printing/browser", "//components/printing/common", + "//components/printing/common:mojo_interfaces", "//components/safe_browsing", "//components/safe_browsing:features", "//components/safe_browsing:ping_manager", @@ -241,6 +247,7 @@ source_set("browser") { "//third_party/crashpad/crashpad/client", "//ui/android", "//ui/gl", + "//ui/native_theme", "//ui/resources", "//ui/touch_selection", ] diff --git a/chromium/android_webview/browser/gfx/BUILD.gn b/chromium/android_webview/browser/gfx/BUILD.gn index 5050f547f7e..227523bece4 100644 --- a/chromium/android_webview/browser/gfx/BUILD.gn +++ b/chromium/android_webview/browser/gfx/BUILD.gn @@ -34,8 +34,12 @@ source_set("gfx") { "hardware_renderer.h", "hardware_renderer_single_thread.cc", "hardware_renderer_single_thread.h", + "hardware_renderer_viz.cc", + "hardware_renderer_viz.h", "java_browser_view_renderer_helper.cc", "java_browser_view_renderer_helper.h", + "output_surface_provider_webview.cc", + "output_surface_provider_webview.h", "parent_compositor_draw_constraints.cc", "parent_compositor_draw_constraints.h", "parent_output_surface.cc", diff --git a/chromium/android_webview/common/js_java_interaction/interfaces.mojom b/chromium/android_webview/common/js_java_interaction/interfaces.mojom index ec016b360a6..ee295d5772a 100644 --- a/chromium/android_webview/common/js_java_interaction/interfaces.mojom +++ b/chromium/android_webview/common/js_java_interaction/interfaces.mojom @@ -28,7 +28,8 @@ interface JsToJavaMessaging { // When there is a new JavaToJsMessaging created in renderer, we need to send // it to browser, so browser could send message back to Js. - SetJavaToJsMessaging(pending_remote<JavaToJsMessaging> java_to_js_messaging); + SetJavaToJsMessaging( + pending_associated_remote<JavaToJsMessaging> java_to_js_messaging); }; // For Java to reply back to injected JavaScript object. Implemented by diff --git a/chromium/android_webview/glue/BUILD.gn b/chromium/android_webview/glue/BUILD.gn index ce36f0bd2a1..8eccad0a0bc 100644 --- a/chromium/android_webview/glue/BUILD.gn +++ b/chromium/android_webview/glue/BUILD.gn @@ -9,17 +9,18 @@ import("//build/config/android/rules.gni") android_library("glue") { deps = [ - "//android_webview:android_webview_java", - "//android_webview:android_webview_locale_config_java", + "//android_webview:android_webview_product_config_java", + "//android_webview:browser_java", "//android_webview:common_commandline_java", "//android_webview:common_java", - "//android_webview:system_webview_manifest", + "//android_webview/nonembedded:system_webview_manifest", "//android_webview/support_library/boundary_interfaces:boundary_interface_java", "//android_webview/support_library/callback:callback_java", "//base:base_java", "//base:jni_java", "//components/autofill/android:autofill_java", "//components/autofill/android:provider_java", + "//components/content_capture/android:java", "//components/embedder_support/android:application_java", "//content/public/android:content_java", "//net/android:net_java", @@ -42,6 +43,7 @@ android_library("glue") { "java/src/com/android/webview/chromium/GlueApiHelperForO.java", "java/src/com/android/webview/chromium/GlueApiHelperForOMR1.java", "java/src/com/android/webview/chromium/GlueApiHelperForP.java", + "java/src/com/android/webview/chromium/GlueApiHelperForQ.java", "java/src/com/android/webview/chromium/GraphicsUtils.java", "java/src/com/android/webview/chromium/MonochromeLibraryPreloader.java", "java/src/com/android/webview/chromium/SafeBrowsingResponseAdapter.java", @@ -68,9 +70,12 @@ android_library("glue") { "java/src/com/android/webview/chromium/WebViewChromiumFactoryProviderForO.java", "java/src/com/android/webview/chromium/WebViewChromiumFactoryProviderForOMR1.java", "java/src/com/android/webview/chromium/WebViewChromiumFactoryProviderForP.java", + "java/src/com/android/webview/chromium/WebViewChromiumFactoryProviderForQ.java", "java/src/com/android/webview/chromium/WebViewContentsClientAdapter.java", "java/src/com/android/webview/chromium/WebViewDatabaseAdapter.java", "java/src/com/android/webview/chromium/WebViewDelegateFactory.java", + "java/src/com/android/webview/chromium/WebViewRenderProcessAdapter.java", + "java/src/com/android/webview/chromium/WebViewRenderProcessClientAdapter.java", "java/src/com/android/webview/chromium/WebkitToSharedGlueConverter.java", ] diff --git a/chromium/android_webview/lib/BUILD.gn b/chromium/android_webview/lib/BUILD.gn new file mode 100644 index 00000000000..7ae4858e2c6 --- /dev/null +++ b/chromium/android_webview/lib/BUILD.gn @@ -0,0 +1,70 @@ +# 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("//components/gwp_asan/buildflags/buildflags.gni") +import("//components/spellcheck/spellcheck_build_features.gni") +import("//weblayer/variables.gni") + +source_set("lib") { + sources = [ + "aw_main_delegate.cc", + "aw_main_delegate.h", + "webview_jni_onload.cc", + "webview_jni_onload.h", + ] + + deps = [ + "//android_webview/browser", + "//android_webview/browser/gfx", + "//android_webview/common", + "//android_webview/gpu", + "//android_webview/renderer", + "//base", + "//cc/base", + "//components/autofill/core/common", + "//components/crash/core/common", + "//components/gwp_asan/buildflags", + "//components/safe_browsing/android:safe_browsing_api_handler", + "//components/services/heap_profiling/public/cpp", + "//components/spellcheck:buildflags", + "//components/version_info", + "//components/version_info/android:channel_getter", + "//components/viz/common", + "//content/public/app:both", + "//content/public/browser", + "//content/public/common", + "//content/public/common:content_descriptor_keys", + "//gin", + "//gpu/command_buffer/service", + "//gpu/config", + "//gpu/ipc:gl_in_process_context", + "//media", + "//media:media_buildflags", + "//ui/base", + "//ui/events:gesture_detection", + ] + + if (enable_gwp_asan) { + deps += [ "//components/gwp_asan/client" ] + } + + if (enable_spellcheck) { + deps += [ "//components/spellcheck/common" ] + } +} + +source_set("webview_entry_point") { + deps = [ + ":lib", + "//base", + ] + sources = [ + "webview_entry_point.cc", + ] + + if (webview_includes_weblayer) { + defines = [ "WEBVIEW_INCLUDES_WEBLAYER" ] + deps += [ "//weblayer:weblayer_lib" ] + } +} diff --git a/chromium/android_webview/nonembedded/BUILD.gn b/chromium/android_webview/nonembedded/BUILD.gn new file mode 100644 index 00000000000..fca87703ead --- /dev/null +++ b/chromium/android_webview/nonembedded/BUILD.gn @@ -0,0 +1,155 @@ +# Copyright 2017 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("//android_webview/system_webview_apk_tmpl.gni") +import("//android_webview/variables.gni") +import("//build/config/android/rules.gni") + +generate_jni("nonembedded_jni_headers") { + sources = [ + "java/src/org/chromium/android_webview/nonembedded/WebViewApkApplication.java", + ] +} + +# Contains classes needed by the webview apk, but not used when loading the apk +# as a library. +android_library("nonembedded_java") { + java_files = [ + "java/src/org/chromium/android_webview/nonembedded/LicenseActivity.java", + "java/src/org/chromium/android_webview/nonembedded/LicenseContentProvider.java", + "java/src/org/chromium/android_webview/nonembedded/WebViewApkApplication.java", + ] + deps = [ + ":devui_java", + ":services_java", + "//android_webview:android_webview_product_config_java", + "//android_webview:common_commandline_java", + "//base:base_java", + "//base:jni_java", + "//components/about_ui/android:aboutui_java", + "//components/embedder_support/android:application_java", + "//ui/android:ui_java", + ] + annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] +} + +android_library("devui_java") { + java_files = [ + "java/src/org/chromium/android_webview/devui/CrashesListActivity.java", + "java/src/org/chromium/android_webview/devui/FlagsActivity.java", + "java/src/org/chromium/android_webview/devui/MainActivity.java", + "java/src/org/chromium/android_webview/devui/PersistentErrorView.java", + "java/src/org/chromium/android_webview/devui/WebViewPackageError.java", + "java/src/org/chromium/android_webview/devui/util/CrashInfoLoader.java", + "java/src/org/chromium/android_webview/devui/util/NavigationMenuHelper.java", + "java/src/org/chromium/android_webview/devui/util/UnuploadedFilesStateLoader.java", + "java/src/org/chromium/android_webview/devui/util/UploadedCrashesInfoLoader.java", + "java/src/org/chromium/android_webview/devui/util/WebViewCrashInfoCollector.java", + "java/src/org/chromium/android_webview/devui/util/WebViewCrashLogParser.java", + "java/src/org/chromium/android_webview/devui/util/WebViewPackageHelper.java", + ] + deps = [ + ":devui_resources", + ":system_webview_manifest", + "//android_webview:common_aidl_java", + "//android_webview:common_commandline_java", + "//android_webview:common_crash_java", + "//android_webview:common_java", + "//android_webview:common_platform_services_java", + "//base:base_java", + "//components/minidump_uploader:minidump_uploader_java", + "//third_party/android_deps:androidx_annotation_annotation_java", + "//ui/android:ui_java", + ] + android_manifest_for_lint = system_webview_android_manifest + min_sdk_version = 21 +} + +android_library("services_java") { + java_files = [ + "java/src/org/chromium/android_webview/services/AwMinidumpUploadJobService.java", + "java/src/org/chromium/android_webview/services/AwMinidumpUploaderDelegate.java", + "java/src/org/chromium/android_webview/services/AwVariationsSeedFetcher.java", + "java/src/org/chromium/android_webview/services/CrashReceiverService.java", + "java/src/org/chromium/android_webview/services/DeveloperUiService.java", + "java/src/org/chromium/android_webview/services/VariationsSeedHolder.java", + "java/src/org/chromium/android_webview/services/VariationsSeedServer.java", + ] + deps = [ + ":system_webview_manifest", + "//android_webview:common_aidl_java", + "//android_webview:common_commandline_java", + "//android_webview:common_crash_java", + "//android_webview:common_java", + "//android_webview:common_platform_services_java", + "//android_webview:common_variations_utils_java", + "//base:base_java", + "//components/background_task_scheduler:background_task_scheduler_task_ids_java", + "//components/minidump_uploader:minidump_uploader_java", + "//components/variations/android:variations_java", + "//components/version_info/android:version_constants_java", + ] + android_manifest_for_lint = system_webview_android_manifest + min_sdk_version = 21 +} + +source_set("nonembedded") { + sources = [ + "webview_apk_application.cc", + ] + deps = [ + ":nonembedded_jni_headers", + "//android_webview/common", + "//base", + + # Called via JNI by LicenseContentProvider in :nonembedded_java. + "//components/about_ui:about_ui_android", + ] +} + +# WebView icon used by upstream SystemWebView and Trichrome. +android_resources("icon_resources") { + resource_dirs = [ "java/res_icon" ] + custom_package = "org.chromium.android_webview.icon" +} + +android_resources("devui_resources") { + resource_dirs = [ "java/res_devui" ] + custom_package = "org.chromium.android_webview.devui" +} + +android_resources("devui_launcher_icon_resources") { + resource_dirs = [] + custom_package = "org.chromium.android_webview.devui.icon" + android_manifest = "java/DeveloperUiLauncherManifest.xml" +} + +jinja_template("system_webview_manifest") { + input = "java/AndroidManifest.xml" + output = system_webview_android_manifest + variables = [ "manifest_package=$system_webview_package_name" ] +} + +jinja_template("trichrome_webview_manifest") { + input = "java/AndroidManifest.xml" + output = trichrome_webview_android_manifest + variables = trichrome_jinja_variables + [ + "trichrome_version=$trichrome_version_code", + "manifest_package=$system_webview_package_name", + "library=libmonochrome.so", + ] +} + +if (android_64bit_target_cpu) { + jinja_template("trichrome_webview_64_32_manifest") { + input = "java/AndroidManifest.xml" + output = trichrome_webview_64_32_android_manifest + variables = trichrome_jinja_variables + [ + "use32bitAbi=", + "trichrome_version=$trichrome_64_32_version_code", + "manifest_package=$system_webview_package_name", + "library=libmonochrome_64.so", + ] + } +} diff --git a/chromium/android_webview/renderer/BUILD.gn b/chromium/android_webview/renderer/BUILD.gn index bc17f6591d6..6b0d011f25c 100644 --- a/chromium/android_webview/renderer/BUILD.gn +++ b/chromium/android_webview/renderer/BUILD.gn @@ -18,10 +18,14 @@ source_set("renderer") { "aw_render_thread_observer.h", "aw_render_view_ext.cc", "aw_render_view_ext.h", + "aw_safe_browsing_error_page_controller_delegate_impl.cc", + "aw_safe_browsing_error_page_controller_delegate_impl.h", "aw_url_loader_throttle_provider.cc", "aw_url_loader_throttle_provider.h", "aw_websocket_handshake_throttle_provider.cc", "aw_websocket_handshake_throttle_provider.h", + "browser_exposed_renderer_interfaces.cc", + "browser_exposed_renderer_interfaces.h", "js_java_interaction/js_binding.cc", "js_java_interaction/js_binding.h", "js_java_interaction/js_java_configurator.cc", @@ -46,6 +50,9 @@ source_set("renderer") { "//components/safe_browsing:features", "//components/safe_browsing/common", "//components/safe_browsing/renderer:throttles", + "//components/security_interstitials/content/renderer:security_interstitial_page_controller", + "//components/security_interstitials/core", + "//components/security_interstitials/core/common/mojom", "//components/spellcheck:buildflags", "//components/spellcheck/renderer", "//components/visitedlink/renderer", diff --git a/chromium/android_webview/support_library/BUILD.gn b/chromium/android_webview/support_library/BUILD.gn index 9cda9e9ad64..f6e2d235e02 100644 --- a/chromium/android_webview/support_library/BUILD.gn +++ b/chromium/android_webview/support_library/BUILD.gn @@ -29,7 +29,7 @@ android_library("support_lib_glue_java") { ] deps = [ - "//android_webview:android_webview_java", + "//android_webview:browser_java", "//android_webview/glue:glue", "//android_webview/support_library/boundary_interfaces:boundary_interface_java", "//android_webview/support_library/callback:callback_java", diff --git a/chromium/android_webview/support_library/callback/BUILD.gn b/chromium/android_webview/support_library/callback/BUILD.gn index b4886e5b787..f02fb205a69 100644 --- a/chromium/android_webview/support_library/callback/BUILD.gn +++ b/chromium/android_webview/support_library/callback/BUILD.gn @@ -13,7 +13,7 @@ android_library("callback_java") { ] deps = [ - "//android_webview:android_webview_java", + "//android_webview:browser_java", "//android_webview/support_library/boundary_interfaces:boundary_interface_java", "//base:base_java", ] diff --git a/chromium/android_webview/system_webview_apk_tmpl.gni b/chromium/android_webview/system_webview_apk_tmpl.gni index 7fac2b858da..a8ba27fd891 100644 --- a/chromium/android_webview/system_webview_apk_tmpl.gni +++ b/chromium/android_webview/system_webview_apk_tmpl.gni @@ -22,80 +22,101 @@ declare_args() { template("system_webview_apk_tmpl") { android_apk(target_name) { - forward_variables_from(invoker, "*") + forward_variables_from(invoker, + "*", + [ + "is_64_bit_browser", + "include_32_bit_webview", + "include_64_bit_webview", + ]) deps += [ + "//android_webview:android_webview_step1_java", "//android_webview:locale_pak_assets", "//android_webview:pak_file_assets", - "//android_webview/apk:apk_java", - "//android_webview/apk:webview_license_provider_java", - "//android_webview/glue", - "//android_webview/support_library:support_lib_glue_java", - "//base:base_java", ] target_sdk_version = android_sdk_version - locale_config_java_packages = [ webview_locale_config_java_package ] + product_config_java_packages = [ webview_product_config_java_package ] if (webview_includes_weblayer) { deps += [ "//weblayer:locale_pak_assets" ] - locale_config_java_packages += [ weblayer_locale_config_java_package ] + product_config_java_packages += [ weblayer_product_config_java_package ] } if (!defined(alternative_android_sdk_dep)) { alternative_android_sdk_dep = webview_framework_dep } + if (webview_devui_show_icon) { + deps += [ "//android_webview/nonembedded:devui_launcher_icon_resources" ] + } + _use_trichrome_library = defined(use_trichrome_library) && use_trichrome_library - if (!_use_trichrome_library || !trichrome_shared_assets) { + if (!_use_trichrome_library) { deps += [ "//android_webview:monochrome_webview_assets" ] } + # Flag whether additional deps and libs should be included for each ABI. + _include_primary_support = false + _include_secondary_support = false + if (!_use_trichrome_library) { shared_libraries = [ "//android_webview:libwebviewchromium" ] - deps += [ - "//third_party/crashpad/crashpad/handler:crashpad_handler_trampoline", - ] - loadable_modules = [ "$root_out_dir/libcrashpad_handler_trampoline.so" ] - - if (build_apk_secondary_abi && android_64bit_target_cpu) { + _include_primary_support = true + shared_resources = true + if (android_64bit_target_cpu) { secondary_abi_shared_libraries = [ "//android_webview:libwebviewchromium($android_secondary_abi_toolchain)" ] - _trampoline = "//third_party/crashpad/crashpad/handler:crashpad_handler_trampoline($android_secondary_abi_toolchain)" - deps += [ _trampoline ] - _secondary_out_dir = get_label_info(_trampoline, "root_out_dir") - secondary_abi_loadable_modules = - [ "$_secondary_out_dir/libcrashpad_handler_trampoline.so" ] + _include_secondary_support = true } - shared_resources = true } else { uncompress_shared_libraries = true - app_as_shared_lib = true # Include placeholder libraries to ensure we are treated as the desired # architecture. if (android_64bit_target_cpu) { - shared_libraries = [ "//android_webview:monochrome" ] - deps += [ - "//third_party/crashpad/crashpad/handler:crashpad_handler_trampoline", - ] - loadable_modules = [ "$root_out_dir/libcrashpad_handler_trampoline.so" ] - - if (build_apk_secondary_abi) { - secondary_native_lib_placeholders = [ "libdummy.so" ] - if (use_v8_context_snapshot) { - deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] - } else { - deps += [ "//v8:v8_external_startup_data_assets" ] + if (invoker.is_64_bit_browser) { + native_lib_placeholders = [ "libdummy.so" ] + if (invoker.include_32_bit_webview) { + secondary_abi_shared_libraries = [ "//android_webview:monochrome_64($android_secondary_abi_toolchain)" ] + deps += [ "//android_webview:v8_snapshot_secondary_abi_assets" ] + _include_secondary_support = true } + } else { + if (invoker.include_64_bit_webview) { + shared_libraries = [ "//android_webview:monochrome" ] + _include_primary_support = true + if (use_v8_context_snapshot) { + deps += + [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ] + } else { + deps += [ "//v8:v8_external_startup_data_assets" ] + } + } + secondary_native_lib_placeholders = [ "libdummy.so" ] } } else { native_lib_placeholders = [ "libdummy.so" ] } } + if (_include_primary_support) { + deps += [ + "//third_party/crashpad/crashpad/handler:crashpad_handler_trampoline", + ] + loadable_modules = [ "$root_out_dir/libcrashpad_handler_trampoline.so" ] + } + if (_include_secondary_support) { + _trampoline = "//third_party/crashpad/crashpad/handler:crashpad_handler_trampoline($android_secondary_abi_toolchain)" + deps += [ _trampoline ] + _secondary_out_dir = get_label_info(_trampoline, "root_out_dir") + secondary_abi_loadable_modules = + [ "$_secondary_out_dir/libcrashpad_handler_trampoline.so" ] + } + if (!_use_trichrome_library || android_64bit_target_cpu) { # 32-bit TrichromeWebView doesn't have a native library, so only do this # for other configs. @@ -125,7 +146,7 @@ template("system_webview_apk_tmpl") { proguard_configs = [] } proguard_configs += [ - "//android_webview/apk/java/proguard.flags", + "//android_webview/nonembedded/java/proguard.flags", "//base/android/proguard/chromium_apk.flags", "//base/android/proguard/chromium_code.flags", ] @@ -142,7 +163,23 @@ template("system_webview_apk_tmpl") { if (!defined(version_code)) { if (_use_trichrome_library) { - version_code = trichrome_version_code + if (android_64bit_target_cpu) { + if (invoker.is_64_bit_browser) { + if (invoker.include_32_bit_webview) { + version_code = trichrome_64_32_version_code + } else { + version_code = trichrome_64_version_code + } + } else { + if (invoker.include_64_bit_webview) { + version_code = trichrome_32_64_version_code + } else { + version_code = trichrome_32_version_code + } + } + } else { + version_code = trichrome_version_code + } } else if (android_channel == "dev") { version_code = webview_dev_version_code } else if (android_channel == "beta") { diff --git a/chromium/android_webview/test/BUILD.gn b/chromium/android_webview/test/BUILD.gn index e810a83a23d..4a356ce0a53 100644 --- a/chromium/android_webview/test/BUILD.gn +++ b/chromium/android_webview/test/BUILD.gn @@ -59,12 +59,12 @@ android_apk("webview_instrumentation_apk") { deps = [ ":webview_instrumentation_apk_assets", ":webview_instrumentation_apk_resources", - "//android_webview:android_webview_java", - "//android_webview:android_webview_locale_config_java", + ":webview_instrumentation_test_utils_java", + "//android_webview:android_webview_product_config_java", + "//android_webview:android_webview_step1_java", "//android_webview:common_java", "//android_webview:locale_pak_assets", "//android_webview:platform_service_bridge_upstream_implementation_java", - "//android_webview/apk:apk_java", "//base:base_java", "//base:base_java_test_support", "//components/heap_profiling:heap_profiling_java_test_support", @@ -91,7 +91,7 @@ android_apk("webview_instrumentation_apk") { "shell/src/org/chromium/android_webview/test/OnlyRunIn.java", "shell/src/org/chromium/android_webview/test/TestContentProvider.java", ] - locale_config_java_packages = [ webview_locale_config_java_package ] + product_config_java_packages = [ webview_product_config_java_package ] shared_libraries = [ ":libstandalonelibwebviewchromium" ] @@ -133,7 +133,6 @@ android_assets("webview_instrumentation_apk_assets") { "shell/assets/visual_state_on_page_commit_visible_test.html", "shell/assets/visual_state_waits_for_js_detached_test.html", "shell/assets/visual_state_waits_for_js_test.html", - "shell/assets/webvr_not_functional_test.html", ] if (use_v8_context_snapshot) { @@ -151,10 +150,11 @@ shared_library("libstandalonelibwebviewchromium") { ldflags = [ "-Wl,-shared,-Bsymbolic" ] deps = [ ":webview_instrumentation_test_native_jni_impl", - "//android_webview:webview_entry_point", + "//android_webview/lib", + "//android_webview/lib:webview_entry_point", + "//android_webview/nonembedded", "//base", "//components/heap_profiling:test_support", - "//components/minidump_uploader", "//content/public/test/android:content_native_test_support", ] configs -= [ "//build/config/android:hide_all_but_jni_onload" ] @@ -167,14 +167,14 @@ instrumentation_test_apk("webview_instrumentation_test_apk") { android_manifest = "../javatests/AndroidManifest.xml" min_sdk_version = 21 deps = [ - "//android_webview:android_webview_java", - "//android_webview:services_java", - "//android_webview:services_variations_seed_server_aidl", + ":webview_instrumentation_test_utils_java", + "//android_webview:android_webview_step1_java", "//android_webview/test/embedded_test_server:aw_net_java_test_support", "//base:base_java", "//base:base_java_test_support", "//components/autofill/android:provider_java", "//components/embedder_support/android:web_contents_delegate_java", + "//components/metrics:metrics_java", "//components/minidump_uploader:minidump_uploader_java", "//components/minidump_uploader:minidump_uploader_javatests", "//components/policy/android:policy_java", @@ -191,6 +191,7 @@ instrumentation_test_apk("webview_instrumentation_test_apk") { "//third_party/android_support_test_runner:rules_java", "//third_party/android_support_test_runner:runner_java", "//third_party/junit", + "//third_party/metrics_proto:metrics_proto_java", "//ui/android:ui_java", ] java_files = [ @@ -228,6 +229,7 @@ instrumentation_test_apk("webview_instrumentation_test_apk") { "../javatests/src/org/chromium/android_webview/test/AwImeTest.java", "../javatests/src/org/chromium/android_webview/test/AwJavaBridgeTest.java", "../javatests/src/org/chromium/android_webview/test/AwLegacyQuirksTest.java", + "../javatests/src/org/chromium/android_webview/test/AwMetricsIntegrationTest.java", "../javatests/src/org/chromium/android_webview/test/AwNetworkConfigurationTest.java", "../javatests/src/org/chromium/android_webview/test/AwPageLoadMetricsTest.java", "../javatests/src/org/chromium/android_webview/test/AwPermissionManagerTest.java", @@ -287,17 +289,16 @@ instrumentation_test_apk("webview_instrumentation_test_apk") { "../javatests/src/org/chromium/android_webview/test/WebViewAsynchronousFindApisTest.java", "../javatests/src/org/chromium/android_webview/test/WebViewFindApisTestRule.java", "../javatests/src/org/chromium/android_webview/test/WebViewModalDialogOverrideTest.java", - "../javatests/src/org/chromium/android_webview/test/WebViewWebVrTest.java", "../javatests/src/org/chromium/android_webview/test/common/variations/VariationsUtilsTest.java", + "../javatests/src/org/chromium/android_webview/test/devui/util/UnuploadedFilesStateLoaderTest.java", + "../javatests/src/org/chromium/android_webview/test/devui/util/UploadedCrashesInfoLoaderTest.java", + "../javatests/src/org/chromium/android_webview/test/devui/util/WebViewCrashInfoCollectorTest.java", + "../javatests/src/org/chromium/android_webview/test/devui/util/WebViewCrashLogParserTest.java", "../javatests/src/org/chromium/android_webview/test/services/CrashReceiverServiceTest.java", "../javatests/src/org/chromium/android_webview/test/services/MinidumpUploaderTest.java", "../javatests/src/org/chromium/android_webview/test/services/MockVariationsSeedServer.java", "../javatests/src/org/chromium/android_webview/test/services/VariationsSeedServerTest.java", "../javatests/src/org/chromium/android_webview/test/services/VisualStateCallbackTest.java", - "../javatests/src/org/chromium/android_webview/test/ui/util/UnuploadedFilesStateLoaderTest.java", - "../javatests/src/org/chromium/android_webview/test/ui/util/UploadedCrashesInfoLoaderTest.java", - "../javatests/src/org/chromium/android_webview/test/ui/util/WebViewCrashInfoCollectorTest.java", - "../javatests/src/org/chromium/android_webview/test/ui/util/WebViewCrashLogParserTest.java", "../javatests/src/org/chromium/android_webview/test/util/AwQuotaManagerBridgeTestUtil.java", "../javatests/src/org/chromium/android_webview/test/util/AwTestTouchUtils.java", "../javatests/src/org/chromium/android_webview/test/util/CommonResources.java", @@ -336,16 +337,26 @@ instrumentation_test_apk("webview_instrumentation_test_apk") { ] } +android_library("webview_instrumentation_test_utils_java") { + testonly = true + java_files = [ "shell/src/org/chromium/android_webview/test/util/MemoryMetricsLoggerUtils.java" ] + deps = [ + "//base:base_java", + "//base:jni_java", + ] + annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] +} + generate_jni("webview_instrumentation_test_native_jni") { testonly = true sources = [ - "../javatests/src/org/chromium/android_webview/test/MemoryMetricsLoggerTest.java", + "shell/src/org/chromium/android_webview/test/util/MemoryMetricsLoggerUtils.java", ] } source_set("webview_instrumentation_test_native_jni_impl") { sources = [ - "../javatests/src/org/chromium/android_webview/test/memory_metrics_logger_test.cc", + "shell/memory_metrics_logger_utils.cc", ] deps = [ @@ -416,7 +427,7 @@ android_assets("android_webview_unittests_assets") { android_library("android_webview_unittests_java") { testonly = true deps = [ - "//android_webview:android_webview_java", + "//android_webview:android_webview_step1_java", "//base:base_java", "//content/public/test/android:content_java_test_support", ] @@ -440,11 +451,11 @@ junit_binary("android_webview_junit_tests") { "../junit/src/org/chromium/android_webview/robolectric/AwLayoutSizerTest.java", "../junit/src/org/chromium/android_webview/robolectric/FindAddressTest.java", "../junit/src/org/chromium/android_webview/robolectric/AwScrollOffsetManagerTest.java", - "../junit/src/org/chromium/android_webview/robolectric/common/ServiceNamesTest.java", + "../junit/src/org/chromium/android_webview/robolectric/common/services/ServiceNamesTest.java", ] deps = [ - "//android_webview:android_webview_java", + "//android_webview:android_webview_step1_java", "//base:base_java_test_support", "//content/public/test/android:content_java_test_support", "//third_party/android_support_test_runner:runner_java", diff --git a/chromium/android_webview/tools/automated_ui_tests/BUILD.gn b/chromium/android_webview/tools/automated_ui_tests/BUILD.gn index e94b93979f7..03b3c41b9a7 100644 --- a/chromium/android_webview/tools/automated_ui_tests/BUILD.gn +++ b/chromium/android_webview/tools/automated_ui_tests/BUILD.gn @@ -69,5 +69,5 @@ instrumentation_test_apk("webview_ui_test_app_test_apk") { data = [ "test/data/", ] - additional_apks = [ system_webview_apk_target ] + use_webview_provider = system_webview_apk_target } diff --git a/chromium/android_webview/tools/system_webview_shell/BUILD.gn b/chromium/android_webview/tools/system_webview_shell/BUILD.gn index f21ba2a07d1..0db7ef53825 100644 --- a/chromium/android_webview/tools/system_webview_shell/BUILD.gn +++ b/chromium/android_webview/tools/system_webview_shell/BUILD.gn @@ -29,11 +29,12 @@ android_apk("system_webview_shell_apk") { "apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java", "apk/src/org/chromium/webview_shell/WebViewCreateDestroyActivity.java", "apk/src/org/chromium/webview_shell/WebViewLayoutTestActivity.java", + "apk/src/org/chromium/webview_shell/WebViewPackageHelper.java", "apk/src/org/chromium/webview_shell/WebViewThreadTestActivity.java", "apk/src/org/chromium/webview_shell/WebViewTracingActivity.java", ] android_manifest = "apk/AndroidManifest.xml" - target_sdk_version = 28 + target_sdk_version = 29 deps = [ ":system_webview_shell_apk_resources", "//base:base_java", @@ -94,5 +95,5 @@ instrumentation_test_apk("system_webview_shell_layout_test_apk") { "//third_party/blink/web_tests/webexposed/global-interface-listing.html", "//third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt", ] - additional_apks = [ system_webview_apk_target ] + use_webview_provider = system_webview_apk_target } diff --git a/chromium/android_webview/variables.gni b/chromium/android_webview/variables.gni index c2da2dd8db8..299b2092e01 100644 --- a/chromium/android_webview/variables.gni +++ b/chromium/android_webview/variables.gni @@ -4,14 +4,20 @@ import("//weblayer/variables.gni") +declare_args() { + # Show a launcher icon to open WebView developer UI, off by default. + webview_devui_show_icon = false +} + system_webview_android_manifest = "$root_gen_dir/android_webview/system_webview_apk/AndroidManifest.xml" trichrome_webview_android_manifest = "$root_gen_dir/android_webview/trichrome_webview_apk/AndroidManifest.xml" +trichrome_webview_64_32_android_manifest = "$root_gen_dir/android_webview/trichrome_webview_64_32_apk/AndroidManifest.xml" upstream_only_webview_deps = [ "//android_webview:platform_service_bridge_upstream_implementation_java", - "//android_webview:system_webview_resources", + "//android_webview/nonembedded:icon_resources", ] if (webview_includes_weblayer) { @@ -19,4 +25,4 @@ if (webview_includes_weblayer) { [ "//weblayer/browser/java:gms_bridge_upstream_impl_java" ] } -webview_locale_config_java_package = "org.chromium.android_webview" +webview_product_config_java_package = "org.chromium.android_webview" |