Electron Releases

Filter by channel Filter by major release

Release Notes for v29.0.0

Stack Upgrades

Breaking Changes

  • Functions called over the contextBridge are now called with the expected receiver (this). #39978 (Also in 27, 28)
  • The gpu-process-crashed event on app has been deprecated. #40169 (Also in 28)
  • The deprecated gpu-process-crashed event on app has been removed. #40255
  • The deprecated renderer-process-crashed event on app and crashed event on WebContents and <webview> have been removed. #40115

Features

Additions

  • Added WebContentsView and BaseWindow, replacing the now-deprecated BrowserView APIs. #40759
  • Added keyboardLock to ses.setPermissionRequestHandler(handler). #40369 (Also in 26, 27, 28)
  • Added an option in protocol.registerSchemesAsPrivileged to allow V8 code cache in custom schemes. #40544 (Also in 27, 28)
  • Added net module to utility process. #40890 (Also in 27, 28)
  • Added new Electron Fuse that opts the file:// protocol into more secure and restrictive behaviour that matches Chromium. #40372
  • Added new webUtils.getPathForFile method to replace File.path augmentation. #38776
  • Added support for configuring use_remote_checksums via .npmrc. #40253
  • Migrated app.{set|get}LoginItemSettings(settings) to use Apple's new recommended underlying framework on macOS. #37244
  • This PR adds several properties to the display object including detected, maximumCursorSize, and nativeOrigin. #40497 (Also in 28)

Removed/Deprecated

  • Removed extraneous dlls from Windows zip files. #41129 (Also in 28)

Fixes

  • Added support for ThumbnailCapturerMac and ScreenCaptureKitStreamPickerSonoma chromium feature flags to bypass deprecated API warning on macOS 14.4. #41329
  • Fixed Electron 29.0.0-beta.3 regression that could pop up context menus in the wrong location. #41296
  • Fixed an issue where import.meta.url did not work in the renderer process with contextIsolation enabled. #41265
  • Fixed an issue where original-fs methods were not properly corrected for patched imports. #41238
  • Fixed an issue where draggable regions didn't work across platforms. #41112
  • Fixed an issue where some dependencies using CommonJS would cause ESM apps to fail to open. #41371
  • Fixed crash in MessagePort::close. #41237
  • Fixed the GrantFileProtocolExtraPrivileges not correctly preventing fetch() calls to file:// URLs. #40864
  • Fixed various bugs which could prevent forwarding requests intercepted with protocol.handle(). #41359

Also in earlier versions...

  • Apply module search paths restriction on worker and child process. #41138 (Also in 27, 28)
  • Backported fix for AVX related crashes on certain linux machines. #40536 (Also in 26, 27, 28)
  • CSS style -webkit-app-region: drag; has no effect in full screen mode. #41332 (Also in 27, 28)
  • Fixed "will-navigate" not being emitted when pressing links in chrome: pages. #40390 (Also in 27, 28)
  • Fixed session.fromPartition() key lookup bug. #41084 (Also in 28)
  • Fixed a crash resultant from trying to listen to power-related events before the ready event was emitted on Linux. #40925 (Also in 26, 27, 28)
  • Fixed a crash that started occurring sporadically with some types of macOS window close. #41299 (Also in 28)
  • Fixed a partition alloc ref count check for higher MacOS versions. #40766 (Also in 28)
  • Fixed a potential async_hooks crash when listening for the restore event on Windows after minimizing a maximized BrowserWindow. #41146 (Also in 27, 28)
  • Fixed a potential crash when calling dialog.showMessageBoxSync. #41043 (Also in 27, 28)
  • Fixed a potential issue with async_hook corruption in some error contexts. #40574 (Also in 26, 27, 28)
  • Fixed a unexpectedly thrown error in some unsupported chrome extensions. #40500 (Also in 26, 27, 28)
  • Fixed an error changing file format in dialog.showOpenDialog on macOS. #40308 (Also in 27, 28)
  • Fixed an issue where Request objects did not correctly copy headers into fetches. #41019 (Also in 28)
  • Fixed an issue where WebViews could sometimes crash on unload. #40400 (Also in 26, 27, 28)
  • Fixed an issue where Windows Toast notifications weren't properly dismissed from the Action Center on notification.close() if they'd previously been dismissed. #40197 (Also in 26, 27, 28)
  • Fixed an issue where MessagePorts were not being correctly garbage collected when not referenced. #40189 (Also in 28)
  • Fixed an issue where inAppPurchase.getProducts and inAppPurchase.purchasedProduct did not resolve as expected. #40957 (Also in 27, 28)
  • Fixed an issue where navigator.keyboard.lock() did not work per latest expected behavior. #40365 (Also in 26, 27, 28)
  • Fixed an issue where select-usb-device did not respect the filter option in navigator.usb.requestDevice(). #41197 (Also in 27, 28)
  • Fixed an issue where webContents.printToPDF could fail when certain combinations of margins and pageSize values are passed. #41266 (Also in 28)
  • Fixed an issue where crashes in node::Environment destruction potentially wouldn't be propagated to the NodeService exit handler. #41301 (Also in 27, 28)
  • Fixed an issue where devtools could not be re-opened. #40666 (Also in 28)
  • Fixed an issue where font requests were incorrectly being sent to dev tools multiple times per resource. #40681 (Also in 27, 28)
  • Fixed an issue where fully occluded windows would return an empty image from webContents.capturePage() on Windows and Linux. #39730 (Also in 25, 26, 27, 28)
  • Fixed an issue where non-modal windows with vibrancy could have incorrectly rounded corners on Sonoma. #41037 (Also in 27, 28)
  • Fixed an issue where the printBackground option in webContents.printToPDF did not work as expected. #41180 (Also in 28)
  • Fixed an issue where zoom level settings did not persist per-session for webviews. #40650 (Also in 27, 28)
  • Fixed an issue with webContents interaction with fullscreen and WCO on macOS. #40179 (Also in 25, 26, 27, 28)
  • Fixed app incorrectly activating panel windows on macOS Sonoma. #40307 (Also in 28)
  • Fixed child window opening in non-active macOS apps. #40546 (Also in 26, 27, 28)
  • Fixed default protocol handler behavior on Windows. #40908 (Also in 28)
  • Fixed file paths passed to shell.showItemInFolder not being escaped in Linux. #40527 (Also in 26, 27, 28)
  • Fixed forked child process not able to send IPC message under some cases on macOS. #41102 (Also in 26, 27, 28)
  • Fixed incorrect title bar shown on frameless transparent windows. #40862 (Also in 27, 28)
  • Fixed loading nested ESM dependencies in node_modules
    • Correctly support the throwIfNoEntry option in fs.statSync/fs.lstatSync in asar files. #40221 (Also in 28)
  • Fixed macOS bug that causes window maximize button to be disabled in full-screen mode. #41029 (Also in 27, 28)
  • Fixed on-screen-keyboard not hiding for webviews under some cases. #41149 (Also in 27, 28)
  • Fixed problem with bounds of maximized window when toggle BrowserWindow.setResizable function. #40503 (Also in 26, 27, 28)
  • Fixed resizing performance issue on macOS. #40577 (Also in 26, 27, 28)
  • Fixed some redundant permission dialogs while screen sharing on Wayland. #40098 (Also in 26, 27, 28)
  • Fixed the enabled/disabled behavior of the maximize/fullscreen button of macOS windows. #40897 (Also in 27, 28)
  • Prevent node mode to be used as script runner by other apps on macOS. #40579 (Also in 26, 27, 28)
  • Unset all Node envs in node process when parent is a foreign process. #40881 (Also in 26, 27, 28)
  • Use activateIgnoringOtherApps for focusing non-panels on macOS. #40570 (Also in 28)

Other Changes

  • Re-enabled partition alloc on Mac. #33981 (Also in 28)
  • Reverted new WebContentsView and BaseWindow APIs. #41060
  • Security: backported fix for chromium:1517354. #40969

Notices

End of Support for 26.x.y

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

Release Notes for v28.2.9

Fixes

  • Fixed shell.showItemInFolder not opening Windows Explorer if the passed path contains forward slashes. #41670 (Also in 29, 30)
  • Fixed an issue where the serial-port-added event improperly respected filters set by serial.requestPort(). #41637 (Also in 29, 30)

Other Changes

  • Security: backported fix for CVE-2024-2625. #41632