Commit 87789925 authored by Joshua Peraza's avatar Joshua Peraza Committed by Commit Bot

Use app_process to launch crashpad for system webview

When SystemWebview.apk is pre-installed in an Android image, native
libraries are loaded from the apk, so libcrashpad_handler.so isn't
available to exec directly.

Bug: 912739
Change-Id: Ica26df15481ade6951dd5e330425d0ff50b45e05
Reviewed-on: https://chromium-review.googlesource.com/c/1366494Reviewed-by: default avatarMark Mentovai <mark@chromium.org>
Reviewed-by: default avatarRichard Coles <torne@chromium.org>
Reviewed-by: default avatarYaron Friedman <yfriedman@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619651}
parent cc11e7bf
......@@ -434,7 +434,6 @@ if (current_abi_is_webview_only) {
forward_variables_from(invoker, "*")
deps = [
":webview_entry_point",
"//components/crash/android:crashpad_main",
]
is_webview = true
}
......@@ -734,6 +733,7 @@ source_set("common") {
"//components/autofill/content/renderer",
"//components/cdm/browser",
"//components/cdm/renderer",
"//components/crash/android:crashpad_main",
"//components/crash/content/app",
"//components/crash/content/browser",
"//components/download/public/common:public",
......@@ -924,6 +924,7 @@ android_library("android_webview_java") {
"//components/autofill/android:autofill_java",
"//components/autofill/android:provider_java",
"//components/background_task_scheduler:background_task_scheduler_task_ids_java",
"//components/crash/android:handler_java",
"//components/crash/android:java",
"//components/embedder_support/android:web_contents_delegate_java",
"//components/minidump_uploader:minidump_uploader_java",
......
......@@ -20,11 +20,8 @@ template("system_webview_apk_tmpl") {
"//android_webview/glue",
"//android_webview/support_library:support_lib_glue_java",
"//base:base_java",
"//third_party/crashpad/crashpad/handler:crashpad_handler_named_as_so",
]
loadable_modules = [ "$root_out_dir/libcrashpad_handler.so" ]
if (!defined(alternative_android_sdk_dep)) {
alternative_android_sdk_dep = webview_framework_dep
}
......@@ -38,12 +35,6 @@ template("system_webview_apk_tmpl") {
shared_libraries = [ "//android_webview:libwebviewchromium" ]
if (build_apk_secondary_abi && android_64bit_target_cpu) {
secondary_abi_shared_libraries = [ "//android_webview:libwebviewchromium($android_secondary_abi_toolchain)" ]
deps += [ "//third_party/crashpad/crashpad/handler:crashpad_handler_named_as_so($android_secondary_abi_toolchain)" ]
toolchain_out_dir = get_label_info(
"//third_party/crashpad/crashpad/handler:crashpad_handler_named_as_so($android_secondary_abi_toolchain)",
"root_out_dir")
secondary_abi_loadable_modules =
[ "${toolchain_out_dir}/libcrashpad_handler.so" ]
}
} else {
# Include placeholder libraries to ensure we are treated as the desired
......
......@@ -52,7 +52,6 @@ android_apk("webview_instrumentation_apk") {
"//components/policy/android:policy_java_test_support",
"//content/public/android:content_java",
"//third_party/android_support_test_runner:runner_java",
"//third_party/crashpad/crashpad/handler:crashpad_handler_named_as_so",
"//third_party/junit",
"//ui/android:ui_java",
]
......@@ -79,8 +78,6 @@ android_apk("webview_instrumentation_apk") {
":libstandalonelibwebviewchromium",
]
loadable_modules = [ "$root_out_dir/libcrashpad_handler.so" ]
native_lib_version_rule = "//build/util:chrome_version_json"
_native_lib_file =
rebase_path("$root_gen_dir/CHROME_VERSION.json", root_build_dir)
......
......@@ -39,7 +39,6 @@ CHROME_SPECIFIC = BuildFileMatchRegex(
# WebView specific files which are not in Monochrome.apk
WEBVIEW_SPECIFIC = BuildFileMatchRegex(
r'lib/.*/libcrashpad_handler\.so',
r'lib/.*/libwebviewchromium\.so',
r'assets/webview_licenses.notice',
r'res/.*/icon_webview.webp',
......
......@@ -4,7 +4,6 @@
package org.chromium.components.crash.browser;
import android.annotation.SuppressLint;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
......@@ -33,10 +32,9 @@ public abstract class PackagePaths {
* @ Build paths for the chrome/webview package for the purpose of loading CrashpadMain via
* /system/bin/app_process.
*/
@SuppressLint("NewApi")
@CalledByNative
public static String[] makePackagePaths(String arch) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
return new String[] {"", ""};
}
try {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment