blob: 97fa93f433a37bf669175ea09ebfdd7149e8c503 [file] [log] [blame]
Avi Drissman4a6ec7e2022-09-08 20:26:461# Copyright 2019 The Chromium Authors
Clark DuVallebd41cb2019-12-19 23:14:162# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/config/android/rules.gni")
6import("//build/config/locales.gni")
Sam Maierfb196b22022-09-06 17:48:517import("//components/crash/android/silent_java_assert_reporting.gni")
Andrew Grievefad06ed2023-04-21 02:55:108import("//device/vr/buildflags/buildflags.gni")
Clark DuVallc5f986b2020-08-17 20:47:149import("//weblayer/variables.gni")
Clark DuVallebd41cb2019-12-19 23:14:1610
11template("system_webview_bundle") {
Andrew Grievecdcd217b2023-03-14 13:45:3012 _is_trichrome = defined(invoker.is_trichrome) && invoker.is_trichrome
Sky Malice8e9ca1b2023-07-12 21:16:0713 _base_target_name = get_label_info(invoker.base_module_target, "name")
14 _base_target_gen_dir =
15 get_label_info(invoker.base_module_target, "target_gen_dir")
16 _base_module_build_config =
17 "$_base_target_gen_dir/${_base_target_name}.build_config.json"
18 _rebased_base_module_build_config =
19 rebase_path(_base_module_build_config, root_build_dir)
20 _base_module_version_code =
21 "@FileArg($_rebased_base_module_build_config:deps_info:version_code)"
22
Andrew Grieve5d9b90f2023-03-16 21:09:4723 assert(_is_trichrome == defined(invoker.static_library_provider))
Andrew Grievecdcd217b2023-03-14 13:45:3024
Andrew Grievef8bc4652023-04-25 01:36:0625 if (webview_includes_weblayer) {
Clark DuVallc5f986b2020-08-17 20:47:1426 # TODO(crbug.com/1105096): If WebView starts using
27 # //components/module_installer, it will probably make sense to refactor
28 # chrome_feature_module() to be used here.
Clark DuVallc5f986b2020-08-17 20:47:1429 _base_module_build_config_target =
30 "${invoker.base_module_target}$build_config_target_suffix"
Clark DuVallc5f986b2020-08-17 20:47:1431 _weblayer_module_target = "${target_name}__weblayer_bundle_module"
32 _weblayer_module_desc = {
33 name = "weblayer"
34 module_target = ":${_weblayer_module_target}"
35 }
Clark DuVall62068812020-09-15 03:18:3136
37 # TODO(crbug.com/1105096): This target is needed to add all WebLayer
38 # resources to the base module because of bugs with shared resources in
39 # splits.
40 android_resources("${_base_target_name}__all_weblayer_resources") {
41 recursive_resource_deps = true
42 deps = [ "//weblayer/browser/java" ]
43 if (defined(invoker.weblayer_deps)) {
44 deps += invoker.weblayer_deps
45 }
46 }
47
Clark DuVallc5f986b2020-08-17 20:47:1448 android_app_bundle_module(_weblayer_module_target) {
49 forward_variables_from(invoker,
50 [
51 "base_module_target",
52 "min_sdk_version",
Clark DuVallc5f986b2020-08-17 20:47:1453 ])
54 android_manifest = "//weblayer/browser/java/AndroidManifest.xml"
Clark DuVall9158c022020-09-17 17:49:3055
56 # The manifest depends on the package name from the base build config.
57 android_manifest_dep = _base_module_build_config_target
Clark DuVallc5f986b2020-08-17 20:47:1458 deps = [
59 "//weblayer/browser/java",
60 _base_module_build_config_target,
61 ]
62 if (defined(invoker.weblayer_deps)) {
63 deps += invoker.weblayer_deps
64 }
Andrew Grievefad06ed2023-04-21 02:55:1065 if (enable_arcore) {
66 deps += [
67 "//third_party/arcore-android-sdk-client:arcore_remove_manifest_java",
68 ]
69 }
Trevor Perrierc8f7da5b2022-02-08 17:29:4670 aapt_locale_allowlist = platform_pak_locales
Clark DuVallc5f986b2020-08-17 20:47:1471 proguard_enabled = !is_java_debug
Sam Maier57b7afeb52023-01-10 16:31:4472 module_name = "weblayer"
Clark DuVallc5f986b2020-08-17 20:47:1473 package_id = 126
74 version_name =
75 "@FileArg($_rebased_base_module_build_config:deps_info:version_name)"
Clark DuVall977485e2020-08-20 15:21:0076 version_code = _base_module_version_code
Clark DuVallc5f986b2020-08-17 20:47:1477 manifest_package =
78 "@FileArg($_rebased_base_module_build_config:deps_info:package_name)"
Andrew Grievecdcd217b2023-03-14 13:45:3079 if (!defined(min_sdk_version) && _is_trichrome) {
80 min_sdk_version = 29
81 }
Sam Maierfb196b22022-09-06 17:48:5182
83 if (enable_silent_java_assert_reporting) {
84 custom_assertion_handler = crash_reporting_assertion_handler
85 }
Clark DuVallc5f986b2020-08-17 20:47:1486 }
87 }
88
Clark DuVallebd41cb2019-12-19 23:14:1689 android_app_bundle(target_name) {
90 command_line_flags_file = "webview-command-line"
Andrew Grievea8c26a12023-04-28 19:22:2491 if (!is_java_debug) {
92 proguard_enabled = true
93 repackage_classes = "WV"
94 }
Clark DuVallebd41cb2019-12-19 23:14:1695 enable_language_splits = true
Andrew Grievecdcd217b2023-03-14 13:45:3096 if (_is_trichrome) {
97 min_sdk_version = 29
Andrew Grievecdcd217b2023-03-14 13:45:3098 }
Andrew Grievef8bc4652023-04-25 01:36:0699 if (webview_includes_weblayer) {
Clark DuVallc5f986b2020-08-17 20:47:14100 extra_modules = [ _weblayer_module_desc ]
101 }
Trevor Perrierc8f7da5b2022-02-08 17:29:46102 system_image_locale_allowlist = platform_pak_locales
Christopher Grant83e35a42020-01-06 16:06:08103 is_multi_abi =
104 android_64bit_target_cpu && (!defined(invoker.include_64_bit_webview) ||
105 invoker.include_64_bit_webview) &&
106 (!defined(invoker.include_32_bit_webview) ||
107 invoker.include_32_bit_webview)
Clark DuVallebd41cb2019-12-19 23:14:16108
109 if (!defined(proguard_android_sdk_dep)) {
110 proguard_android_sdk_dep = webview_framework_dep
111 }
112
Sam Maierfb196b22022-09-06 17:48:51113 if (enable_silent_java_assert_reporting) {
114 custom_assertion_handler = crash_reporting_assertion_handler
115 }
116
Fergal Dalyebb80592022-03-24 03:30:48117 # For this to be respected, it must also be set on the base module target.
118 strip_unused_resources = is_official_build
119
Clark DuVallebd41cb2019-12-19 23:14:16120 forward_variables_from(invoker, "*")
121 }
122}