Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Issue 2123073002: Switch chrome_elf exception handling from breakpad to crashpad (Closed)

Created:
4 years, 5 months ago by ananta
Modified:
4 years, 5 months ago
Reviewers:
robertshield, sky, scottmg
CC:
chromium-reviews, darin-cc_chromium.org, jam, kalyank, sadrul, caitkp+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Switch chrome_elf exception handling from breakpad to crashpad Relanding this patch with windows telemetry test fixes Changes in this patch are as below: 1. chrome_elf: Removing breakpad and corresponding exception initialization using breakpad. Registering crashpad as the exception handling mechanism in chrome_elf. We continue to handle exceptions in chrome_elf in DllMain and in the blacklist interception code as before, i.e. we use crashpad to grab the dump and pass the exception to the next handler in the chain. I also added support in chrome_elf to not initialize crashpad if it is being loaded in some tests. For e.g. the ELFImportsTest. This is via the exe name check. 2. chrome.exe:- Removing crashpad exception registration. We need to retrieve current exception reports information from chrome_elf instead of chrome. 3. Intercept the SetUnhandledExceptionFilter API in chrome_elf via IAT patching on the exe and disallow the call. This is to prevent CRT from overwriting crashpads exception filter. I added a TODO to see if we can use EAT patching or possibly sidestep if we can support 64 bit with it. 4. Changed the browser lib target to depend on chrome_elf:blacklist instead of chrome_elf. This prevents chrome_elf from being implicitly loaded in processes other than chrome.exe 5. Changed child_process_logging_win.cc to set the crash key trampolines from chrome_elf instead of chrome.exe. 6. Changed the blacklist target in blacklist.gypi to depend on the chrome_elf_common target. Previously this dependency came in through the chrome_elf_breakpad target which has been deleted in this patch set. 7. Updated crash keys in chrome_crash_reporter_client_win.cc and added comments to the crash key files to keep the lists in sync. BUG=604923, crashpad:106, 568664 TBR=sky Committed: https://crrev.com/52c55bd8b84076cccdc877538787da279a8a1bf4 Cr-Commit-Position: refs/heads/master@{#406403}

Patch Set 1 #

Patch Set 2 : Update crash keys and add comments #

Total comments: 4

Patch Set 3 : Rebased to tip #

Patch Set 4 : Revert comments changes to blimp_engine_crash_keys.cc #

Patch Set 5 : Rebased to tip #

Patch Set 6 : Fix patch update step #

Patch Set 7 : Remove unused chrome_elf_common target from chrome_elf.gyp #

Patch Set 8 : Remove duplicate chrome_elf_constants target from chrome_elf.gyp #

Patch Set 9 : Fix bot redness #

Patch Set 10 : Fix gn analyze #

Patch Set 11 : Update crash keys list in chrome_crash_reporter_client_win.cc #

Patch Set 12 : Rebased to tip and git cl format #

Unified diffs Side-by-side diffs Delta from patch set Stats (+248 lines, -323 lines) Patch
M chrome/app/chrome_crash_reporter_client_win.cc View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +16 lines, -1 line 0 comments Download
M chrome/app/chrome_exe_main_win.cc View 5 chunks +0 lines, -24 lines 0 comments Download
M chrome/app/chrome_main.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +3 lines, -2 lines 0 comments Download
M chrome/browser/BUILD.gn View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/chrome_browser_main_win.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +3 lines, -4 lines 0 comments Download
M chrome/browser/crash_upload_list/crash_upload_list_crashpad.cc View 1 chunk +4 lines, -2 lines 0 comments Download
M chrome/browser/hang_monitor/hang_crash_dump_win.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +7 lines, -8 lines 0 comments Download
M chrome/chrome_browser.gypi View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M chrome/common/child_process_logging_win.cc View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +37 lines, -9 lines 0 comments Download
M chrome/common/chrome_constants.h View 2 chunks +1 line, -8 lines 0 comments Download
M chrome/common/chrome_constants.cc View 2 chunks +1 line, -7 lines 0 comments Download
M chrome/common/crash_keys.cc View 1 2 3 4 1 chunk +4 lines, -2 lines 0 comments Download
M chrome/install_static/install_util.cc View 1 2 3 4 1 chunk +0 lines, -7 lines 0 comments Download
M chrome_elf/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 5 chunks +17 lines, -16 lines 0 comments Download
M chrome_elf/DEPS View 1 chunk +4 lines, -1 line 0 comments Download
M chrome_elf/blacklist.gypi View 1 2 3 4 5 6 7 8 2 chunks +19 lines, -1 line 0 comments Download
M chrome_elf/blacklist/blacklist_interceptions.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
A chrome_elf/blacklist/crashpad_helper.h View 1 chunk +15 lines, -0 lines 0 comments Download
A chrome_elf/blacklist/crashpad_helper.cc View 1 chunk +13 lines, -0 lines 0 comments Download
D chrome_elf/breakpad/breakpad.h View 1 2 3 4 1 chunk +0 lines, -34 lines 0 comments Download
D chrome_elf/breakpad/breakpad.cc View 1 2 3 4 1 chunk +0 lines, -165 lines 0 comments Download
M chrome_elf/chrome_elf.gyp View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +0 lines, -19 lines 0 comments Download
M chrome_elf/chrome_elf_main.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +99 lines, -3 lines 0 comments Download
M components/crash/content/app/crashpad.cc View 1 chunk +2 lines, -7 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 39 (24 generated)
ananta
+wez for blimp owners +robertshield for everything. The only changes between this and the earlier ...
4 years, 5 months ago (2016-07-06 12:22:53 UTC) #2
robertshield
Changes to crash keys LGTM, let me know if you want a full re-review.
4 years, 5 months ago (2016-07-06 14:33:24 UTC) #5
ananta
On 2016/07/06 14:33:24, robertshield wrote: > Changes to crash keys LGTM, let me know if ...
4 years, 5 months ago (2016-07-06 18:11:36 UTC) #6
Wez
nit: Description contains two copies of "Switch chrome_elf exception handling from breakpad to crashpad.".
4 years, 5 months ago (2016-07-06 19:36:00 UTC) #7
Wez
https://codereview.chromium.org/2123073002/diff/20001/blimp/engine/app/blimp_engine_crash_keys.cc File blimp/engine/app/blimp_engine_crash_keys.cc (right): https://codereview.chromium.org/2123073002/diff/20001/blimp/engine/app/blimp_engine_crash_keys.cc#newcode18 blimp/engine/app/blimp_engine_crash_keys.cc:18: // RegisterCrashKeysHelper() We don't build the Blimp Engine for ...
4 years, 5 months ago (2016-07-06 19:36:50 UTC) #8
ananta
https://codereview.chromium.org/2123073002/diff/20001/blimp/engine/app/blimp_engine_crash_keys.cc File blimp/engine/app/blimp_engine_crash_keys.cc (right): https://codereview.chromium.org/2123073002/diff/20001/blimp/engine/app/blimp_engine_crash_keys.cc#newcode18 blimp/engine/app/blimp_engine_crash_keys.cc:18: // RegisterCrashKeysHelper() On 2016/07/06 19:36:50, Wez wrote: > We ...
4 years, 5 months ago (2016-07-07 12:43:20 UTC) #9
ananta
On 2016/07/06 19:36:00, Wez wrote: > nit: Description contains two copies of "Switch chrome_elf exception ...
4 years, 5 months ago (2016-07-08 13:45:05 UTC) #11
Wez
https://codereview.chromium.org/2123073002/diff/20001/blimp/engine/app/blimp_engine_crash_keys.cc File blimp/engine/app/blimp_engine_crash_keys.cc (right): https://codereview.chromium.org/2123073002/diff/20001/blimp/engine/app/blimp_engine_crash_keys.cc#newcode18 blimp/engine/app/blimp_engine_crash_keys.cc:18: // RegisterCrashKeysHelper() On 2016/07/07 12:43:20, ananta wrote: > On ...
4 years, 5 months ago (2016-07-08 22:54:09 UTC) #12
ananta
https://codereview.chromium.org/2123073002/diff/20001/blimp/engine/app/blimp_engine_crash_keys.cc File blimp/engine/app/blimp_engine_crash_keys.cc (right): https://codereview.chromium.org/2123073002/diff/20001/blimp/engine/app/blimp_engine_crash_keys.cc#newcode18 blimp/engine/app/blimp_engine_crash_keys.cc:18: // RegisterCrashKeysHelper() On 2016/07/08 22:54:09, Wez wrote: > On ...
4 years, 5 months ago (2016-07-09 14:09:32 UTC) #13
Wez
Thanks :D -me
4 years, 5 months ago (2016-07-11 17:38:38 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2123073002/200001
4 years, 5 months ago (2016-07-19 20:27:05 UTC) #30
commit-bot: I haz the power
Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds/38065) ios-device-gn on master.tryserver.chromium.mac (JOB_FAILED, ...
4 years, 5 months ago (2016-07-19 20:30:11 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2123073002/220001
4 years, 5 months ago (2016-07-19 21:12:35 UTC) #35
commit-bot: I haz the power
Committed patchset #12 (id:220001)
4 years, 5 months ago (2016-07-19 22:41:08 UTC) #37
commit-bot: I haz the power
4 years, 5 months ago (2016-07-19 22:43:05 UTC) #39
Message was sent while issue was closed.
Patchset 12 (id:??) landed as
https://crrev.com/52c55bd8b84076cccdc877538787da279a8a1bf4
Cr-Commit-Position: refs/heads/master@{#406403}

Powered by Google App Engine
This is Rietveld 408576698