Browse Source

feat: deprecate uncompressed crash uploads (#23598)

Jeremy Apthorp 4 years ago
parent
commit
8de06f0c57
2 changed files with 22 additions and 1 deletions
  1. 17 0
      docs/breaking-changes.md
  2. 5 1
      lib/browser/api/crash-reporter.ts

+ 17 - 0
docs/breaking-changes.md

@@ -30,6 +30,17 @@ They should be called only from the main process.
 
 See [#23265](https://github.com/electron/electron/pull/23265) for more details.
 
+### Default Changed: `crashReporter.start({ compress: true })`
+
+The default value of the `compress` option to `crashReporter.start` has changed
+from `false` to `true`. This means that crash dumps will be uploaded to the
+crash ingestion server with the `Content-Encoding: gzip` header, and the body
+will be compressed.
+
+If your crash ingestion server does not support compressed payloads, you can
+turn off compression by specifying `{ compress: false }` in the crash reporter
+options.
+
 ## Planned Breaking API Changes (11.0)
 
 There are no breaking changes planned for 11.0.
@@ -81,6 +92,12 @@ All above methods remain non-deprecated when called from the main process.
 
 See [#23265](https://github.com/electron/electron/pull/23265) for more details.
 
+### Deprecated: `crashReporter.start({ compress: false })`
+
+Setting `{ compress: false }` in `crashReporter.start` is deprecated. Nearly
+all crash ingestion servers support gzip compression. This option will be
+removed in a future version of Electron.
+
 ### Removed: Browser Window Affinity
 
 The `affinity` option when constructing a new `BrowserWindow` will be removed

+ 5 - 1
lib/browser/api/crash-reporter.ts

@@ -1,4 +1,4 @@
-import { app } from 'electron';
+import { app, deprecate } from 'electron';
 
 const binding = process.electronBinding('crash_reporter');
 
@@ -18,6 +18,10 @@ class CrashReporter {
 
     if (submitURL == null) throw new Error('submitURL is a required option to crashReporter.start');
 
+    if (!compress) {
+      deprecate.log('Sending uncompressed crash reports is deprecated and will be removed in a future version of Electron. Set { compress: true } to opt-in to the new behavior. Crash reports will be uploaded gzipped, which most crash reporting servers support.');
+    }
+
     const appVersion = app.getVersion();
 
     if (companyName && globalExtra._companyName == null) globalExtra._companyName = companyName;