Release Notes for v29.0.0
Stack Upgrades
- Chromium
122.0.6261.39
- Node
20.9.0
- V8
12.2
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 onapp
has been deprecated. #40169 (Also in 28) - The deprecated
gpu-process-crashed
event onapp
has been removed. #40255 - The deprecated
renderer-process-crashed
event onapp
andcrashed
event onWebContents
and<webview>
have been removed. #40115
Features
Additions
- Added
WebContentsView
andBaseWindow
, replacing the now-deprecatedBrowserView
APIs. #40759 - Added
keyboardLock
toses.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 replaceFile.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 includingdetected
,maximumCursorSize
, andnativeOrigin
. #40497 (Also in 28)
Removed/Deprecated
Fixes
- Added support for
ThumbnailCapturerMac
andScreenCaptureKitStreamPickerSonoma
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 withcontextIsolation
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 crash in MessagePort::close. #41237
- Fixed the
GrantFileProtocolExtraPrivileges
not correctly preventingfetch()
calls tofile://
URLs. #40864
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 therestore
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
andinAppPurchase.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 thefilter
option innavigator.usb.requestDevice()
. #41197 (Also in 27, 28) - Fixed an issue where
webContents.printToPDF
could fail when certain combinations ofmargins
andpageSize
values are passed. #41266 (Also in 28) - Fixed an issue where crashes in
node::Environment
destruction potentially wouldn't be propagated to theService
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 inwebContents.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
- 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.