commit | ab224140be30c9babdef926151e64e48883bdd57 | [log] [tgz] |
---|---|---|
author | Joshua Peraza <jperaza@chromium.org> | Sat Dec 01 22:05:11 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Sat Dec 01 22:05:11 2018 |
tree | 160b935caade4a306e6335cb3b32444a774099eb | |
parent | c15f349914e167ff1558f05ff3e287a10b2502ca [diff] |
Reland "Package Crashpad's handler into various APKs" This is a reland of dbca191e2c2156f36523b700a239f0753fdf5ae7 Original change's description: > Package Crashpad's handler into various APKs > > For Chromecast, Content Shell, and non-monochrome Clank/Webview: > > The Crashpad handler is a standalone executable, packaged like a > loadable module and named libcrashpad_handler.so in order to not be > ignored by Android's APK installer. > > For Monochrome: > > The Crashpad handler is linked into libmonochrome.so. At crash-time > /system/bin/app_process{32,64} is exec-ed, running CrashpadMain.java > which loads libmonochrome.so and runs the native HandlerMain(). > > This strategy is not used for non-monochrome APKs (i.e. pre-N) because > on L, Android's loader is not yet capable of loading native libraries > from the APK. This is normally performed by the Chromium linker which > can't be used by CrashpadMain.java because /system/bin/app_process > doesn't initialize the process like a normal Android application > (specifically, no ContextImpl has been created, so any calls to e.g. > appContext.getApplicationInfo() will segfault). > > Binary-Size: MonochromePublic.apk increases in size by 100 KB. > ChromeModernPublic.apk increases in size by 203KB (587 KB > increase in install size because libcrashpad_handler.so is extracted > from the APK). Possible mitigations for this increase are TODO: > > For J, K: We could link the handler directly into libchrome.so and let > that be our handler executable. This would de-dup portions of libbase > that are currently linked into both libchrome.so and > libcrashpad_handler.so. > > For L, M: It might be possible to get the chromium linker (or Bionic's > linker on M) to dlopen libchrome.so from the APK for a trampoline > libcrashpad_handler.so to de-dup libbase. > > Bug: crashpad:30 > Change-Id: If5b3752f26455e5c7aef3278b4bd2076ef1b7b65 > Reviewed-on: https://chromium-review.googlesource.com/1150774 > Reviewed-by: Bo <boliu@chromium.org> > Reviewed-by: agrieve <agrieve@chromium.org> > Reviewed-by: Mark Mentovai <mark@chromium.org> > Reviewed-by: Richard Coles <torne@chromium.org> > Reviewed-by: Luke Halliwell <halliwell@chromium.org> > Commit-Queue: Joshua Peraza <jperaza@chromium.org> > Cr-Commit-Position: refs/heads/master@{#594853} TBR=agieve@chromium.org,torne@chromium.org Binary-Size: See above. Bug: crashpad:30 Change-Id: I2b866be642670188d9e8b674fac940b05497b806 Reviewed-on: https://chromium-review.googlesource.com/c/1252007 Commit-Queue: Joshua Peraza <jperaza@chromium.org> Reviewed-by: Yaron Friedman <yfriedman@chromium.org> Reviewed-by: Luke Halliwell <halliwell@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> Cr-Commit-Position: refs/heads/master@{#612950}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .