Electron 22.0.0
Electron 22.0.0 вышел! It includes a new utility process API, updates for Windows 7/8/8.1 support, and upgrades to Chromium 108
, V8 10.8
, and Node.js 16.17.1
. Read below for more details!
Команда Electron рада объявить о выпуске Electron 22.0.0! You can install it with npm via npm install electron@latest
or download it from our releases website. Continue reading for details about this release.
If you have any feedback, please share it with us on Twitter, or join our community Discord! Bugs and feature requests can be reported in Electron's issue tracker.
Notable Changes
Stack Changes
- Chromium
108
- Node.js
16.17.1
- V8
10.8
Highlighted Features
UtilityProcess API #36089
The new UtilityProcess
main process module allows the creation of a lightweight Chromium child process with only Node.js integration while also allowing communication with a sandboxed renderer using MessageChannel
. The API was designed based on Node.js child_process.fork
to allow for easier transition, with one primary difference being that the entry point modulePath
must be from within the packaged application to allow only for trusted scripts to be loaded. Additionally the module prevents establishing communication channels with renderers by default, upholding the contract in which the main process is the only trusted process in the application.
You can read more about the new UtilityProcess API in our docs here.
Windows 7/8/8.1 Support Update
2023/02/16: An update on Windows Server 2012 support
Last month, Google announced that Chrome 109 would continue to receive critical security fixes for Windows Server 2012 and Windows Server 2012 R2 until October 10, 2023. In accordance, Electron 22's (Chromium 108) planned end of life date will be extended from May 30, 2023 to October 10, 2023. The Electron team will continue to backport any security fixes that are part of this program to Electron 22 until October 10, 2023.
Note that we will not make additional security fixes for Windows 7/8/8.1. Also, Electron 23 (Chromium 110) will only function on Windows 10 and above as previously announced.
Electron 22 will be the last Electron major version to support Windows 7/8/8.1. Electron follows the planned Chromium deprecation policy, which will deprecate Windows 7/8/8.1 support in Chromium 109 (read more here).
Windows 7/8/8.1 will not be supported in Electron 23 and later major releases.
Additional Highlighted Changes
- Added support for Web Bluetooth pin pairing on Linux and Windows. #35416
- Added
LoadBrowserProcessSpecificV8Snapshot
as a new fuse that will let the main/browser process load its v8 snapshot from a file atbrowser_v8_context_snapshot.bin
. Any other process will use the same path as is used today. #35266 - Added
WebContents.opener
to access window opener andwebContents.fromFrame(frame)
to get the WebContents corresponding to a WebFrameMain instance. #35140 - Added support for
navigator.mediaDevices.getDisplayMedia
via a new session handler,ses.setDisplayMediaRequestHandler
. #30702
Критические изменения в API
Below are breaking changes introduced in Electron 22. You can read more about these changes and future changes on the Planned Breaking Changes page.
Obsoleto: webContents.incrementCapturerCount(stayHidden, stayAwake)
webContents.incrementCapturerCount(stayHidden, stayAwake)
has been deprecated. It is now automatically handled by webContents.capturePage
when a page capture completes.
const w = new BrowserWindow({ show: false })
- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })
+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })
Obsoleto: webContents.decrementCapturerCount(stayHidden, stayAwake)
webContents.decrementCapturerCount(stayHidden, stayAwake)
has been deprecated. It is now automatically handled by webContents.capturePage
when a page capture completes.
const w = new BrowserWindow({ show: false })
- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })
+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })
Removed: WebContents new-window
event
The new-window
event of WebContents has been removed. Заменяется на webContents.setWindowOpenHandler()
.
- webContents.on('new-window', (event) => {
- event.preventDefault()
- })
+ webContents.setWindowOpenHandler((details) => {
+ return { action: 'deny' }
+ })
Deprecated: BrowserWindow scroll-touch-*
events
The scroll-touch-begin
, scroll-touch-end
and scroll-touch-edge
events on BrowserWindow are deprecated. Instead, use the newly available input-event
event on WebContents.
// Deprecated
- win.on('scroll-touch-begin', scrollTouchBegin)
- win.on('scroll-touch-edge', scrollTouchEdge)
- win.on('scroll-touch-end', scrollTouchEnd)
// Replace with
+ win.webContents.on('input-event', (_, event) => {
+ if (event.type === 'gestureScrollBegin') {
+ scrollTouchBegin()
+ } else if (event.type === 'gestureScrollUpdate') {
+ scrollTouchEdge()
+ } else if (event.type === 'gestureScrollEnd') {
+ scrollTouchEnd()
+ }
+ })
End of Support for 19.x.y
Electron 19.x.y has reached end-of-support as per the project's support policy. Developers and applications are encouraged to upgrade to a newer version of Electron.
E19 (May'22) | E20 (Aug'22) | E21 (Sep'22) | E22 (Nov'22) | E23 (Jan'23) |
---|---|---|---|---|
19.x.y | 20.x.y | 21.x.y | 22.x.y | 23.x.y |
18.x.y | 19.x.y | 20.x.y | 21.x.y | 22.x.y |
17.x.y | 18.x.y | 19.x.y | 20.x.y | 21.x.y |
Что дальше
The Electron project will pause for the the month of December 2022, and return in January 2023. More information can be found in the December shutdown blog post.
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.
You can find Electron's public timeline here.
More information about future changes can be found on the Planned Breaking Changes page.