Skip to content

Commit

Permalink
Fix skip_secondary_abi_for_cq
Browse files Browse the repository at this point in the history
Adds some missing changes to support skip_secondary_abi_for_cq:
 - Adds manifest for 64bit only webview.
 - Creates 64bit-only test ar apk if skip_secondary_abi_for_cq.

Bug: 1217728
Change-Id: Ib7c233d681a6b1bf5266f4f11df555cf814387c0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3063580
Reviewed-by: Richard Coles <torne@chromium.org>
Commit-Queue: Mohamed Heikal <mheikal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#908143}
  • Loading branch information
m0hamed authored and Chromium LUCI CQ committed Aug 3, 2021
1 parent 7d3da35 commit 5e32340
Show file tree
Hide file tree
Showing 4 changed files with 99 additions and 29 deletions.
33 changes: 27 additions & 6 deletions android_webview/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ import("//tools/resources/generate_resource_allowlist.gni")
import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
import("//weblayer/variables.gni")

if (android_64bit_target_cpu && skip_secondary_abi_for_cq) {
assert(current_toolchain != android_secondary_abi_toolchain)
}

if (enable_resource_allowlist_generation) {
system_webview_pak_allowlist =
"$target_gen_dir/system_webview_pak_allowlist.txt"
Expand All @@ -34,11 +38,18 @@ _verify_android_configuration =
template("standalone_system_webview_apk_tmpl") {
system_webview_apk_or_module_tmpl(target_name) {
forward_variables_from(invoker, "*")
android_manifest = system_webview_android_manifest
android_manifest_dep =
"//android_webview/nonembedded:system_webview_manifest"
deps = upstream_only_webview_deps
min_sdk_version = 21
if (android_64bit_target_cpu && defined(include_32_bit_webview) &&
!include_32_bit_webview) {
android_manifest = system_webview_64_android_manifest
android_manifest_dep =
"//android_webview/nonembedded:system_webview_64_manifest"
} else {
android_manifest = system_webview_android_manifest
android_manifest_dep =
"//android_webview/nonembedded:system_webview_manifest"
}
}
}

Expand Down Expand Up @@ -172,9 +183,6 @@ if (android_64bit_target_cpu) {
template("trichrome_webview_tmpl") {
system_webview_apk_or_module_tmpl(target_name) {
forward_variables_from(invoker, "*")
android_manifest = trichrome_webview_android_manifest
android_manifest_dep =
"//android_webview/nonembedded:trichrome_webview_manifest"
min_sdk_version = 29

deps = upstream_only_webview_deps
Expand All @@ -197,6 +205,9 @@ if (android_64bit_target_cpu && skip_secondary_abi_for_cq) {
is_64_bit_browser = false
include_64_bit_webview = true
}
android_manifest = trichrome_webview_android_manifest
android_manifest_dep =
"//android_webview/nonembedded:trichrome_webview_manifest"
static_library_provider = "//chrome/android:trichrome_library_apk"
}
}
Expand All @@ -210,6 +221,9 @@ if (android_64bit_target_cpu) {
}
is_64_bit_browser = true
include_32_bit_webview = false
android_manifest = trichrome_webview_64_android_manifest
android_manifest_dep =
"//android_webview/nonembedded:trichrome_webview_64_manifest"
static_library_provider = "//chrome/android:trichrome_library_64_apk"
}
}
Expand All @@ -229,6 +243,10 @@ if (enable_webview_bundles) {
include_64_bit_webview = true
}

android_manifest = trichrome_webview_android_manifest
android_manifest_dep =
"//android_webview/nonembedded:trichrome_webview_manifest"

if (_verify_android_configuration) {
expected_android_manifest =
"expectations/trichrome_webview_bundle.AndroidManifest.expected"
Expand Down Expand Up @@ -260,6 +278,9 @@ if (enable_webview_bundles) {
bundle_target = ":trichrome_webview_64_bundle"
is_64_bit_browser = true
include_32_bit_webview = false
android_manifest = trichrome_webview_64_android_manifest
android_manifest_dep =
"//android_webview/nonembedded:trichrome_webview_64_manifest"
static_library_provider = "//chrome/android:trichrome_library_64_apk"
}
}
Expand Down
16 changes: 16 additions & 0 deletions android_webview/nonembedded/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,22 @@ jinja_template("trichrome_webview_manifest") {
}

if (android_64bit_target_cpu) {
jinja_template("system_webview_64_manifest") {
input = "java/AndroidManifest.xml"
output = system_webview_64_android_manifest
variables = _webview_jinja_variables + [ "use32bitAbi=" ]
}

jinja_template("trichrome_webview_64_manifest") {
input = "java/AndroidManifest.xml"
output = trichrome_webview_64_android_manifest
variables = trichrome_jinja_variables + _webview_jinja_variables + [
"use32bitAbi=",
"trichrome_version=$trichrome_64_version_code",
"library=libmonochrome_64.so",
]
}

jinja_template("trichrome_webview_64_32_manifest") {
input = "java/AndroidManifest.xml"
output = trichrome_webview_64_32_android_manifest
Expand Down
4 changes: 4 additions & 0 deletions android_webview/variables.gni
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,12 @@ declare_args() {

system_webview_android_manifest =
"$root_gen_dir/android_webview/system_webview_apk/AndroidManifest.xml"
system_webview_64_android_manifest =
"$root_gen_dir/android_webview/system_webview_64_apk/AndroidManifest.xml"
trichrome_webview_android_manifest =
"$root_gen_dir/android_webview/trichrome_webview_apk/AndroidManifest.xml"
trichrome_webview_64_android_manifest =
"$root_gen_dir/android_webview/trichrome_webview_64_apk/AndroidManifest.xml"
trichrome_webview_64_32_android_manifest = "$root_gen_dir/android_webview/trichrome_webview_64_32_apk/AndroidManifest.xml"
trichrome_webview_32_android_manifest =
"$root_gen_dir/android_webview/trichrome_webview_32_apk/AndroidManifest.xml"
Expand Down
75 changes: 52 additions & 23 deletions chrome/android/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -2737,23 +2737,40 @@ jinja_template("chrome_public_test_vr_apk_manifest") {
]
}

jinja_template("monochrome_public_test_ar_apk_manifest") {
input = "javatests/AndroidManifest_monochrome.xml"
includes = [
"java/AndroidManifest.xml",
"java/AndroidManifest_monochrome.xml",
"javatests/AndroidManifest.xml",
"//android_webview/nonembedded/java/AndroidManifest.xml",
]
template("monochrome_public_test_ar_apk_manifest_tmpl") {
jinja_template(target_name) {
forward_variables_from(invoker, "*")
input = "javatests/AndroidManifest_monochrome.xml"
includes = [
"java/AndroidManifest.xml",
"java/AndroidManifest_monochrome.xml",
"javatests/AndroidManifest.xml",
"//android_webview/nonembedded/java/AndroidManifest.xml",
]
variables = chrome_public_jinja_variables +
monochrome_android_manifest_jinja_variables +
[
"target_sdk_version=$android_sdk_version",
"test_manifest_package=$chrome_public_test_manifest_package",
"webview_library=$webview_library_name",
"include_arcore_manifest_flag=$enable_arcore",
]
}
}

monochrome_public_test_ar_apk_manifest_tmpl(
"monochrome_public_test_ar_apk_manifest") {
output = monochrome_public_test_ar_apk_manifest
variables = chrome_public_jinja_variables +
monochrome_android_manifest_jinja_variables +
[
"target_sdk_version=$android_sdk_version",
"test_manifest_package=$chrome_public_test_manifest_package",
"webview_library=libmonochrome.so",
"include_arcore_manifest_flag=$enable_arcore",
]
webview_library_name = "libmonochrome.so"
}

if (android_64bit_target_cpu && skip_secondary_abi_for_cq) {
monochrome_public_test_ar_64_apk_manifest = "$root_gen_dir/monochrome_public_test_ar_64_apk_manifest/AndroidManifest.xml"
monochrome_public_test_ar_apk_manifest_tmpl(
"monochrome_public_test_ar_64_apk_manifest") {
output = monochrome_public_test_ar_64_apk_manifest
webview_library_name = "libmonochrome_64.so"
}
}

template("chrome_test_apk_tmpl") {
Expand Down Expand Up @@ -2811,6 +2828,7 @@ template("monochrome_test_apk_tmpl") {
"data_deps",
"is_64_bit_browser",
"include_64_bit_webview",
"include_32_bit_webview",
"loadable_modules",
"min_sdk_version",
"proguard_configs",
Expand Down Expand Up @@ -2927,14 +2945,21 @@ if (enable_vr) {
if (enable_arcore) {
monochrome_test_apk_tmpl("monochrome_public_test_ar_apk") {
apk_name = "MonochromePublicTestAr"
android_manifest = monochrome_public_test_ar_apk_manifest
android_manifest_dep = ":monochrome_public_test_ar_apk_manifest"
min_sdk_version = 24
target_sdk_version = android_sdk_version

android_manifest = monochrome_public_test_ar_apk_manifest
android_manifest_dep = ":monochrome_public_test_ar_apk_manifest"
if (android_64bit_target_cpu) {
is_64_bit_browser = false
include_64_bit_webview = true
if (skip_secondary_abi_for_cq) {
android_manifest = monochrome_public_test_ar_64_apk_manifest
android_manifest_dep = ":monochrome_public_test_ar_64_apk_manifest"
is_64_bit_browser = true
include_32_bit_webview = false
} else {
is_64_bit_browser = false
include_64_bit_webview = true
}
}

# This is where we would add the shared_libraries entry for
Expand Down Expand Up @@ -2964,9 +2989,13 @@ if (enable_arcore) {
"target_out_dir") + "/com_google_ar_core_java/jni"

# We store this as a separate .so in the APK and only load as needed.
if (android_64bit_target_cpu && !skip_secondary_abi_for_cq) {
secondary_abi_loadable_modules =
[ "$_libarcore_dir/armeabi-v7a/libarcore_sdk_c.so" ]
if (android_64bit_target_cpu) {
if (skip_secondary_abi_for_cq) {
loadable_modules = [ "$_libarcore_dir/arm64-v8a/libarcore_sdk_c.so" ]
} else {
secondary_abi_loadable_modules =
[ "$_libarcore_dir/armeabi-v7a/libarcore_sdk_c.so" ]
}
} else {
loadable_modules = [ "$_libarcore_dir/armeabi-v7a/libarcore_sdk_c.so" ]
}
Expand Down

0 comments on commit 5e32340

Please sign in to comment.