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

Issue 2114533002: 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 gypi build fixes. Switch chrome_elf exception handling from breakpad to crashpad. 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. BUG=604923, crashpad:106, 568664 TBR=sky Committed: https://crrev.com/29f38cfc0afb51a04698c434f4bdcafd244f4270 Cr-Commit-Position: refs/heads/master@{#403519}

Patch Set 1 #

Patch Set 2 : Add dependencies on the chrome_elf_common target in the blacklist target. Previously this came in i… #

Unified diffs Side-by-side diffs Delta from patch set Stats (+226 lines, -343 lines) Patch
M chrome/app/chrome_crash_reporter_client_win.cc View 1 chunk +3 lines, -0 lines 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 chunk +2 lines, -1 line 0 comments Download
M chrome/browser/BUILD.gn View 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/chrome_browser_main_win.cc View 1 chunk +2 lines, -1 line 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 3 chunks +3 lines, -3 lines 0 comments Download
M chrome/chrome_browser.gypi View 1 chunk +1 line, -1 line 0 comments Download
M chrome/common/child_process_logging_win.cc View 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/install_static/install_util.cc View 1 chunk +0 lines, -7 lines 0 comments Download
M chrome_elf/BUILD.gn View 5 chunks +17 lines, -17 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 chunks +21 lines, -1 line 0 comments Download
M chrome_elf/blacklist/blacklist_interceptions.cc View 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.h View 1 chunk +0 lines, -34 lines 0 comments Download
D chrome_elf/breakpad.cc View 1 chunk +0 lines, -196 lines 0 comments Download
M chrome_elf/chrome_elf.gyp View 2 chunks +0 lines, -19 lines 0 comments Download
M chrome_elf/chrome_elf_main.cc View 1 chunk +98 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: 15 (6 generated)
ananta
scottmg, robertshield, the only change from the previous patchset https://codereview.chromium.org/2088133002/ is in blacklist.gypi where the ...
4 years, 5 months ago (2016-06-30 02:52:07 UTC) #3
ananta
TBR'ing sky. Changes are only in chrome_elf/blacklist.gypi
4 years, 5 months ago (2016-06-30 02:53:04 UTC) #4
scottmg
diff to ps1 lgtm
4 years, 5 months ago (2016-06-30 05:13:11 UTC) #6
robertshield
blacklist.gypi change lgtm
4 years, 5 months ago (2016-06-30 18:29:31 UTC) #7
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/2114533002/20001
4 years, 5 months ago (2016-07-01 19:47:12 UTC) #9
commit-bot: I haz the power
Committed patchset #2 (id:20001)
4 years, 5 months ago (2016-07-01 20:46:46 UTC) #11
commit-bot: I haz the power
CQ bit was unchecked.
4 years, 5 months ago (2016-07-01 20:46:51 UTC) #12
commit-bot: I haz the power
Patchset 2 (id:??) landed as https://crrev.com/29f38cfc0afb51a04698c434f4bdcafd244f4270 Cr-Commit-Position: refs/heads/master@{#403519}
4 years, 5 months ago (2016-07-01 20:49:34 UTC) #14
Kunihiko Sakamoto
4 years, 5 months ago (2016-07-04 06:04:11 UTC) #15
Message was sent while issue was closed.
A revert of this CL (patchset #2 id:20001) has been created in
https://codereview.chromium.org/2123443002/ by ksakamoto@chromium.org.

The reason for reverting is: speculative revert to see whether this caused
crbug.com/625535.

Powered by Google App Engine
This is Rietveld 408576698