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 exposeInMainWorldYou can now expose non-object apis.# 26834
  • Upgrade from Node 12 to Node 14. #23249
  • A new one was addedwebFrameMainAPI for access from the main processWebContentsExamples of examples.# 25464
  • contextIsolationandworldSafeExecuteJavaScriptThe 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

  • deprecatedremoteThe module. It has been@electron/remoteTo be replaced.# 25293
    • If you are currently usingremoteModule, we haveThe migration to is written here@electron/remoteguide
  • willcontextIsolationThe default value of thetrue. # 27949
  • willworldSafeExecuteJavaScriptThe default value of thetrueValue.# 27502
  • willcrashReporter.start({ compress })The default value fromfalseChange 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-localizeserviceNameAdded to the'child-process-gone' / app.getAppMetrics(). # 25975
    • Add newapp.runningUnderRosettaTranslationProperty to detect when it is running under Rosetta on an Apple silicon chip.# 26444
    • addexitCodetorender-process-goneDetails (application and WebContents).# 27677
  • BrowserWindow

    • addBrowserWindow.isTabletMode() API. # 25209
    • addresized(Windows/macOS) and will (Windows) eventmovedtoBrowserWindow. # 26216
    • Add newsystem-context-menuEvent to prevent and override the system context menu.# 25795
    • addwin.setTopBrowserView()In order toBrowserViewIt can be improved.# 27713
    • addwebPreferences.preferredSizeModeFor size browsing based on the minimum size of their documents.# 25874
  • contextBridge

    • allowContextBridge exposeInMainWorldMethod exposes a non-object API.# 26834
  • display

    • toDisplayObject to adddisplayFrequencyProperty in order to get aboutWindowsRefresh rate information.# 26472
  • extensions

    • Add a couple ofchrome.managementThe support of the API# 25098
  • MenuItem

    • Added support for displaying macOS shared menus. #25629
  • net

    • fornet.request()A new one was addedcredentialsOptions.# 25284
    • addnet.onlineCheck whether the current Internet connection exists. .# 21004
  • powerMonitor

    • addpowerMonitor.onBatteryPower. # 26494
    • Added a quick user switch event to powerMonitor on macOS. #25321
  • session

    • addallowFileAccessOption toses.loadExtension() API. # 27702
    • adddisplay-captureAPI tosession.setPermissionRequestHandler. # 27696
    • Add adisabledCipherSuitesOption tosession.setSSLConfig. # 25818
    • addextension-loaded.extension-unloaded, andextension-readyThe event to thesession. # 25385
    • addsession.setSSLConfig()To allow SSL to be configured.# 25461
    • To increasesession.setProxy()In the cleardirectSpecify directlyauto_detectorsystemPattern support.# 24937
    • Added Serial API support. #25237
    • Add API to enable/disable spell checker. #26276
  • shell

    • A new asynchrony was addedshell.trashItem()API, instead of synchronizationshell.moveItemToTrash(). # 25114
  • webContents

    • Added a small console prompt to the console to help debug renderer crashes. #25317
    • In the Details object in the Web Requirements handlerframeandwebContentsControl properties.# 27334
    • addwebContents.forcefullyCrashRenderer()To force the termination of the renderer process to help restore the suspended renderer.# 25580
    • Adds a child window created for the renderersetWindowOpenHandlerAPI, and deprecatenew-windowEvents.# 24517
  • webFrame

    • Add the spell checking API. #25060 to the renderer

Deleted/deprecated changes

The following apis have been removed or are now deprecated:

  • deprecatedremoteThe module. It has been@electron/remoteTo be replaced.# 25293
  • Delete deprecatedcrashReporter 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.