Electron: v29.0.0 Release

Release date:
February 19, 2024
Previous version:
v29.0.0-nightly.20231206 (released December 6, 2023)
Magnitude:
1,401 Diff Delta
Contributors:
9 total committers
Data confidence:
Commits:

90 Features Released with v29.0.0

Top Contributors in v29.0.0

trop[bot]
ckerr
miniak
zcbenz
VerteDinde
codebytere
MarshallOfSound
clavin
electron-roller[bot]

Directory Browser for v29.0.0

All files are compared to previous version, v29.0.0-nightly.20231206. Click here to browse diffs between other versions.

Loading File Browser...

Release Notes Published

Release Notes for v29.0.0

Stack Upgrades

Breaking Changes

  • Functions called over the contextBridge are now called with the expected receiver (this). #39978 <span style="font-size:small;">(Also in 27, 28)</span>
  • The gpu-process-crashed event on app has been deprecated. #40169 <span style="font-size:small;">(Also in 28)</span>
  • 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 <span style="font-size:small;">(Also in 26, 27, 28)</span>
  • Added an option in protocol.registerSchemesAsPrivileged to allow V8 code cache in custom schemes. #40544 <span style="font-size:small;">(Also in 27, 28)</span>
  • Added net module to utility process. #40890 <span style="font-size:small;">(Also in 27, 28)</span>
  • 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 <span style="font-size:small;">(Also in 28)</span> ### Removed/Deprecated
  • Removed extraneous dlls from Windows zip files. #41129 <span style="font-size:small;">(Also in 28)</span>

    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 <span style="font-size:small;">(Also in 27, 28)</span>

  • Backported fix for AVX related crashes on certain linux machines. #40536 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • CSS style -webkit-app-region: drag; has no effect in full screen mode. #41332 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed "will-navigate" not being emitted when pressing links in chrome: pages. #40390 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed session.fromPartition() key lookup bug. #41084 <span style="font-size:small;">(Also in 28)</span>

  • Fixed a crash resultant from trying to listen to power-related events before the ready event was emitted on Linux. #40925 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • Fixed a crash that started occurring sporadically with some types of macOS window close. #41299 <span style="font-size:small;">(Also in 28)</span>

  • Fixed a partition alloc ref count check for higher MacOS versions. #40766 <span style="font-size:small;">(Also in 28)</span>

  • Fixed a potential async_hooks crash when listening for the restore event on Windows after minimizing a maximized BrowserWindow. #41146 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed a potential crash when calling dialog.showMessageBoxSync. #41043 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed a potential issue with async_hook corruption in some error contexts. #40574 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • Fixed a unexpectedly thrown error in some unsupported chrome extensions. #40500 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • Fixed an error changing file format in dialog.showOpenDialog on macOS. #40308 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed an issue where Request objects did not correctly copy headers into fetches. #41019 <span style="font-size:small;">(Also in 28)</span>

  • Fixed an issue where WebViews could sometimes crash on unload. #40400 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • 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 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • Fixed an issue where MessagePorts were not being correctly garbage collected when not referenced. #40189 <span style="font-size:small;">(Also in 28)</span>

  • Fixed an issue where inAppPurchase.getProducts and inAppPurchase.purchasedProduct did not resolve as expected. #40957 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed an issue where navigator.keyboard.lock() did not work per latest expected behavior. #40365 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • Fixed an issue where select-usb-device did not respect the filter option in navigator.usb.requestDevice(). #41197 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed an issue where webContents.printToPDF could fail when certain combinations of margins and pageSize values are passed. #41266 <span style="font-size:small;">(Also in 28)</span>

  • Fixed an issue where crashes in node::Environment destruction potentially wouldn't be propagated to the NodeService exit handler. #41301 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed an issue where devtools could not be re-opened. #40666 <span style="font-size:small;">(Also in 28)</span>

  • Fixed an issue where font requests were incorrectly being sent to dev tools multiple times per resource. #40681 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed an issue where fully occluded windows would return an empty image from webContents.capturePage() on Windows and Linux. #39730 <span style="font-size:small;">(Also in 25, 26, 27, 28)</span>

  • Fixed an issue where non-modal windows with vibrancy could have incorrectly rounded corners on Sonoma. #41037 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed an issue where the printBackground option in webContents.printToPDF did not work as expected. #41180 <span style="font-size:small;">(Also in 28)</span>

  • Fixed an issue where zoom level settings did not persist per-session for webviews. #40650 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed an issue with webContents interaction with fullscreen and WCO on macOS. #40179 <span style="font-size:small;">(Also in 25, 26, 27, 28)</span>

  • Fixed app incorrectly activating panel windows on macOS Sonoma. #40307 <span style="font-size:small;">(Also in 28)</span>

  • Fixed child window opening in non-active macOS apps. #40546 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • Fixed default protocol handler behavior on Windows. #40908 <span style="font-size:small;">(Also in 28)</span>

  • Fixed file paths passed to shell.showItemInFolder not being escaped in Linux. #40527 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • Fixed forked child process not able to send IPC message under some cases on macOS. #41102 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • Fixed incorrect title bar shown on frameless transparent windows. #40862 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed loading nested ESM dependencies in node_modules

    • Correctly support the throwIfNoEntry option in fs.statSync/fs.lstatSync in asar files. #40221 <span style="font-size:small;">(Also in 28)</span>
  • Fixed macOS bug that causes window maximize button to be disabled in full-screen mode. #41029 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed on-screen-keyboard not hiding for webviews under some cases. #41149 <span style="font-size:small;">(Also in 27, 28)</span>

  • Fixed problem with bounds of maximized window when toggle BrowserWindow.setResizable function. #40503 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • Fixed resizing performance issue on macOS. #40577 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • Fixed some redundant permission dialogs while screen sharing on Wayland. #40098 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • Fixed the enabled/disabled behavior of the maximize/fullscreen button of macOS windows. #40897 <span style="font-size:small;">(Also in 27, 28)</span>

  • Prevent node mode to be used as script runner by other apps on macOS. #40579 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • Unset all Node envs in node process when parent is a foreign process. #40881 <span style="font-size:small;">(Also in 26, 27, 28)</span>

  • Use activateIgnoringOtherApps for focusing non-panels on macOS. #40570 <span style="font-size:small;">(Also in 28)</span>

    Other Changes

  • Re-enabled partition alloc on Mac. #33981 <span style="font-size:small;">(Also in 28)</span>

  • 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.