From f8b738e6c23d2cd30184c31d847b75608dfc2f6c Mon Sep 17 00:00:00 2001 From: Ramya Achutha Rao Date: Wed, 23 Nov 2016 15:36:03 -0800 Subject: [PATCH 1/2] Clarifying crash reporter behviour in Mac --- docs/api/crash-reporter.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/docs/api/crash-reporter.md b/docs/api/crash-reporter.md index cec860ad61f..9925f76b4ea 100644 --- a/docs/api/crash-reporter.md +++ b/docs/api/crash-reporter.md @@ -47,14 +47,20 @@ The `crashReporter` module has the following methods: report. Only string properties are sent correctly, Nested objects are not supported. -You are required to call this method before using other `crashReporter` -APIs. +You are required to call this method before using other `crashReporter` APIs +and in each process (main/renderer) from which you want to collect crash reports. +You can pass different options to `crashReporter.start` while calling from different processes. -**Note:** On macOS, Electron uses a new `crashpad` client, which is different -from `breakpad` on Windows and Linux. To enable the crash collection feature, -you are required to call the `crashReporter.start` API to initialize `crashpad` -in the main process and in each renderer process from which you wish to collect -crash reports. +**Note:** On Windows and Linux, Electron uses `breakpad` for crash collection and reporting. +Crashes can be collected from the main and renderer process, but not from the child processes +created via `child_process` module. + +**Note:** On macOS, Electron uses a new `crashpad` client for crash collection and reporting. +Crashes can be collected from the main, renderer and any of the child processes created via the `child_process` module. +If you want to enable crash reporting, initializing `crashpad` from the main process using `crashReporter.start` is mandatory +regardless of which process you want to collect crashes from. Once initialized this way, the crashpad handler collects +crashes from all processes. You still have to call `crashReporter.start` from the renderer process, otherwise crashes from +renderer processes will get reported without `companyName`, `productName` or any of the `extra` information. ### `crashReporter.getLastCrashReport()` From 446065b88c58a304cbd6c5e82e1fc315bc4e7735 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 28 Nov 2016 15:37:06 -0800 Subject: [PATCH 2/2] Minor updates to crash reporter notes --- docs/api/crash-reporter.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/api/crash-reporter.md b/docs/api/crash-reporter.md index 9925f76b4ea..338c890136a 100644 --- a/docs/api/crash-reporter.md +++ b/docs/api/crash-reporter.md @@ -47,17 +47,17 @@ The `crashReporter` module has the following methods: report. Only string properties are sent correctly, Nested objects are not supported. -You are required to call this method before using other `crashReporter` APIs +You are required to call this method before using any other `crashReporter` APIs and in each process (main/renderer) from which you want to collect crash reports. -You can pass different options to `crashReporter.start` while calling from different processes. +You can pass different options to `crashReporter.start` when calling from different processes. **Note:** On Windows and Linux, Electron uses `breakpad` for crash collection and reporting. Crashes can be collected from the main and renderer process, but not from the child processes -created via `child_process` module. +created via the `child_process` module. **Note:** On macOS, Electron uses a new `crashpad` client for crash collection and reporting. Crashes can be collected from the main, renderer and any of the child processes created via the `child_process` module. -If you want to enable crash reporting, initializing `crashpad` from the main process using `crashReporter.start` is mandatory +If you want to enable crash reporting, initializing `crashpad` from the main process using `crashReporter.start` is required regardless of which process you want to collect crashes from. Once initialized this way, the crashpad handler collects crashes from all processes. You still have to call `crashReporter.start` from the renderer process, otherwise crashes from renderer processes will get reported without `companyName`, `productName` or any of the `extra` information.