summaryrefslogtreecommitdiff
path: root/chromium/android_webview
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/android_webview
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-chromium-c30a6232df03e1efbd9f3b226777b07e087a1122.tar.gz
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/android_webview')
-rw-r--r--chromium/android_webview/BUILD.gn164
-rw-r--r--chromium/android_webview/browser/BUILD.gn26
-rw-r--r--chromium/android_webview/common/BUILD.gn28
-rw-r--r--chromium/android_webview/common/aw_origin_matcher.mojom10
-rw-r--r--chromium/android_webview/common/js_java_interaction/interfaces.mojom65
-rw-r--r--chromium/android_webview/glue/BUILD.gn4
-rw-r--r--chromium/android_webview/lib/BUILD.gn2
-rw-r--r--chromium/android_webview/nonembedded/BUILD.gn9
-rw-r--r--chromium/android_webview/proto/BUILD.gn5
-rw-r--r--chromium/android_webview/renderer/BUILD.gn9
-rw-r--r--chromium/android_webview/support_library/BUILD.gn2
-rw-r--r--chromium/android_webview/system_webview_apk_tmpl.gni10
-rw-r--r--chromium/android_webview/test/BUILD.gn57
-rw-r--r--chromium/android_webview/tools/automated_ui_tests/BUILD.gn2
-rw-r--r--chromium/android_webview/tools/system_webview_shell/BUILD.gn1
-rw-r--r--chromium/android_webview/tools/webview_log_verbosifier/BUILD.gn34
16 files changed, 191 insertions, 237 deletions
diff --git a/chromium/android_webview/BUILD.gn b/chromium/android_webview/BUILD.gn
index 5d31c91f68e..455910c1d10 100644
--- a/chromium/android_webview/BUILD.gn
+++ b/chromium/android_webview/BUILD.gn
@@ -24,6 +24,13 @@ if (enable_resource_whitelist_generation) {
"$target_gen_dir/system_webview_pak_whitelist.txt"
}
+# Having //clank present causes different flags because of how play services
+# is wired up.
+# The channel is required because manifest entries vary based on channel.
+_verify_android_configuration =
+ !is_java_debug && !enable_chrome_android_internal &&
+ android_channel == "stable"
+
template("standalone_system_webview_apk_tmpl") {
system_webview_apk_or_module_tmpl(target_name) {
forward_variables_from(invoker, "*")
@@ -32,27 +39,12 @@ template("standalone_system_webview_apk_tmpl") {
"//android_webview/nonembedded:system_webview_manifest"
deps = upstream_only_webview_deps
min_sdk_version = 21
-
- # Material design is a large dependency that pulls in a lot of res/ files.
- # At time of this comment, adding this dep even when unused adds 220kb.
- assert_no_deps = [
- "//third_party/android_deps:com_google_android_material_material_java",
- ]
}
}
# Standalone WebView APK.
standalone_system_webview_apk_tmpl("system_webview_apk") {
apk_name = "SystemWebView"
-
- # Having //clank present causes different flags because of how play services
- # is wired up.
- # The channel is required because manifest entries vary based on channel.
- _verify_android_configuration =
- !enable_chrome_android_internal && android_channel == "stable"
- if (_verify_android_configuration) {
- verify_manifest = true
- }
}
# This version of the WebView APK doesn't include WebLayer java and resources.
@@ -67,6 +59,11 @@ if (enable_webview_bundles) {
standalone_system_webview_apk_tmpl("system_webview_base_bundle_module") {
target_type = "android_app_bundle_module"
is_base_module = true
+
+ if (_verify_android_configuration) {
+ expected_android_manifest =
+ "expectations/system_webview_bundle.AndroidManifest.expected"
+ }
}
system_webview_bundle("system_webview_bundle") {
@@ -75,6 +72,19 @@ if (enable_webview_bundles) {
min_sdk_version = 21
compress_shared_libraries = true
}
+
+ if (is_official_build) {
+ # Used for binary size monitoring.
+ create_app_bundle_minimal_apks("system_webview_minimal_apks") {
+ deps = [ ":system_webview_bundle" ]
+ bundle_path = "$root_build_dir/apks/SystemWebView.aab"
+ }
+
+ android_resource_sizes_test("resource_sizes_system_webview_bundle") {
+ file_path = "$root_build_dir/apks/SystemWebView.minimal.apks"
+ data_deps = [ ":system_webview_minimal_apks" ]
+ }
+ }
}
if (android_64bit_target_cpu) {
@@ -103,11 +113,6 @@ if (android_64bit_target_cpu) {
}
}
-android_resource_sizes_test("resource_sizes_system_webview_apk") {
- apk_name = "SystemWebView"
- data_deps = [ ":system_webview_apk" ]
-}
-
# Trichrome WebView APK.
template("trichrome_webview_tmpl") {
system_webview_apk_or_module_tmpl(target_name) {
@@ -134,21 +139,17 @@ trichrome_webview_tmpl("trichrome_webview_apk") {
if (!is_java_debug) {
static_library_synchronized_proguard = trichrome_synchronized_proguard
}
-
- # Having //clank present causes different flags because of how play services
- # is wired up.
- # The channel is required because manifest entries vary based on channel.
- _verify_android_configuration =
- !enable_chrome_android_internal && android_channel == "stable"
- if (_verify_android_configuration) {
- verify_manifest = true
- }
}
if (enable_webview_bundles) {
trichrome_webview_tmpl("trichrome_webview_base_bundle_module") {
target_type = "android_app_bundle_module"
is_base_module = true
+
+ if (_verify_android_configuration) {
+ expected_android_manifest =
+ "expectations/trichrome_webview_bundle.AndroidManifest.expected"
+ }
}
system_webview_bundle("trichrome_webview_bundle") {
@@ -158,6 +159,19 @@ if (enable_webview_bundles) {
min_sdk_version = 29
static_library_provider = "//chrome/android:trichrome_library_apk"
}
+
+ if (is_official_build) {
+ # Used for binary size monitoring.
+ create_app_bundle_minimal_apks("trichrome_webview_minimal_apks") {
+ deps = [ ":trichrome_webview_bundle" ]
+ bundle_path = "$root_build_dir/apks/TrichromeWebView.aab"
+ }
+
+ android_resource_sizes_test("resource_sizes_trichrome_webview_bundle") {
+ file_path = "$root_build_dir/apks/TrichromeWebView.minimal.apks"
+ data_deps = [ ":trichrome_webview_minimal_apks" ]
+ }
+ }
}
# Trichrome WebView APK for a 64-bit Chrome.
@@ -238,15 +252,21 @@ if (android_64bit_target_cpu) {
}
# The shared library used by standalone WebView.
-shared_library("libwebviewchromium") {
- deps = [
- "//android_webview/lib",
- "//android_webview/lib:webview_entry_point",
- "//android_webview/nonembedded",
- "//third_party/blink/public:blink",
- ]
- configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
- configs += [ "//build/config/android:hide_all_but_jni" ]
+template("libwebviewchromium_tmpl") {
+ shared_library(target_name) {
+ forward_variables_from(invoker, "*")
+ deps = [
+ "//android_webview/lib",
+ "//android_webview/lib:webview_entry_point",
+ "//android_webview/nonembedded",
+ "//third_party/blink/public:blink",
+ ]
+ configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
+ configs += [ "//build/config/android:hide_all_but_jni" ]
+ }
+}
+
+libwebviewchromium_tmpl("libwebviewchromium") {
}
# This template is used to define WebView's alternate-ABI libraries, which are
@@ -300,7 +320,7 @@ java_group("android_webview_no_weblayer_java") {
# 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/glue:glue_java",
"//android_webview/nonembedded:nonembedded_java",
"//android_webview/support_library:support_lib_glue_java",
]
@@ -311,10 +331,7 @@ java_group("android_webview_java") {
deps = [ ":android_webview_no_weblayer_java" ]
if (webview_includes_weblayer) {
- deps += [
- "//components/viz/service:service_java",
- "//weblayer/browser/java",
- ]
+ deps += [ "//weblayer/browser/java" ]
}
}
@@ -355,13 +372,13 @@ generate_jni("browser_jni_headers") {
"java/src/org/chromium/android_webview/AwRenderProcess.java",
"java/src/org/chromium/android_webview/AwSettings.java",
"java/src/org/chromium/android_webview/AwTracingController.java",
- "java/src/org/chromium/android_webview/AwVariationsSeedBridge.java",
"java/src/org/chromium/android_webview/AwWebContentsDelegate.java",
"java/src/org/chromium/android_webview/AwWebResourceInterceptResponse.java",
"java/src/org/chromium/android_webview/AwWebResourceResponse.java",
"java/src/org/chromium/android_webview/InputStreamUtil.java",
"java/src/org/chromium/android_webview/JsReplyProxy.java",
"java/src/org/chromium/android_webview/PopupTouchHandleDrawable.java",
+ "java/src/org/chromium/android_webview/VariationsSeedLoader.java",
"java/src/org/chromium/android_webview/WebMessageListenerHolder.java",
"java/src/org/chromium/android_webview/WebMessageListenerInfo.java",
"java/src/org/chromium/android_webview/gfx/AwDrawFnImpl.java",
@@ -402,7 +419,6 @@ android_library("browser_java") {
"java/src/org/chromium/android_webview/AwDebug.java",
"java/src/org/chromium/android_webview/AwDevToolsServer.java",
"java/src/org/chromium/android_webview/AwFeatureList.java",
- "java/src/org/chromium/android_webview/AwFeatures.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",
@@ -424,7 +440,6 @@ android_library("browser_java") {
"java/src/org/chromium/android_webview/AwSupportLibIsomorphic.java",
"java/src/org/chromium/android_webview/AwThreadUtils.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",
@@ -464,6 +479,7 @@ android_library("browser_java") {
"java/src/org/chromium/android_webview/gfx/JavaBrowserViewRendererHelper.java",
"java/src/org/chromium/android_webview/gfx/RootBeginFrameSourceWebView.java",
"java/src/org/chromium/android_webview/metrics/AwMetricsServiceClient.java",
+ "java/src/org/chromium/android_webview/metrics/AwNonembeddedUmaReplayer.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",
@@ -475,15 +491,15 @@ android_library("browser_java") {
":common_aidl_java",
":common_crash_java",
":common_java",
- ":common_metrics_java",
":common_platform_services_java",
":common_variations_java",
":resources",
"//android_webview/nonembedded:system_webview_manifest",
+ "//android_webview/proto:metrics_bridge_records_proto_java",
"//base:base_java",
"//base:jni_java",
"//components/autofill/android:autofill_java",
- "//components/autofill/android:provider_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",
@@ -499,6 +515,7 @@ android_library("browser_java") {
"//components/variations/android:variations_java",
"//components/version_info/android:version_constants_java",
"//components/viz/common:common_java",
+ "//components/viz/service:service_java",
"//content/public/android:content_java",
"//device/gamepad:java",
"//mojo/public/java:system_java",
@@ -506,6 +523,7 @@ android_library("browser_java") {
"//net/android:net_java",
"//services/network/public/mojom:mojom_java",
"//third_party/android_deps:androidx_annotation_annotation_java",
+ "//third_party/android_deps:com_google_protobuf_protobuf_javalite_java",
"//third_party/blink/public:blink_headers_java",
"//ui/android:ui_java",
"//url:gurl_java",
@@ -522,20 +540,6 @@ android_library("browser_java") {
]
}
-android_library("common_metrics_java") {
- sources = [
- "java/src/org/chromium/android_webview/common/metrics/AwNonembeddedUmaRecorder.java",
- "java/src/org/chromium/android_webview/common/metrics/AwNonembeddedUmaReplayer.java",
- ]
- deps = [
- ":common_aidl_java",
- ":common_java",
- "//android_webview/proto:metrics_bridge_records_proto_java",
- "//base:base_java",
- "//third_party/android_deps:com_google_protobuf_protobuf_javalite_java",
- ]
-}
-
android_library("common_variations_java") {
sources = [
"java/src/org/chromium/android_webview/common/variations/VariationsServiceMetricsHelper.java",
@@ -596,6 +600,7 @@ android_library("common_crash_java") {
android_library("common_java") {
sources = [
+ "java/src/org/chromium/android_webview/common/AwFeatures.java",
"java/src/org/chromium/android_webview/common/AwResource.java",
"java/src/org/chromium/android_webview/common/AwSwitches.java",
"java/src/org/chromium/android_webview/common/CommandLineUtil.java",
@@ -644,10 +649,12 @@ android_library("android_webview_product_config_java") {
}
if (enable_resource_whitelist_generation) {
+ libwebviewchromium_tmpl("system_webview_pak_whitelist_inputs") {
+ ldflags = [ "--collect-inputs-only" ]
+ }
generate_resource_whitelist("system_webview_pak_whitelist") {
- deps = [ ":libwebviewchromium" ]
- inputs =
- [ "$root_out_dir/lib.unstripped/libwebviewchromium$shlib_extension" ]
+ deps = [ ":system_webview_pak_whitelist_inputs" ]
+ inputs = [ "$root_out_dir/lib.unstripped/libsystem_webview_pak_whitelist_inputs$shlib_extension" ]
output = system_webview_pak_whitelist
}
}
@@ -723,6 +730,10 @@ repack("repack_100_percent") {
repack_whitelist = system_webview_pak_whitelist
deps += [ ":system_webview_pak_whitelist" ]
}
+ if (webview_includes_weblayer) {
+ sources += [ "$target_gen_dir/components_resources_100_percent.pak" ]
+ deps += [ ":generate_components_scaled_resources" ]
+ }
}
android_assets("pak_file_assets") {
@@ -926,6 +937,29 @@ grit("generate_components_resources") {
]
}
+grit("generate_components_scaled_resources") {
+ source = "../components/resources/components_scaled_resources.grd"
+
+ # See :generate_webui_resources for an explanation of the allowlist
+ _allowlist = rebase_path("$target_gen_dir/grit_resources_allowlist.txt",
+ root_build_dir)
+
+ grit_flags = [
+ "-w",
+ _allowlist,
+ ]
+ outputs = [
+ "grit/components_scaled_resources.h",
+ "grit/components_scaled_resources_map.cc",
+ "grit/components_scaled_resources_map.h",
+ "components_resources_100_percent.pak",
+ "components_resources_200_percent.pak",
+ "components_resources_300_percent.pak",
+ ]
+
+ deps = [ ":concatenate_resources_allowlists" ]
+}
+
grit("generate_components_strings") {
source = "../components/components_strings.grd"
diff --git a/chromium/android_webview/browser/BUILD.gn b/chromium/android_webview/browser/BUILD.gn
index 5ffbfd442b6..f9072a45be0 100644
--- a/chromium/android_webview/browser/BUILD.gn
+++ b/chromium/android_webview/browser/BUILD.gn
@@ -56,6 +56,8 @@ source_set("browser") {
"aw_feature_list.cc",
"aw_feature_list_creator.cc",
"aw_feature_list_creator.h",
+ "aw_field_trials.cc",
+ "aw_field_trials.h",
"aw_form_database.cc",
"aw_form_database_service.cc",
"aw_form_database_service.h",
@@ -73,8 +75,6 @@ source_set("browser") {
"aw_pdf_exporter.h",
"aw_permission_manager.cc",
"aw_permission_manager.h",
- "aw_pref_names.cc",
- "aw_pref_names.h",
"aw_print_manager.cc",
"aw_print_manager.h",
"aw_proxy_controller.cc",
@@ -94,8 +94,6 @@ source_set("browser") {
"aw_speech_recognition_manager_delegate.h",
"aw_ssl_host_state_delegate.cc",
"aw_ssl_host_state_delegate.h",
- "aw_variations_seed_bridge.cc",
- "aw_variations_seed_bridge.h",
"aw_variations_service_client.cc",
"aw_variations_service_client.h",
"aw_web_contents_delegate.cc",
@@ -112,12 +110,10 @@ source_set("browser") {
"icon_helper.h",
"input_stream.cc",
"input_stream.h",
- "js_java_interaction/js_java_configurator_host.cc",
- "js_java_interaction/js_java_configurator_host.h",
+ "js_java_interaction/aw_web_message_host_factory.cc",
+ "js_java_interaction/aw_web_message_host_factory.h",
"js_java_interaction/js_reply_proxy.cc",
"js_java_interaction/js_reply_proxy.h",
- "js_java_interaction/js_to_java_messaging.cc",
- "js_java_interaction/js_to_java_messaging.h",
"network_service/android_stream_reader_url_loader.cc",
"network_service/android_stream_reader_url_loader.h",
"network_service/aw_network_change_notifier.cc",
@@ -180,12 +176,14 @@ source_set("browser") {
"scoped_add_feature_flags.h",
"state_serializer.cc",
"state_serializer.h",
- "tracing/aw_trace_event_args_whitelist.cc",
- "tracing/aw_trace_event_args_whitelist.h",
+ "tracing/aw_trace_event_args_allowlist.cc",
+ "tracing/aw_trace_event_args_allowlist.h",
"tracing/aw_tracing_controller.cc",
"tracing/aw_tracing_controller.h",
"tracing/aw_tracing_delegate.cc",
"tracing/aw_tracing_delegate.h",
+ "variations_seed_loader.cc",
+ "variations_seed_loader.h",
]
deps = [
@@ -195,13 +193,14 @@ source_set("browser") {
"//android_webview/browser/lifecycle",
"//android_webview/browser/metrics",
"//android_webview/common",
- "//android_webview/common:common_mojom",
+ "//android_webview/proto:aw_variations_seed_proto",
"//base",
- "//components/autofill/android:provider",
+ "//components/autofill/android/provider",
"//components/autofill/content/browser",
"//components/cdm/browser",
"//components/content_capture/android",
"//components/content_capture/browser",
+ "//components/flags_ui",
# Called via JNI in CrashpadMain
"//components/crash/android:crashpad_main",
@@ -211,6 +210,9 @@ source_set("browser") {
"//components/embedder_support/android/metrics",
"//components/google/core/common",
"//components/heap_profiling/multi_process",
+ "//components/js_injection/browser",
+ "//components/js_injection/common",
+ "//components/js_injection/common:common_mojom",
"//components/metrics",
"//components/minidump_uploader",
"//components/navigation_interception",
diff --git a/chromium/android_webview/common/BUILD.gn b/chromium/android_webview/common/BUILD.gn
index 9d3b358a7a7..79d6b32c19a 100644
--- a/chromium/android_webview/common/BUILD.gn
+++ b/chromium/android_webview/common/BUILD.gn
@@ -5,32 +5,6 @@
import("//build/config/android/rules.gni")
import("//mojo/public/tools/bindings/mojom.gni")
-mojom("common_mojom") {
- sources = [
- "aw_origin_matcher.mojom",
- "js_java_interaction/interfaces.mojom",
- ]
-
- public_deps = [
- "//mojo/public/mojom/base",
- "//services/network/public/mojom:mojom",
- "//third_party/blink/public/mojom:mojom_core",
- ]
-
- cpp_typemaps = [
- {
- types = [
- {
- mojom = "android_webview.mojom.AwOriginMatcher"
- cpp = "::android_webview::AwOriginMatcher"
- },
- ]
- traits_headers =
- [ "//android_webview/common/aw_origin_matcher_mojom_traits.h" ]
- },
- ]
-}
-
source_set("common") {
sources = [
"android_webview_message_generator.cc",
@@ -44,8 +18,6 @@ source_set("common") {
"aw_hit_test_data.h",
"aw_media_drm_bridge_client.cc",
"aw_media_drm_bridge_client.h",
- "aw_origin_matcher.cc",
- "aw_origin_matcher.h",
"aw_paths.cc",
"aw_paths.h",
"aw_resource.cc",
diff --git a/chromium/android_webview/common/aw_origin_matcher.mojom b/chromium/android_webview/common/aw_origin_matcher.mojom
deleted file mode 100644
index 453aa6693e0..00000000000
--- a/chromium/android_webview/common/aw_origin_matcher.mojom
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2020 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.
-
-module android_webview.mojom;
-
-// This corresponds to the string representation of AwOriginMatcher.
-struct AwOriginMatcher {
- array<string> rules;
-}; \ No newline at end of file
diff --git a/chromium/android_webview/common/js_java_interaction/interfaces.mojom b/chromium/android_webview/common/js_java_interaction/interfaces.mojom
deleted file mode 100644
index 1434bbafa44..00000000000
--- a/chromium/android_webview/common/js_java_interaction/interfaces.mojom
+++ /dev/null
@@ -1,65 +0,0 @@
-// 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.
-
-module android_webview.mojom;
-
-import "android_webview/common/aw_origin_matcher.mojom";
-import "mojo/public/mojom/base/string16.mojom";
-import "third_party/blink/public/mojom/messaging/message_port_descriptor.mojom";
-
-// JsObject struct represents a JavaScript object we will inject in the main
-// JavaScript world of a frame. |js_object_name| will be used as the name
-// of the JavaScript object. We will inject the object if the frame's origin
-// matches |origin_matcher|. |js_to_java_messaging| will be used for that
-// JavaScript object to send message back to browser (hence Java) side.
-struct JsObject {
- mojo_base.mojom.String16 js_object_name;
- pending_associated_remote<JsToJavaMessaging> js_to_java_messaging;
- android_webview.mojom.AwOriginMatcher origin_matcher;
-};
-
-// DocumentStartJavascript struct contains the JavaScript snippet |script| and
-// the corresponding |origin_matcher|. We will run the script if the frame's
-// origin matches any rules in the |origin_matcher|.
-struct DocumentStartJavascript {
- int32 script_id;
- mojo_base.mojom.String16 script;
- android_webview.mojom.AwOriginMatcher origin_matcher;
-};
-
-// For JavaScript postMessage() API, implemented by browser.
-interface JsToJavaMessaging {
- // Called from renderer, browser receives |message| and possible |ports|,
- // The |message| is an opaque type and the contents are defined by the client
- // of this API.
- PostMessage(mojo_base.mojom.String16 message,
- array<blink.mojom.MessagePortDescriptor> ports);
-
- // 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_associated_remote<JavaToJsMessaging> java_to_js_messaging);
-};
-
-// For Java to reply back to injected JavaScript object. Implemented by
-// renderer.
-interface JavaToJsMessaging {
- // Called from browser, to send message from Java to JavaScript.
- OnPostMessage(mojo_base.mojom.String16 message);
-};
-
-// For browser to configure renderer, implemented by renderer.
-interface JsJavaConfigurator {
- // Called from browser, to tell renderer that if we need to inject
- // JavaScript objects to the frame based on the |js_objects| array.
- SetJsObjects(array<android_webview.mojom.JsObject> js_objects);
-
- // Called from browser, to add a script for a frame to run at document start
- // stage. The script will run only if the frame's origin matches any of the
- // allowed_origin_rules.
- AddDocumentStartScript(android_webview.mojom.DocumentStartJavascript script);
-
- // Called from browser, to remove the script by the given script_id.
- RemoveDocumentStartScript(int32 script_id);
-};
diff --git a/chromium/android_webview/glue/BUILD.gn b/chromium/android_webview/glue/BUILD.gn
index 3bd85ac1f57..7c3b1406e45 100644
--- a/chromium/android_webview/glue/BUILD.gn
+++ b/chromium/android_webview/glue/BUILD.gn
@@ -7,7 +7,7 @@ import("//android_webview/variables.gni")
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
-android_library("glue") {
+android_library("glue_java") {
deps = [
"//android_webview:android_webview_product_config_java",
"//android_webview:browser_java",
@@ -18,7 +18,7 @@ android_library("glue") {
"//base:base_java",
"//base:jni_java",
"//components/autofill/android:autofill_java",
- "//components/autofill/android:provider_java",
+ "//components/autofill/android/provider:java",
"//components/content_capture/android:java",
"//components/embedder_support/android:application_java",
"//content/public/android:content_java",
diff --git a/chromium/android_webview/lib/BUILD.gn b/chromium/android_webview/lib/BUILD.gn
index 935d6979206..babccd9f9a8 100644
--- a/chromium/android_webview/lib/BUILD.gn
+++ b/chromium/android_webview/lib/BUILD.gn
@@ -25,6 +25,7 @@ source_set("lib") {
"//components/autofill/core/common",
"//components/crash/core/common",
"//components/gwp_asan/buildflags",
+ "//components/metrics",
"//components/safe_browsing/android:safe_browsing_api_handler",
"//components/services/heap_profiling/public/cpp",
"//components/spellcheck:buildflags",
@@ -35,6 +36,7 @@ source_set("lib") {
"//content/public/browser",
"//content/public/common",
"//content/public/common:content_descriptor_keys",
+ "//content/public/common:service_names",
"//gin",
"//gpu/command_buffer/service",
"//gpu/config",
diff --git a/chromium/android_webview/nonembedded/BUILD.gn b/chromium/android_webview/nonembedded/BUILD.gn
index 3c88eaa0d9e..782bad9d169 100644
--- a/chromium/android_webview/nonembedded/BUILD.gn
+++ b/chromium/android_webview/nonembedded/BUILD.gn
@@ -14,6 +14,7 @@ generate_jni("nonembedded_jni_headers") {
# as a library.
android_library("nonembedded_java") {
sources = [
+ "java/src/org/chromium/android_webview/nonembedded/AwNonembeddedUmaRecorder.java",
"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",
@@ -22,11 +23,14 @@ android_library("nonembedded_java") {
":devui_java",
":services_java",
"//android_webview:android_webview_product_config_java",
+ "//android_webview:common_aidl_java",
"//android_webview:common_java",
+ "//android_webview/proto:metrics_bridge_records_proto_java",
"//base:base_java",
"//base:jni_java",
"//components/about_ui/android:aboutui_java",
"//components/embedder_support/android:application_java",
+ "//third_party/android_deps:com_google_protobuf_protobuf_javalite_java",
"//ui/android:ui_java",
]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
@@ -55,10 +59,10 @@ android_library("devui_java") {
"//android_webview:common_aidl_java",
"//android_webview:common_crash_java",
"//android_webview:common_java",
- "//android_webview:common_metrics_java",
"//android_webview:common_platform_services_java",
"//base:base_java",
"//components/minidump_uploader:minidump_uploader_java",
+ "//components/version_info/android:version_constants_java",
"//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_deps:androidx_fragment_fragment_java",
"//ui/android:ui_java",
@@ -82,14 +86,15 @@ android_library("services_java") {
"//android_webview:common_aidl_java",
"//android_webview:common_crash_java",
"//android_webview:common_java",
- "//android_webview:common_metrics_java",
"//android_webview:common_platform_services_java",
"//android_webview:common_variations_java",
+ "//android_webview/proto:metrics_bridge_records_proto_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",
+ "//third_party/android_deps:com_google_protobuf_protobuf_javalite_java",
]
}
diff --git a/chromium/android_webview/proto/BUILD.gn b/chromium/android_webview/proto/BUILD.gn
index 1a5177b76b2..2e395a63f53 100644
--- a/chromium/android_webview/proto/BUILD.gn
+++ b/chromium/android_webview/proto/BUILD.gn
@@ -3,6 +3,11 @@
# found in the LICENSE file.
import("//build/config/android/rules.gni")
+import("//third_party/protobuf/proto_library.gni")
+
+proto_library("aw_variations_seed_proto") {
+ sources = [ "aw_variations_seed.proto" ]
+}
proto_java_library("aw_variations_seed_proto_java") {
proto_path = "."
diff --git a/chromium/android_webview/renderer/BUILD.gn b/chromium/android_webview/renderer/BUILD.gn
index 720bd42c0a5..2c5d250abc3 100644
--- a/chromium/android_webview/renderer/BUILD.gn
+++ b/chromium/android_webview/renderer/BUILD.gn
@@ -26,23 +26,20 @@ source_set("renderer") {
"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",
- "js_java_interaction/js_java_configurator.h",
]
deps = [
"//android_webview:generate_aw_resources",
"//android_webview:generate_aw_strings",
"//android_webview/common",
- "//android_webview/common:common_mojom",
"//base",
"//components/android_system_error_page",
"//components/autofill/content/renderer",
"//components/cdm/renderer",
"//components/content_capture/common",
"//components/content_capture/renderer",
+ "//components/js_injection/common",
+ "//components/js_injection/renderer",
"//components/page_load_metrics/renderer",
"//components/printing/common",
"//components/printing/renderer",
@@ -61,10 +58,8 @@ source_set("renderer") {
"//content/public/child",
"//content/public/common",
"//content/public/renderer",
- "//gin",
"//third_party/blink/public:blink",
"//ui/base",
"//url",
- "//v8",
]
}
diff --git a/chromium/android_webview/support_library/BUILD.gn b/chromium/android_webview/support_library/BUILD.gn
index c6aac0a882d..d8f31146087 100644
--- a/chromium/android_webview/support_library/BUILD.gn
+++ b/chromium/android_webview/support_library/BUILD.gn
@@ -31,7 +31,7 @@ android_library("support_lib_glue_java") {
deps = [
"//android_webview:browser_java",
- "//android_webview/glue:glue",
+ "//android_webview/glue:glue_java",
"//android_webview/support_library/boundary_interfaces:boundary_interface_java",
"//android_webview/support_library/callback:callback_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 299ce5a669f..f72da5fe8bb 100644
--- a/chromium/android_webview/system_webview_apk_tmpl.gni
+++ b/chromium/android_webview/system_webview_apk_tmpl.gni
@@ -11,6 +11,7 @@ import("//build/util/version.gni")
import("//chrome/android/trichrome.gni")
import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
import("//weblayer/variables.gni")
+import("//weblayer/weblayer_resource_exclusions.gni")
declare_args() {
# Android package name to use when compiling the system_webview_apk and
@@ -181,6 +182,15 @@ template("system_webview_apk_or_module_tmpl") {
resource_exclusion_regex = common_resource_exclusion_regex
resource_exclusion_exceptions = common_resource_exclusion_exceptions
+ if (webview_includes_weblayer) {
+ resource_values_filter_rules = weblayer_resource_values_filter_rules
+ resource_exclusion_exceptions += weblayer_resource_exclusion_exceptions
+
+ # Note: WebLayer's resource exclusion regex deliberately does not start
+ # with "|".
+ resource_exclusion_regex += "|" + weblayer_resource_exclusion_regex
+ }
+
if (!_is_bundle_module) {
# Used as an additional apk in test scripts.
never_incremental = true
diff --git a/chromium/android_webview/test/BUILD.gn b/chromium/android_webview/test/BUILD.gn
index e54b98e2ca2..1921db0a627 100644
--- a/chromium/android_webview/test/BUILD.gn
+++ b/chromium/android_webview/test/BUILD.gn
@@ -112,6 +112,7 @@ android_assets("webview_instrumentation_apk_assets") {
"shell/assets/asset_icon.png",
"shell/assets/autofill.html",
"shell/assets/cookie_test.html",
+ "shell/assets/cors.html",
"shell/assets/full_screen_video.js",
"shell/assets/full_screen_video_inside_div_test.html",
"shell/assets/full_screen_video_test.html",
@@ -159,17 +160,33 @@ instrumentation_test_apk("webview_instrumentation_test_apk") {
deps = [
":webview_instrumentation_test_utils_java",
"//android_webview:android_webview_java",
+ "//android_webview:common_aidl_java",
+ "//android_webview:common_crash_java",
+ "//android_webview:common_platform_services_java",
+ "//android_webview:common_variations_java",
+ "//android_webview/nonembedded:devui_java",
+ "//android_webview/nonembedded:services_java",
+ "//android_webview/proto:aw_variations_seed_proto_java",
+ "//android_webview/proto:metrics_bridge_records_proto_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/autofill/android:autofill_java",
+ "//components/autofill/android/provider:java",
+ "//components/autofill/core/common/mojom:mojo_types_java",
+ "//components/background_task_scheduler:background_task_scheduler_task_ids_java",
+ "//components/content_capture/android:java",
"//components/embedder_support/android:web_contents_delegate_java",
+ "//components/heap_profiling/multi_process:heap_profiling_java_test_support",
"//components/metrics:metrics_java",
"//components/minidump_uploader:minidump_uploader_java",
"//components/minidump_uploader:minidump_uploader_javatests",
"//components/policy/android:policy_java",
"//components/policy/android:policy_java_test_support",
"//components/safe_browsing/android:safe_browsing_java",
+ "//components/variations/android:variations_java",
+ "//components/variations/proto:proto_java",
+ "//components/version_info/android:version_constants_java",
"//content/public/android:content_java",
"//content/public/test/android:content_java_test_support",
"//mojo/public/java:bindings_java",
@@ -179,12 +196,16 @@ instrumentation_test_apk("webview_instrumentation_test_apk") {
"//services/device/public/java:geolocation_java",
"//services/device/public/java:geolocation_java_test_support",
"//third_party/android_deps:com_google_guava_failureaccess_java",
+ "//third_party/android_deps:com_google_protobuf_protobuf_javalite_java",
+ "//third_party/android_deps:espresso_java",
"//third_party/android_support_test_runner:rules_java",
"//third_party/android_support_test_runner:runner_java",
- "//third_party/espresso:espresso_all_java",
+ "//third_party/blink/public/mojom:web_feature_mojo_bindings_java",
+ "//third_party/guava:guava_android_java",
"//third_party/hamcrest:hamcrest_java",
"//third_party/junit",
"//third_party/metrics_proto:metrics_proto_java",
+ "//third_party/mockito:mockito_java",
"//ui/android:ui_java",
"//url:gurl_java",
]
@@ -218,7 +239,6 @@ instrumentation_test_apk("webview_instrumentation_test_apk") {
"../javatests/src/org/chromium/android_webview/test/AwContentsRenderTest.java",
"../javatests/src/org/chromium/android_webview/test/AwContentsStaticsTest.java",
"../javatests/src/org/chromium/android_webview/test/AwContentsTest.java",
- "../javatests/src/org/chromium/android_webview/test/AwDebugTest.java",
"../javatests/src/org/chromium/android_webview/test/AwFormDatabaseTest.java",
"../javatests/src/org/chromium/android_webview/test/AwImeTest.java",
"../javatests/src/org/chromium/android_webview/test/AwJavaBridgeTest.java",
@@ -277,6 +297,7 @@ instrumentation_test_apk("webview_instrumentation_test_apk") {
"../javatests/src/org/chromium/android_webview/test/UserAgentTest.java",
"../javatests/src/org/chromium/android_webview/test/VariationsSeedHolderTest.java",
"../javatests/src/org/chromium/android_webview/test/VariationsSeedLoaderTest.java",
+ "../javatests/src/org/chromium/android_webview/test/VariationsTest.java",
"../javatests/src/org/chromium/android_webview/test/VisualStateTest.java",
"../javatests/src/org/chromium/android_webview/test/WebKitHitTestTest.java",
"../javatests/src/org/chromium/android_webview/test/WebViewAsynchronousFindApisTest.java",
@@ -284,8 +305,8 @@ instrumentation_test_apk("webview_instrumentation_test_apk") {
"../javatests/src/org/chromium/android_webview/test/WebViewModalDialogOverrideTest.java",
"../javatests/src/org/chromium/android_webview/test/common/crash/CrashInfoEqualityMatcher.java",
"../javatests/src/org/chromium/android_webview/test/common/crash/CrashInfoTest.java",
- "../javatests/src/org/chromium/android_webview/test/common/metrics/AwNonembeddedUmaRecorderTest.java",
"../javatests/src/org/chromium/android_webview/test/common/variations/VariationsUtilsTest.java",
+ "../javatests/src/org/chromium/android_webview/test/devui/AwNonembeddedUmaRecorderTest.java",
"../javatests/src/org/chromium/android_webview/test/devui/DeveloperUiTest.java",
"../javatests/src/org/chromium/android_webview/test/devui/util/CrashBugUrlFactoryTest.java",
"../javatests/src/org/chromium/android_webview/test/devui/util/UnuploadedFilesStateLoaderTest.java",
@@ -308,7 +329,6 @@ instrumentation_test_apk("webview_instrumentation_test_apk") {
"../javatests/src/org/chromium/android_webview/test/util/ImagePageGenerator.java",
"../javatests/src/org/chromium/android_webview/test/util/JSUtils.java",
"../javatests/src/org/chromium/android_webview/test/util/JavascriptEventObserver.java",
- "../javatests/src/org/chromium/android_webview/test/util/VariationsTestUtils.java",
"../javatests/src/org/chromium/android_webview/test/util/VideoSurfaceViewUtils.java",
"../javatests/src/org/chromium/android_webview/test/util/VideoTestUtil.java",
"../javatests/src/org/chromium/android_webview/test/util/VideoTestWebServer.java",
@@ -342,27 +362,41 @@ instrumentation_test_apk("webview_instrumentation_test_apk") {
android_library("webview_instrumentation_test_utils_java") {
testonly = true
- sources = [ "shell/src/org/chromium/android_webview/test/util/MemoryMetricsLoggerUtils.java" ]
+ sources = [
+ "../javatests/src/org/chromium/android_webview/test/util/VariationsTestUtils.java",
+ "shell/src/org/chromium/android_webview/test/util/MemoryMetricsLoggerUtils.java",
+ ]
deps = [
+ "//android_webview:common_variations_java",
"//base:base_java",
"//base:jni_java",
+ "//components/variations/android:variations_java",
+ "//third_party/junit",
]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
}
generate_jni("webview_instrumentation_test_native_jni") {
testonly = true
- sources = [ "shell/src/org/chromium/android_webview/test/util/MemoryMetricsLoggerUtils.java" ]
+ sources = [
+ "../javatests/src/org/chromium/android_webview/test/util/VariationsTestUtils.java",
+ "shell/src/org/chromium/android_webview/test/util/MemoryMetricsLoggerUtils.java",
+ ]
}
source_set("webview_instrumentation_test_native_jni_impl") {
- sources = [ "shell/memory_metrics_logger_utils.cc" ]
+ sources = [
+ "browser/variations_test_utils.cc",
+ "shell/memory_metrics_logger_utils.cc",
+ ]
deps = [
":webview_instrumentation_test_native_jni",
+ "//android_webview/browser",
"//base",
"//base/test:test_support",
"//components/embedder_support/android/metrics",
+ "//third_party/protobuf:protobuf_lite",
]
}
@@ -419,7 +453,6 @@ test("android_webview_unittests") {
"../browser/safe_browsing/aw_safe_browsing_whitelist_manager_unittest.cc",
"../browser/scoped_add_feature_flags_unittests.cc",
"../browser/state_serializer_unittest.cc",
- "../common/aw_origin_matcher_unittest.cc",
"../lib/webview_tests.cc",
]
@@ -458,15 +491,19 @@ junit_binary("android_webview_junit_tests") {
"../junit/src/org/chromium/android_webview/robolectric/AwScrollOffsetManagerTest.java",
"../junit/src/org/chromium/android_webview/robolectric/FindAddressTest.java",
"../junit/src/org/chromium/android_webview/robolectric/common/FlagOverrideHelperTest.java",
- "../junit/src/org/chromium/android_webview/robolectric/common/metrics/AwNonembeddedUmaReplayerTest.java",
"../junit/src/org/chromium/android_webview/robolectric/common/services/ServiceNamesTest.java",
+ "../junit/src/org/chromium/android_webview/robolectric/metrics/AwNonembeddedUmaReplayerTest.java",
]
deps = [
"//android_webview:android_webview_java",
+ "//android_webview/nonembedded:services_java",
+ "//android_webview/proto:metrics_bridge_records_proto_java",
+ "//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
"//content/public/test/android:content_java_test_support",
+ "//third_party/android_deps:com_google_protobuf_protobuf_javalite_java",
"//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 8c4d2052476..65159817753 100644
--- a/chromium/android_webview/tools/automated_ui_tests/BUILD.gn
+++ b/chromium/android_webview/tools/automated_ui_tests/BUILD.gn
@@ -60,10 +60,10 @@ instrumentation_test_apk("webview_ui_test_app_test_apk") {
"//base:base_java",
"//base:base_java_test_support",
"//third_party/android_deps:androidx_annotation_annotation_java",
+ "//third_party/android_deps:espresso_java",
"//third_party/android_sdk:android_test_base_java",
"//third_party/android_support_test_runner:rules_java",
"//third_party/android_support_test_runner:runner_java",
- "//third_party/espresso:espresso_all_java",
"//third_party/hamcrest:hamcrest_java",
"//third_party/junit",
"//third_party/ub-uiautomator:ub_uiautomator_java",
diff --git a/chromium/android_webview/tools/system_webview_shell/BUILD.gn b/chromium/android_webview/tools/system_webview_shell/BUILD.gn
index 454403c5601..bb540814f9b 100644
--- a/chromium/android_webview/tools/system_webview_shell/BUILD.gn
+++ b/chromium/android_webview/tools/system_webview_shell/BUILD.gn
@@ -116,6 +116,7 @@ instrumentation_test_apk("system_webview_shell_layout_test_apk") {
"//base:base_java",
"//base:base_java_test_support",
"//testing/android/reporter:reporter_java",
+ "//third_party/android_sdk:android_test_base_java",
"//third_party/android_support_test_runner:rules_java",
"//third_party/android_support_test_runner:runner_java",
"//third_party/junit",
diff --git a/chromium/android_webview/tools/webview_log_verbosifier/BUILD.gn b/chromium/android_webview/tools/webview_log_verbosifier/BUILD.gn
deleted file mode 100644
index 082186ebf39..00000000000
--- a/chromium/android_webview/tools/webview_log_verbosifier/BUILD.gn
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2018 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")
-
-android_apk("webview_log_verbosifier_apk") {
- apk_name = "WebViewLogVerbosifier"
- android_manifest = "AndroidManifest.xml"
- deps = [ ":webview_log_verbosifier_resources" ]
- min_sdk_version = 21
- target_sdk_version = 28
-}
-
-android_resources("webview_log_verbosifier_resources") {
- sources = [
- "res/drawable-v24/ic_launcher_foreground.xml",
- "res/drawable/ic_launcher_background.xml",
- "res/mipmap-anydpi-v26/ic_launcher.xml",
- "res/mipmap-anydpi-v26/ic_launcher_round.xml",
- "res/mipmap-hdpi/ic_launcher.png",
- "res/mipmap-hdpi/ic_launcher_round.png",
- "res/mipmap-mdpi/ic_launcher.png",
- "res/mipmap-mdpi/ic_launcher_round.png",
- "res/mipmap-xhdpi/ic_launcher.png",
- "res/mipmap-xhdpi/ic_launcher_round.png",
- "res/mipmap-xxhdpi/ic_launcher.png",
- "res/mipmap-xxhdpi/ic_launcher_round.png",
- "res/mipmap-xxxhdpi/ic_launcher.png",
- "res/mipmap-xxxhdpi/ic_launcher_round.png",
- "res/values/ic_launcher_background.xml",
- ]
- custom_package = "org.chromium.webview_log_verbosifier"
-}