Electron Releases - v23.0.0

npm install electron@v23.0.0
yarn add electron@v23.0.0

Release Notes

Stack Upgrades

Breaking Changes

  • Windows 7, Windows 8, and Windows 8.1 are not supported anymore, as Chromium 110 dropped support. #36513


  • Added label property to Display objects. #36933 (Also in 21, 22)
  • Added an app.getPreferredSystemLanguages() API to return the user's system languages. #36035 (Also in 21, 22)
  • Added new UtilityProcess API to launch chromium child process with node integration. #34980 (Also in 22)
  • Added support for WebUSB. #36289
  • Added support for serialPort.forget() as well as a new event serial-port-revoked emitted when a given origin is revoked. #35310 (Also in 22)
  • Adds new setHiddenInMissionControl API to allow developers to opt out of mission control on macOS. #36092 (Also in 22)


  • Basic accessibility support is now enabled when macOS Voice Control is activated to allow for full voice control of Electron applications. #37145
  • Fixed a printing crash caused by an uninitialized pref. #37149
  • Default margin has been added in the code. #36060 (Also in 21, 22)
  • Doing require('electron/*') where * is not one of main, common or renderer no longer resolves with the built-in electron module. #35915
  • Enable crashpad for ELECTRON_RUN_AS_NODE processes. #36460 (Also in 22)
  • Fixed click event and tooltip of Tray not working on Linux. #36333 (Also in 22)
  • Fixed a crash that could occur when running eval in inline scripts in unsandboxed renderer processes. #36667 (Also in 22)
  • Fixed a drag-and-drop issue on macOS where items would be incorrectly moved instead of copied in some contexts. #35963 (Also in 20, 21, 22)
  • Fixed a potential issue when calling webContents.printToPDF(). #36046 (Also in 21, 22)
  • Fixed a potential memory leak. #35932 (Also in 21, 22)
  • Fixed an RTL issue that could happen in some locales when calling BrowserWindow.setTrafficLightPosition() on macOS. #36850 (Also in 21, 22)
  • Fixed an error when fs.readdir gets null for options. #36848 (Also in 21, 22)
  • Fixed an issue on macOS when trying to switch processes with Cmd+Tab after exiting Kiosk Mode. #36917 (Also in 21, 22)
  • Fixed an issue where <datalist> elements were improperly positioned within the page. #36959
  • Fixed an issue where webViews could have an incorrect initial background color following reloads. #36938 (Also in 21, 22)
  • Fixed an issue where calling app.dock.setIcon(/path/t/icon) would crash when called before the ready event on app. #36279 (Also in 20, 21, 22)
  • Fixed an issue where frameless non-resizable windows showed a Windows 7 frame during startup. #35365 (Also in 22)
  • Fixed an issue where some options were incorrectly ignored when using webContents.printToPDF(). #35975 (Also in 21, 22)
  • Fixed an issue where the setPermissionRequestHandler callback would be invoked twice when using navigator.getUserMedia(...). #36874 (Also in 22)
  • Fixed an issue with incorrect focus ring highlighting when using dialog.showMessageBox(). #36803 (Also in 21, 22)
  • Fixed binary stripping for branded release builds on Linux. #36656 (Also in 21, 22)
  • Fixed missing headers in libcxx_headers bundle. #36864
  • Fixed on-screen-keyboard not hiding on input rendered in webview is blurred. #35921 (Also in 20, 21, 22)
  • Fixed race condition during update on macOS that could result in TCC and Keychain errors. #36130 (Also in 22)
  • Fixed spurious promise rejection in webContents.loadURL when navigating to a hash. #36129 (Also in 20, 21, 22)
  • Fixed v8 flags and desktop name in package.json does not hornored when running local app using electron cli. #35997 (Also in 20, 21, 22)
  • Fixed warning about duplicate WebSwapCGLLayer symbols when Electron starts on macOS. #36799 (Also in 21, 22)
  • Removed plugin helper checks on macOS gated behind enable_plugins buildflag. #36977 (Also in 22)
  • Removed support for nodeIntegrationInWorker in Service Workers and Shared Workers owing to sandboxing policies. #35919 (Also in 21, 22)
  • Removed unneeded --turbo-profiling-input argument from mksnapshot_args. #36378 (Also in 22)
  • The keychain account name for MAS and Darwin builds of the same Electron application now differ. #35864
  • Use the process cache to reduce the memory for asar file. #36665 (Also in 21, 22)
  • You can now import the built-in electron module via ESModule loaders, i.e. import('electron') and import 'electron' now work natively. #35930 (Also in 20, 21, 22)

Other Changes

  • The deprecated incrementCapturerCount() / decrementCapturerCount() methods have been removed. #37148
  • Updated Chromium to 110.0.5481.77. #37120
  • Added node-api: handle no support for external buffers. #36623
  • Enabled out-of-process iframe printing to PDF with webContents.printToPDF().. #36051 (Also in 22)
  • Removed unneeded --turbo-profiling-input argument from mksnapshot_args for Linux mksnapshot zips. #36534 (Also in 22)
  • Updated Chromium to 110.0.5481.38. #36955
  • Updated Node.js to v18.12.1. #36356
  • Upgraded Node.js to v18.10.0. #35999


  • Documentation changes: #35894


Sunsetting Windows 7/8/8.1

Electron has ended support for Windows 7/8/8.1 in version 23.x.y following Chromium's plan to end support. Older versions of Electron will continue to work, but no further updates will be made for these operating systems.

End of Support for 20.x.y

Electron 20.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.