Electron 12.0.0 has been released! It includes updates to Chromium 89, V8 8.9, and Node.js 14.16. We added changes to remote modules, new default values for contextIsolation, new webFrameMain APIS, and general improvements. Please read the details below!
The Electron team is pleased to announce the release of Electron 12.0.0! You can install it via NPM, NPM install electron@latest or download it from our distribution site. Read on for details about this release and please share any feedback you have!
Significant changes
Changes in the underlying
- Chromium
89
- New features in Chrome 88
- New features in Chrome 89
- Node.js
14.16
- Node 14.16.0 blog post
- Node 14.0.0 blog post
- V8
8.9
- V8 8.8 blog posts
- V8 8.9 Blog posts
Prominent feature
ContextBridge
exposeInMainWorld
You can now expose non-object apis.# 26834- Upgrade from Node 12 to Node 14. #23249
- A new one was added
webFrameMain
API for access from the main processWebContents
Examples of examples.# 25464 contextIsolation
andworldSafeExecuteJavaScript
The default value of thetrue
. # 27949 # 27502
For a complete list of new features and changes, see the 12.0.0 Release notes
A major change
- deprecated
remote
The module. It has been@electron/remote
To be replaced.# 25293- If you are currently using
remote
Module, we haveThe migration to is written here@electron/remote
guide
- If you are currently using
- will
contextIsolation
The default value of thetrue
. # 27949 - will
worldSafeExecuteJavaScript
The default value of thetrue
Value.# 27502 - will
crashReporter.start({ compress })
The default value fromfalse
Change totrue
. # 25288 - Flash support has been removed: Chromium has removed Flash support, which has also been removed in ELECTRON 12. See the Chromium Flash Roadmap for more information.
- SSE3 required for Chromium on X86: Chromium has removed support for older x86 cpus that do not meet minimum SSE3 (Streaming SIMD Extension 3) support. This support has also been removed in Electron12.
More information about these and future changes can be found on the Scheduled Interruption Changes page.
API changes
-
Add webFrameMain API: The WebwebFrameMain module can be used to find instances in existing WebContents instances. This is the main process equivalent to existing Web framework apis. More information about this new API can be found here and in our documentation.
-
app
- De-localize
serviceName
Added to the'child-process-gone' / app.getAppMetrics()
. # 25975 - Add new
app.runningUnderRosettaTranslation
Property to detect when it is running under Rosetta on an Apple silicon chip.# 26444 - add
exitCode
torender-process-gone
Details (application and WebContents).# 27677
- De-localize
-
BrowserWindow
- add
BrowserWindow.isTabletMode()
API. # 25209 - add
resized
(Windows/macOS) and will (Windows) eventmoved
toBrowserWindow
. # 26216 - Add new
system-context-menu
Event to prevent and override the system context menu.# 25795 - add
win.setTopBrowserView()
In order toBrowserView
It can be improved.# 27713 - add
webPreferences.preferredSizeMode
For size browsing based on the minimum size of their documents.# 25874
- add
-
contextBridge
- allow
ContextBridge
exposeInMainWorld
Method exposes a non-object API.# 26834
- allow
-
display
- to
Display
Object to adddisplayFrequency
Property in order to get aboutWindows
Refresh rate information.# 26472
- to
-
extensions
- Add a couple of
chrome.management
The support of the API# 25098
- Add a couple of
-
MenuItem
- Added support for displaying macOS shared menus. #25629
-
net
- for
net.request()
A new one was addedcredentials
Options.# 25284 - add
net.online
Check whether the current Internet connection exists. .# 21004
- for
-
powerMonitor
- add
powerMonitor.onBatteryPower
. # 26494 - Added a quick user switch event to powerMonitor on macOS. #25321
- add
-
session
- add
allowFileAccess
Option toses.loadExtension()
API. # 27702 - add
display-capture
API tosession.setPermissionRequestHandler
. # 27696 - Add a
disabledCipherSuites
Option tosession.setSSLConfig
. # 25818 - add
extension-loaded
.extension-unloaded
, andextension-ready
The event to thesession
. # 25385 - add
session.setSSLConfig()
To allow SSL to be configured.# 25461 - To increase
session.setProxy()
In the cleardirect
Specify directlyauto_detect
orsystem
Pattern support.# 24937 - Added Serial API support. #25237
- Add API to enable/disable spell checker. #26276
- add
-
shell
- A new asynchrony was added
shell.trashItem()
API, instead of synchronizationshell.moveItemToTrash()
. # 25114
- A new asynchrony was added
-
webContents
- Added a small console prompt to the console to help debug renderer crashes. #25317
- In the Details object in the Web Requirements handler
frame
andwebContents
Control properties.# 27334 - add
webContents.forcefullyCrashRenderer()
To force the termination of the renderer process to help restore the suspended renderer.# 25580 - Adds a child window created for the renderer
setWindowOpenHandler
API, and deprecatenew-window
Events.# 24517
-
webFrame
- Add the spell checking API. #25060 to the renderer
Deleted/deprecated changes
The following apis have been removed or are now deprecated:
- deprecated
remote
The module. It has been@electron/remote
To be replaced.# 25293 - Delete deprecated
crashReporter
API. # 26709 - Removed the link to the Electron website from the default Help menu of the packaged application. #25831
End Support for version 9.0
According to the project support policy. Electron 9.0 support has been terminated. Developers and applications are encouraged to upgrade to the new version of Electron
What’s next
In the short term, you can expect the team to remain focused on keeping up with the development of the major components that make up Electron, including Chromium, Node, and V8. While we are careful not to make promises about release dates, our plan is to release a new major version of Electron and release new versions of these components approximately every quarter. This tentative schedule 13.0.0 plots key dates in the Electron 13.0 development life cycle. Also, see our version control documentation for more details on version control in Electron.
For information about the planned major changes in the upcoming Electron release, see our Planned Major Changes document.