summaryrefslogtreecommitdiff
path: root/chromium/android_webview
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-03-11 11:32:04 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-03-18 13:40:17 +0000
commit31ccca0778db85c159634478b4ec7997f6704860 (patch)
tree3d33fc3afd9d5ec95541e1bbe074a9cf8da12a0e /chromium/android_webview
parent248b70b82a40964d5594eb04feca0fa36716185d (diff)
downloadqtwebengine-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.gn987
-rw-r--r--chromium/android_webview/apk/BUILD.gn61
-rw-r--r--chromium/android_webview/browser/BUILD.gn11
-rw-r--r--chromium/android_webview/browser/gfx/BUILD.gn4
-rw-r--r--chromium/android_webview/common/js_java_interaction/interfaces.mojom3
-rw-r--r--chromium/android_webview/glue/BUILD.gn11
-rw-r--r--chromium/android_webview/lib/BUILD.gn70
-rw-r--r--chromium/android_webview/nonembedded/BUILD.gn155
-rw-r--r--chromium/android_webview/renderer/BUILD.gn7
-rw-r--r--chromium/android_webview/support_library/BUILD.gn2
-rw-r--r--chromium/android_webview/support_library/callback/BUILD.gn2
-rw-r--r--chromium/android_webview/system_webview_apk_tmpl.gni109
-rw-r--r--chromium/android_webview/test/BUILD.gn51
-rw-r--r--chromium/android_webview/tools/automated_ui_tests/BUILD.gn2
-rw-r--r--chromium/android_webview/tools/system_webview_shell/BUILD.gn5
-rw-r--r--chromium/android_webview/variables.gni10
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"