DescriptionSwitch 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
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. Also 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. Added a function RegisterCrashKeysForDebugging to the ChromeCrashReporterClient class on Windows
to register crash keys. This is currently invoked from chrome_elf for debugging purposes.
5. 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
BUG=604923, crashpad:106, 568664
TBR=robertshield
Committed: https://crrev.com/34831427124fef3015106cfe6e94d35f3aa9e4f6
Cr-Commit-Position: refs/heads/master@{#403048}
Patch Set 1 #Patch Set 2 : Remove include #
Total comments: 4
Patch Set 3 : Update commments and attempt to fix dependency failure #
Total comments: 9
Patch Set 4 : Address review comments #
Total comments: 6
Patch Set 5 : git cl format #Patch Set 6 : Added intercept for the SetUnhandledExceptionFilter API in chrome_elf. This is needed to avoid CRT … #Patch Set 7 : Use IAT patching for SetUnhandledExceptionFilter #Patch Set 8 : Update DEPS #Patch Set 9 : Revert changes to chrome_elf_constants #Patch Set 10 : Register crash keys only once in the process. #
Total comments: 13
Patch Set 11 : Address review comments #Patch Set 12 : Rename function to RegisterCrashKeysAndSetMetricsId #
Total comments: 12
Patch Set 13 : Address review comments #Patch Set 14 : Remove the key registration code from chrome_elf for the code path taken by the child process loggi… #
Total comments: 3
Patch Set 15 : Change more places in chrome to use chrome_elf as the crashpad entry point export conduit. Change c… #Patch Set 16 : Fix build error #
Total comments: 2
Patch Set 17 : Address review comments #Patch Set 18 : Fix build error #Patch Set 19 : Ensure that RegisterCrashKeys when chrome_elf is loaded only happens if we are not in component bui… #Patch Set 20 : Fix build error #Patch Set 21 : Fix build error #Depends on Patchset: Messages
Total messages: 46 (15 generated)
|