Skip to content
This repository has been archived by the owner on Nov 29, 2022. It is now read-only.

docs: 6.0.0 blog post #2799

Merged
merged 29 commits into from
Jul 30, 2019
Merged
Changes from 18 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
7fd39b0
[WIP] feat: 6.0.0 blog post
sofianguy Jul 22, 2019
b5b3db2
what's next
sofianguy Jul 23, 2019
d9c5519
what's new
sofianguy Jul 23, 2019
026d000
V8
sofianguy Jul 23, 2019
3027611
promises
sofianguy Jul 23, 2019
e849ab6
add TODOs
sofianguy Jul 24, 2019
0a356e2
more blog
sofianguy Jul 24, 2019
67cdca0
address comments
sofianguy Jul 24, 2019
2f8077d
chore: pick up more Promise changes
ckerr Jul 26, 2019
71a5075
copyediting
ckerr Jul 26, 2019
b4f5525
Merge branch 'master' into six-oh-blog
ckerr Jul 26, 2019
ed0bf82
chore: remove TODO list
ckerr Jul 26, 2019
e989530
chore: copyediting
ckerr Jul 26, 2019
6199573
Merge branch 'six-oh-blog' of https://github.com/electron/electronjs.…
ckerr Jul 26, 2019
8662b5e
Merge branch 'master' into six-oh-blog
sofianguy Jul 29, 2019
1d04a1d
add data about new Mac Helpers
codebytere Jul 29, 2019
a9aa4a8
chrome bump
sofianguy Jul 29, 2019
9b19e13
Update data/blog/electron-6-0.md
codebytere Jul 29, 2019
187fd2c
address feedback from review
codebytere Jul 29, 2019
8b80667
address more feedback from @marshallofsound
codebytere Jul 29, 2019
982cf94
chore: remove empty deprecations section
ckerr Jul 29, 2019
01a770d
chore: document breaking changes
ckerr Jul 29, 2019
b8e3565
Merge branch 'master' into six-oh-blog
ckerr Jul 29, 2019
719d061
docs: clarify app.setAppsLogPath()
ckerr Jul 29, 2019
859d8cd
docs: add backticks to function names in 6.0.0 blog post
ckerr Jul 29, 2019
2765843
docs: fix misattribution
ckerr Jul 29, 2019
f67a1c7
new in M76 link
sofianguy Jul 30, 2019
d7c3940
Update electron-6-0.md
MarshallOfSound Jul 30, 2019
6df21a4
Merge branch 'master' into six-oh-blog
codebytere Jul 30, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 122 additions & 0 deletions data/blog/electron-6-0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
---
title: Electron 6.0.0
author:
- sofianguy
- ckerr
- codebytere
date: '2019-07-30'
---

The Electron team is excited to announce the release of Electron 6.0.0! You can install it with npm via `npm install electron@latest` or download it from our [releases website](https://electronjs.org/releases/stable). The release is packed with upgrades, fixes, and new features. We can't wait to see what you build with them! Continue reading for details about this release, and please share any feedback you have!
sofianguy marked this conversation as resolved.
Show resolved Hide resolved

---

## What's New

Today marks a first for the Electron project: this is the first time we've made a stable Electron release **on the same day** as the corresponding [Chrome stable release](https://www.chromestatus.com/features/schedule)! 🎉

Much of Electron's functionality is provided by the core components of Chromium, Node.js, and V8. Electron keeps up-to-date with these projects to provide our users with new JavaScript features, performance improvements, and security fixes. Each of these packages has a major version bump in Electron 6:

- Chromium `76.0.3809.88`
- [New in 74](https://developers.google.com/web/updates/2019/04/nic74)
- [New in 75](https://developers.google.com/web/updates/2019/06/nic75)
- [New in 76](https://developers.google.com/web/updates/tags/chrome76)
- Node.js `12.4.0`
- [Node 12.4.0 blog post](https://nodejs.org/en/blog/release/v12.4.0/)
- V8 `7.6.303.22`
- [V8 7.6 blog post](https://v8.dev/blog/v8-release-76)

This release also includes improvements to Electron's APIs. [The release notes](https://github.com/electron/electron/releases/tag/v6.0.0) have a more complete list, but here are the highlights:

### Promisification

Electron 6.0 continues the modernization [initiative](https://github.com/electron/electron/blob/master/docs/api/modernization/promisification.md) started in 5.0 to improve [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises) support.

These functions now return Promises and still support older callback-based invocation:
* contentTracing.getCategories() [#16583](https://github.com/electron/electron/pull/16583)
* contentTracing.getCategories() [#16583](https://github.com/electron/electron/pull/16583)
* contentTracing.getTraceBufferUsage() [#16600](https://github.com/electron/electron/pull/16600)
* contents.executeJavaScript() [#17312](https://github.com/electron/electron/pull/17312)
* cookies.flushStore() [#16464](https://github.com/electron/electron/pull/16464)
* cookies.get() [#16464](https://github.com/electron/electron/pull/16464)
* cookies.remove() [#16464](https://github.com/electron/electron/pull/16464)
* cookies.set() [#16464](https://github.com/electron/electron/pull/16464)
* dialog.showCertificateTrustDialog() [#17181](https://github.com/electron/electron/pull/17181)
* inAppPurchase.getProducts() [#17355](https://github.com/electron/electron/pull/17355)
* inAppPurchase.purchaseProduct()[#17355](https://github.com/electron/electron/pull/17355)
* netLog.stopLogging() [#16862](https://github.com/electron/electron/pull/16862)
* session.clearAuthCache() [#17259](https://github.com/electron/electron/pull/17259)
* session.clearCache() [#17185](https://github.com/electron/electron/pull/17185)
* session.clearHostResolverCache() [#17229](https://github.com/electron/electron/pull/17229)
* session.clearStorageData() [#17249](https://github.com/electron/electron/pull/17249)
* session.getBlobData() [#17303](https://github.com/electron/electron/pull/17303)
* session.getCacheSize() [#17185](https://github.com/electron/electron/pull/17185)
* session.resolveProxy() [#17222](https://github.com/electron/electron/pull/17222)
* session.setProxy() [#17222](https://github.com/electron/electron/pull/17222)
* webContents.hasServiceWorker() [#16535](https://github.com/electron/electron/pull/16535)
* webContents.printToPDF() [#16795](https://github.com/electron/electron/pull/16795)
* webContents.savePage() [#16742](https://github.com/electron/electron/pull/16742)
* webFrame.executeJavaScript() [#17312](https://github.com/electron/electron/pull/17312)
* webFrame.executeJavaScriptInIsolatedWorld() [#17312](https://github.com/electron/electron/pull/17312)
* webviewTag.executeJavaScript() [#17312](https://github.com/electron/electron/pull/17312)

These functions now have two forms, synchronous and Promise-based asynchronous:
* `dialog.showMessageBox()` [#17298](https://github.com/electron/electron/pull/17298)
codebytere marked this conversation as resolved.
Show resolved Hide resolved
* `dialog.showOpenDialog()` [#16973](https://github.com/electron/electron/pull/16973)
codebytere marked this conversation as resolved.
Show resolved Hide resolved
* `dialog.showSaveDialog()` [#17054](https://github.com/electron/electron/pull/17054)
codebytere marked this conversation as resolved.
Show resolved Hide resolved

These functions now return Promises:
* `app.dock.show()` [#16904](https://github.com/electron/electron/pull/16904)

### `Electron Helper (Render).app` and `Electron Helper (Plugin).app`
codebytere marked this conversation as resolved.
Show resolved Hide resolved

There are now more Mac Helper application bundles.
codebytere marked this conversation as resolved.
Show resolved Hide resolved

In order to enable the [hardened runtime](https://developer.apple.com/documentation/security/hardened_runtime_entitlements?language=objc), which restricts things like
writable-executable memory and loading code signed by a different Team
ID, special code signing entitlements must be granted to the Helper.
codebytere marked this conversation as resolved.
Show resolved Hide resolved

To keep the capabilities scoped to the process types that require them, Chromium [added](https://chromium-review.googlesource.com/c/chromium/src/+/1627456)
codebytere marked this conversation as resolved.
Show resolved Hide resolved
two new variants of the Helper app: one for renderers (`Electron Helper (Render).app`) and one for plugins (`Electron Helper (Plugin).app`).

Currently all three Helpers (the pre-existing `Electron Helper.app` in addition to the two new ones) will be code signed in the same way without
codebytere marked this conversation as resolved.
Show resolved Hide resolved
any entitlements, although this may change in the future.

## Breaking Changes

### `app.allowRendererProcessReuse` option

This release starts laying the groundwork for a future requirement that native Node modules loaded in the renderer process be either [N-API](https://nodejs.org/api/n-api.html) or [Context Aware](https://nodejs.org/api/addons.html#addons_context_aware_addons). The reasons for this change are faster performance, stronger security, and reduced maintenance workload. Read the full details including the proposed timeline in [this issue](https://github.com/electron/electron/issues/18397). This change is expected to be completed in Electron v11.

Outline for change:
codebytere marked this conversation as resolved.
Show resolved Hide resolved

* Electron 6: Add option to disable site instance patches [#18396](https://github.com/electron/electron/pull/18396)
* Electron 7: Show deprecation warnings for non-context aware native modules
* Electron 8: Show deprecation warnings for the default value of `app.allowRendererProcessReuse` to switch
* Electron 9: Switch the default value of `app.allowRendererProcessReuse`
* Electron 10: Deprecate the ability to change `app.allowRendererProcessReuse`
* Electron 11: Remove the ability to change `app.allowRendererProcessReuse`

### Other Breaking Changes

[TODO: need to provide details for the following bullet items or omit from blog post]

* Fixed disparity between `net` module headers and Node.js' `http.IncomingMessage` headers. [#17517](https://github.com/electron/electron/pull/17517)
* Made `ShowItemInFolder` asynchronous with no return value. [#17121](https://github.com/electron/electron/pull/17121)
* Made app log directory creation opt-in with a new function `app.setAppLogsPath`. [#17841](https://github.com/electron/electron/pull/17841)

## Deprecations

## End of Support for 3.0.x
codebytere marked this conversation as resolved.
Show resolved Hide resolved

Per our [support policy](https://electronjs.org/docs/tutorial/support#supported-versions), 3.0.x has reached end of life. Developers and applications are encouraged to upgrade to a newer version of Electron.
codebytere marked this conversation as resolved.
Show resolved Hide resolved

## App Feedback Program

We continue to use our [App Feedback Program](https://electronjs.org/blog/app-feedback-program) for testing. Projects who participate in this program test Electron betas on their apps; and in return, the new bugs they find are prioritized for the stable release. If you'd like to participate or learn more, [check out our blog post about the program](https://electronjs.org/blog/app-feedback-program).

## What's Next

In the short term, you can expect the team to continue to focus on keeping up with the development of the major components that make up Electron, including Chromium, Node, and V8. Although we are careful not to make promises about release dates, our plan is release new major versions of Electron with new versions of those components approximately quarterly. The [tentative 7.0.0 schedule](https://electronjs.org/docs/tutorial/electron-timelines) maps out key dates in the Electron 7 development life cycle. Also, [see our versioning document](https://electronjs.org/docs/tutorial/electron-versioning) for more detailed information about versioning in Electron.

For information on planned breaking changes in upcoming versions of Electron, [see our Planned Breaking Changes doc](https://github.com/electron/electron/blob/master/docs/api/breaking-changes.md).