MarshallOfSound

#53802: feat: capture __fastfail crashes on Windows via a WER helper module

Merged
Created: Sep 9, 2026, 5:36:54 PM
Merged: Sep 11, 2026, 10:12:49 PM
3 comments
Target: main

__fastfail crashes (STATUS_STACK_BUFFER_OVERRUN: /GS failures, CFG violations, UCRT abort()) never reach crashpad's in-process exception filter, so today they produce no minidump on Windows. Chrome catches them with a Windows Error Reporting runtime exception helper (chrome_wer.dll); this does the same for Electron.

  • Ship crashpad's crashpad_wer module as electron_wer.dll (copied to <exe name>_wer.dll) in the Windows dist.
  • ElectronCrashReporterClient::GetWerRuntimeExceptionModule() returns <exe name>_wer.dll in DIR_ASSETS (the executable's directory by default) so crashpad registers it in every process (Windows 10 20H1+); apps that rename electron.exe rename the DLL to match.
  • crashReporter.start() lists the DLL under HKCU\Software\Microsoft\Windows\Windows Error Reporting\RuntimeExceptionHelperModules — Windows only loads helpers named there — so no installer or app changes are needed; stale entries for since-removed copies are pruned.
  • Spec: a renderer chrome://crash/cfg (CFG __fastfail) now uploads a dump.

Closes #40363.

cc @dyc

Notes: Added a Windows Error Reporting helper (electron_wer.dll, renamed to <app>_wer.dll alongside the executable) so crashReporter captures __fastfail and other crashes that bypass the in-process handler on Windows.

Backports

45-x-y
In-flight
PR Number
#53851
Waiting to be merged

Semver Impact

Major
Breaking changes
Minor
New features
Patch
Bug fixes
None
Docs, tests, etc.

Semantic Versioning helps users understand the impact of updates:

  • Major (X.y.z): Breaking changes that may require code modifications
  • Minor (x.Y.z): New features that maintain backward compatibility
  • Patch (x.y.Z): Bug fixes that don't change the API
  • None: Changes that don't affect using facing parts of Electron