114 Commits
Author SHA1 Message Date
claude[bot]andClaude 2954493d46 docs: fix incorrect heading levels (#55407)
Several API entries were one heading level too deep relative to their
sibling events and methods, or skipped a level under their section.


Claude-Session: https://claude.ai/code/session_01KX1hkKfxeSmmXK7rv1wNCE

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-27 17:47:53 -07:00
claude[bot]andClaude Opus 5.5 718c8a6425 docs: overhaul crash reporting documentation (#54280)
* docs: overhaul crash reporting documentation

Add a Crash Reporting tutorial covering how Crashpad collects minidumps,
setting up crashReporter, attaching context with globalExtra and
per-process parameters, reacting to process-gone events, receiving
uploads, symbolicating with Electron's published symbols, and hosted
services.

Correct the crashReporter API reference: value limit is 20320 bytes (not
127) and long keys emit a warning; rateLimit works on all platforms;
ignoreSystemCrashHandler has no effect on Windows; compress: false is
deprecated; getParameters() excludes globalExtra; getUploadedReports()
also lists reports that were not uploaded; Node child processes have no
process.crashReporter.start(); document ptype and _companyName in the
payload; note MAS no-op behaviour; drop the archived mini-breakpad-server
and Mozilla-only Socorro and move hosted services to the tutorial.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFzbSEnmLgZoxGXgEKSH4i

* docs: trim implementation details from crash reporting docs

Document behaviour rather than internals so the docs don't become an
accidental API contract: drop the crash dumps directory layout and file
naming, handler process details, Chromium-internal upload fields and
query parameters, exact release asset names and the symbol server path
format, and notes about behaviour from old Electron versions.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFzbSEnmLgZoxGXgEKSH4i

* docs: remove privacy section from crash reporting tutorial

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFzbSEnmLgZoxGXgEKSH4i

* docs: recommend electron-minidump for symbolication

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFzbSEnmLgZoxGXgEKSH4i

* docs: move default values to end of crashReporter option descriptions

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFzbSEnmLgZoxGXgEKSH4i

* docs: address crash reporting review feedback

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFzbSEnmLgZoxGXgEKSH4i

* docs: link crashReporter methods in MAS note

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFzbSEnmLgZoxGXgEKSH4i

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-09-24 14:20:41 -07:00
Samuel Attard 1cf98129e4 feat: capture __fastfail crashes on Windows via a WER helper module (#53802)
* feat: capture __fastfail crashes on Windows via a WER helper module

Crashes raised through __fastfail (STATUS_STACK_BUFFER_OVERRUN: /GS
failures, CFG violations, UCRT abort()) never reach crashpad's in-process
exception filter, so they produced no minidump. Build electron_wer.dll, a
Windows Error Reporting runtime exception helper wrapping crashpad's
crashpad_wer_handler, ship it next to the executable, return its path from
ElectronCrashReporterClient::GetWerRuntimeExceptionModule() so crashpad
registers it in every process, and list it under the current user's
RuntimeExceptionHelperModules key from crashReporter.start() so Windows
will load it without installer changes.

Closes #40363.

* fix: keep WER active in libuv processes and scope helper pruning

libuv's uv_init sets SEM_NOGPFAULTERRORBOX, which stops Windows Error
Reporting from invoking runtime exception helpers, and Electron only
cleared it in the browser process. Clear it in every process type (as
Chromium does) and in ELECTRON_RUN_AS_NODE children after crashpad init,
so __fastfail in Node-integrated renderers, utility processes and workers
reaches electron_wer.dll; add a node-integrated renderer variant of the
spec. Only prune stale RuntimeExceptionHelperModules entries that are
siblings under this app's install root, so crashReporter.start() never
probes other apps' (possibly remote) paths.

* feat: look up the WER helper as <exe name>_wer.dll

Name the helper after the executable so packagers that rename electron.exe
rename the DLL alongside it (myapp.exe -> myapp_wer.dll); the GN output name
is derived from electron_project_name and the docs say so.

* fix: register the WER helper without probing the disk

GetWerRuntimeExceptionModule() runs in sandboxed child processes too, where
the PathExists() check fails and skipped registration (CI: the sandboxed
renderer __fastfail spec got no dump while the unsandboxed one did). Match
Chrome and return the path unconditionally; the browser still checks the
file exists before listing it in the registry.

* fix: let WER run for sandboxed child processes once crashpad is installed

The sandbox job starts children with SEM_NOGPFAULTERRORBOX
(JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION), so the WER helper was never
invoked for a sandboxed renderer's __fastfail. Clear the flag in child
processes right after crashpad initialization.

* refactor: ship crashpad's crashpad_wer.dll as the WER helper

Copy the upstream crashpad_wer loadable module to <exe name>_wer.dll instead
of building a duplicate, keep crashpad_wer.dll itself out of dist.zip, and
resolve the helper's directory from base::DIR_ASSETS (the executable's
directory by default) so apps that version their resources can relocate it.
2026-09-11 23:12:48 -04:00
Erick Zhao 55106192af docs: add more api history (C-D) (#49510) 2026-03-05 11:30:20 +01:00
Niklas Wenzel 6e2be00f0f docs: recommend calling renderer process modules from preload script (#48427) 2025-10-04 18:44:10 +02:00
Pratyush f570e6967f docs: fix broken sentence in crashReporter.start() documentation (#47688) 2025-07-16 15:05:45 +02:00
Erick ZhaoandNiklas Wenzel 2493e530d0 docs: unify [!NOTE] structure (#46893)
* docs: unify [!NOTE] structure

* Update docs/api/command-line.md

Co-authored-by: Niklas Wenzel <dev@nikwen.de>

* Update docs/api/browser-window.md

Co-authored-by: Niklas Wenzel <dev@nikwen.de>

* Update docs/api/download-item.md

Co-authored-by: Niklas Wenzel <dev@nikwen.de>

* Update docs/api/global-shortcut.md

Co-authored-by: Niklas Wenzel <dev@nikwen.de>

* revert line break

---------

Co-authored-by: Niklas Wenzel <dev@nikwen.de>
2025-05-09 14:36:42 -07:00
Erick Zhao b9c4b27781 docs: backslash escape parametrized TypeScript types (#41575)
* docs: backslash escape parametrized TypeScript types

* missing instances
2024-03-25 11:19:44 +01:00
David Sanders 3d2a754531 chore: extend linting of code blocks in the docs (#40245)
* chore: extend linting of code blocks in the docs

* chore: combine lint:markdownlint and lint:markdown scripts
2023-11-21 16:50:08 +09:00
Milan Burda f66d4c7ee0 fix: make sure classes in lib correctly implement Electron interfaces (#40291) 2023-10-25 14:02:15 -04:00
David Sanders d1cddf2517 docs: update github.com links (#37958) 2023-04-15 21:20:59 -07:00
Duncan Hewett 2c700da4de docs: add Bugsnag as a 3rd party crash server (#32053) 2022-01-03 14:48:15 -05:00
Milan Burda e6b1d95a1c docs: type names changed from wrapper to primitive (#31752) 2021-11-15 22:13:18 -06:00
Jeremy Rose 40e76dca07 feat: switch to crashpad on linux (#30278) 2021-08-03 14:01:12 -07:00
Jeremy Rose 502d4c19ce feat: allow omitting submitURL when uploadToServer is false (#28105) 2021-03-18 14:15:19 -07:00
Milan Burda 022bafc485 chore: remove deprecated crashReporter APIs (#26695) 2020-11-26 22:07:40 +03:00
Jeremy Rose 3ceaf4aa54 docs: document process.crashReporter apis in node children (#25579) 2020-09-24 08:22:50 -07:00
Jeremy Rose 4dc09ea9dc feat: [crashReporter] enable compression by default (#25288) 2020-09-03 12:43:58 -07:00
GitHubPang 5c5e006e46 docs: fix typos (#24982)
* docs: sync table of content from pull-requests.md to CONTRIBUTING.md

This also fixes some incorrect / dead links.

* docs: fix a bunch of typos
2020-08-18 16:55:16 +09:00
d93bb34ac4 fix: increase max crash key value length (#24782)
* fix: increase max crash key value length

* chore: fix linting

* chore: fix linux

* Update spec-main/api-crash-reporter-spec.ts

Co-authored-by: Jeremy Rose <jeremya@chromium.org>

Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2020-07-29 19:04:04 -07:00
Jeremy ApthorpandElectron Bot 87a670f74d feat: allow compressing crash uploads on linux (#23597)
* chore: align crash patch with upstream

* feat: allow compressing crash uploads on linux

* update patches

Co-authored-by: Electron Bot <anonymous@electronjs.org>
2020-05-18 11:09:50 -04:00
Jeremy Apthorp 06bf0d08dc fix: crashReporter incompatible with sandbox on Linux (#23265) 2020-05-07 13:31:26 -07:00
Jeremy Apthorp aeaccd00a2 feat: crashReporter: expose rateLimit and compress options (#23062) 2020-04-14 10:36:31 -07:00
Jeremy Apthorp 8dad0c7aaa test: move crashReporter specs to the main process (#20417) 2019-10-14 14:38:54 -07:00
Samuel Attard cfd230d7f1 docs: remove implicit 'any' and 'Object' types from the docs (#19585)
* docs: remove implicit 'any' and 'Object' types from the docs

* docs: more docs improvements, remove all remaining empty interfaces

* chore: update tests for better types
2019-08-05 10:45:58 -07:00
Charles Kerr 792f6b246c docs: fix spelling and grammar errors (#18910) 2019-06-21 16:19:21 -05:00
Nitish Sakhawalkar f98454e5dd fix: use crashpad on Windows (#18483)
* Initial changes to use crashpad for windows

* Remove crashpad patch

* Report error when failed to connect pipe

* Allow crashpad to communicate with named pipe

* Add patch to make crashpad named pipe work

* Windows also needs crashReporter on main process

* Call SetUnhandledExceptionFilter in node process

Node can also use crash reporter.

* Do not treat node process as browser process

* No more need to manually start crash service

* Use base::StringPrintf for better readbility

* Print error when pipe name not available

* Make sure pipe name is updated

Note that the crashpad may be started after renderer process gets
created.

* Fix some tests

* Update node

* Exclude crashpad files on Linux and MAS

* Fix lint warning

* Remove unused checks

* kCrashpadPipeName is only available on Windows

* Fix uploadToServer tests

* Fix extra params tests

* Fix getCrashesDirectory tests

* Run crashReporter tests on CI

* Style fixes

* Update crashreporter docs

* Rename InitBreakpad to Init

* Add comment for process_type_.empty() and UTF16ToASCII to UTF16ToUTF8.

* Update build.gn include crashpad headers

* Address comment https://github.com/electron/electron/pull/18483#discussion_r290887898

* Avoid using api::WebContents

* Put kRunAsNode in atom_constants

* Remove duplicate settings on upload params

* Fix building on macOS

* Update description for crashpad_pid_check.patch
2019-06-13 15:42:21 +09:00
Shelley Vohr 01cd6e7a06 docs: clarify crash report extra param length (#18386)
Resolves #17746.

Clarifies that the extra field of the crashReporter options object only needs to be < 64 characters on Windows.
2019-05-28 10:17:01 -07:00
Jeremy Apthorp 96e19f1cc4 docs: fix name of Backtrace in crash reporter docs (#18180) 2019-05-09 10:30:37 -07:00
Bobby Galli 175fae722a docs: added BugSplat to list of hosted solutions (#18162) 2019-05-06 19:37:24 -07:00
Shelley Vohr 8d83518f9a refactor: make name a prop on app (#17701)
Update app.name to be a property on app.
2019-04-30 13:55:33 -07:00
Shelley Vohr b25279df89 docs: clarify documentation for getLastCrashReport (#17458)
* docs: clarify documentation for getLastCrashReport

* address feedback
2019-03-20 15:34:21 -07:00
Jeremy Apthorp 72f3a22ecc docs: reorder crashReporter notes to make more sense (#16825)
the note about reports from child processes on Windows should be next to the code snippet.

Side note: is that code even still necessary?
2019-02-08 13:26:59 -08:00
Samuel Attard 558fff69e7 chore: update to standard 12 2018-09-14 14:57:01 +10:00
Shelley Vohr e415efaceb docs: crashReporter companyName is not optional 2018-08-16 09:15:17 -07:00
popod 13f97b4cae Add Sentry.io to 3rd party hosted solution list for crash reports (#13281)
* Add Sentry.io to 3rd party hosted solution list for crash reports

* Single link to sentry doc
2018-06-19 10:32:37 -05:00
Phil Freo 738b10adea Include backtrace i/o as a crash reporter backend option
Note: I have no affiliation with this company - just thought this would be helpful for people
2018-02-28 14:21:14 -05:00
Shelley Vohr fc025064f7 remove setExtraParameter for 2.0 2018-02-20 08:26:10 -05:00
Toinane 0a0d88a5dc remove all double spaces not needed 2017-11-29 11:58:24 +01:00
Toinane 323ea2b27b fix(docs): fix all missing dots and add some links 2017-11-29 11:38:35 +01:00
Shelley Vohr 14df9a58c7 remove setExtraParam from docs 2017-11-01 22:30:48 -04:00
Shelley Vohr dc9c2673d7 docs typo fix 2017-11-01 22:25:10 -04:00
Shelley Vohr 3af83f1c97 add new method and mark setExtraParameter for deprecation 2017-11-01 21:57:43 -04:00
Shelley Vohr 33092e6324 update docs to reflect parameter method change 2017-11-01 21:21:41 -04:00
Samuel Attard 195cb91721 Make crashesDirectory optional 2017-09-08 13:21:35 +10:00
Benjamin Pasero 54bd60d657 add crashesDirectory to crash reporter options 2017-09-07 06:07:28 +02:00
Zeke Sikelianos d3ac9a3f3b fix crash reporter typo 2017-06-27 10:40:14 -07:00
Kevin Sawicki cbaf3d4787 Tweak character limit description 2017-06-26 08:35:57 -07:00
foo bar code 4bed743417 Extra properties must be less than 63 characters
I found out that after trying to putting some long text in my extra properties that it was truncated, digging around I found these:

https://github.com/electron/electron/blob/897d58bde1414d73529a526a4f3fbc237683d9be/atom/common/crash_reporter/crash_reporter_win.cc
const int kNameMaxLength = 64;
const int kValueMaxLength = 64;
2017-06-16 14:41:12 +02:00
Thiago de Arruda f0d447cd68 Pass uploadToServer to windows crash reporter 2017-03-31 13:46:30 -03:00