Electron v28.0.0
Release Notes
Stack Upgrades
Chromium
120.0.6099.56Node
18.18.2V8
12.0
Breaking Changes
The
BrowserWindow.getTrafficLightPosition()andBrowserWindow.setTrafficLightPosition()methods have been removed. #39479The
app.runningUnderRosettaTranslation()method has been removed. #39956The
ipcRenderer.sendTo()method has been removed. #39087The
scroll-touch-{begin,end,edge}events have been removed. #39814Setting
backgroundThrottlingto false will disable frames throttling in theBrowserWindowfor allWebContentsdisplayed by it. #38924
Features
Additions
Enabled ESM support. #37535
For more details, see the ESM documentation.
The
UtilityProcessAPI now supports ESM entrypoints. #40047Added several properties to the
displayobject includingdetected,maximumCursorSize, andnativeOrigin. #40554Added support for
ELECTRON_OZONE_PLATFORM_HINTenvironment variable on Linux. #39792
In addition to enabling ESM support in Electron itself, Electron Forge also supports using ESM to package, build and develop Electron applications. You can find this support in Forge v7.0.0 or higher: https://github.com/electron/forge/releases/tag/v7.0.0
Added API to help apps know when to avoid semitransparent backgrounds. #39631 (Also in 26, 27)
Added
getWebRTCUDPPortRangeandsetWebRTCUDPPortRangeAPIs to specify UDP port range for WebRTC. #39046Added
keyboardLocktoses.setPermissionRequestHandler(handler). #40460 (Also in 26, 27)Added
mouse-enterandmouse-leaveTray events for Windows. #40072Added a
generateTaggedPDFoption towebContents.printToPDF()to allow generating tagged (accessible) PDFs. #39563Added a
tabbingIdentifierproperty toBrowserWindow. #39980 (Also in 26, 27)Added middle click mouse event to tray icon. #39926
Added several properties to the
displayobject includingdetected,maximumCursorSize, andnativeOrigin. #40554Added support for
ELECTRON_OZONE_PLATFORM_HINTenvironment variable on Linux. #39792Added support for
chrome.scriptingextension APIs. #39395 (Also in 25, 26, 27)Added support for several more extensions manifest keys including
host_permissions,author, andshort_name. #39599 (Also in 26, 27)Added the ability to send HTTP headers with
webContents.downloadURL(). #39455 (Also in 25, 26, 27)Changed
systemPreferences.getColor(name)to return an RGBA hex value (#RRGGBBAA) instead of a plain RGB (#RRGGBB) value. #38960Honor XDG dark theme preferences on Linux. #38977 (Also in 25, 26, 27)
Improved compatibility with CommonJS modules in sandboxed preload scripts by passing dummy
module.exports. #39484
Improvements
Improved
fork()andexecve()performance forchild_processAPI on Linux. #39253Fixed resizing performance issue on macOS. #40586 (Also in 26, 27)
Fixed opaque window performance regression on DWM. #39895 (Also in 27)
Re-enabled partition alloc on macOS. #40230
Removed/Deprecated
The
app.runningUnderRosettaTranslationproperty has been deprecated. #39897 (Also in 25, 26, 27)The
gpu-process-crashedevent onapphas been deprecated. #40195The
renderer-process-crashedevent onappandcrashedevent onWebContentsand<webview>have been deprecated. #40089
Fixes
Fixed an issue that prevented
MessagePortsfrom being garbage collected when not referenced. #40201Fixed app incorrectly activating panel windows on macOS Sonoma. #40465
Fixed file paths passed to
shell.showItemInFoldernot being escaped in Linux. #40562Fixed loading nested ESM dependencies in
node_modules. Support thethrowIfNoEntryoption infs.statSync/fs.lstatSyncin asar files. #40224Fixed same-party cookie functionality for first party sets. #40526
Use
activateIgnoringOtherAppsfor focusing non-panels on macOS. #40621
Also in earlier versions...
Fixed Windows Mica / Acrylic background material effects on frameless windows. #39708 (Also in 27)
Fixed
BrowserView.setBounds()calls not painting view in new bounds in some cases. #39994 (Also in 25, 26, 27)Fixed
app.runningUnderARM64Translation()always returning true on ARM64. #39920 (Also in 25, 26, 27)Fixed
will-navigatenot being emitted when pressing links inchrome:pages. #40525 (Also in 27)Fixed a
webContents.capturePage()issue that caused an empty image to be returned for fully-occluded windows on Linux and Windows. #40185 (Also in 25, 26, 27)Fixed a potential issue with
async_hookcorruption in some error contexts. #40594 (Also in 26, 27)Fixed an error changing file format in
dialog.showOpenDialogon macOS. #40346 (Also in 27)Fixed an error where listening to certain
chrome.tabsevents would throw incorrectly. #39729 (Also in 25, 26, 27)Fixed an issue where BrowserWindows could crash on macOS with
frame: falseandroundedCorners: falsewhen going fullscreen. #39747 (Also in 25, 26, 27)Fixed an issue where WebViews could sometimes crash on unload. #40445 (Also in 26, 27)
Fixed an issue where Windows Toast notifications weren't properly dismissed from the Action Center on
notification.close()if they'd previously been dismissed. #40243 (Also in 26, 27)Fixed an issue where
BrowserViewsthat had their bounds set prior to being added to aBrowserWindowcould have unexpected incorrect offsets. #39605 (Also in 25, 26, 27)Fixed an issue where
chrome://gpufailed to load. #39556 (Also in 25, 26, 27)Fixed an issue where
navigator.keyboard.lock()did not work per latest expected behavior. #40389 (Also in 26, 27)Fixed an issue where
webContents.printcould fail whenoptionsis a frozen object. #39985 (Also in 25, 26, 27)Fixed an issue where accelerators representing DOM keys were not correctly converted in
webContents.sendInputEvent(). #39776 (Also in 25, 26, 27)Fixed an issue where calling
loadURLduring somewebContentsurl loading events could crash. #40143 (Also in 24, 25, 26, 27)Fixed an issue where calling
show()on a childBrowserWindowwould show all other children attached to the same parent on macOS. #40062 (Also in 24, 25, 26, 27)Fixed an issue where certain properties of
chrome.tabsTab objects were not properly considered privileged. #39595 (Also in 25, 26, 27)Fixed an issue where child windows opened when the parent window is already fullscreen did not respect the child windows' fullscreenability and resizability settings. #39620 (Also in 24, 25, 26, 27)
Fixed an issue where closing and opening a minimized DevTools window would not work as expected. #40091 (Also in 25, 26, 27)
Fixed an issue where pressing the escape key did not exit PDF presentation mode. #39616 (Also in 25, 26, 27)
Fixed an issue where the Node.js
assertmodule did not work in the renderer process. #39540 (Also in 24, 25, 26, 27)Fixed an issue where using
webcrypto.subtle.importKey()could error and fail ifSharedArrayBuffersare not defined. #40070 (Also in 27)Fixed an issue where vibrant windows incorrectly have square corners when they're modals on macOS. #39979 (Also in 25, 26, 27)
Fixed an issue with applying vibrancy on non-transparent windows on macOS. #40109 (Also in 27)
Fixed an issue with webContents interaction with fullscreen and WCO on macOS. #40219 (Also in 25, 26, 27)
Fixed an unexpectedly thrown error in some unsupported chrome extensions. #40514 (Also in 26, 27)
Fixed crash on shutdown in TLS sockets with Node.js HTTP/2 connections. #39928 (Also in 25, 26, 27)
Fixed decorations for tiled windows on Wayland. #39523 (Also in 22, 24, 25, 26, 27)
Fixed deprecated
gpu-process-crashed/renderer-process-crashedevents being emitted twice and with incorrect arguments. #40090 (Also in 22, 24, 25, 26, 27)Fixed devtools to allow restoring saved dock state on Windows. #39734 (Also in 25, 26, 27)
Fixed how screen readers are detected on Windows to reduce false positives. #39988 (Also in 27)
Fixed issue where titlebar would be transparent for transparent windows that are fullscreen. #39759 (Also in 25, 26, 27)
Fixed launch failure with
child_process.spawn()on windows affected by launching store applications. #40101 (Also in 25, 26, 27)Fixed missing type for
Electron.TitleBarOverlay. #39799 (Also in 26, 27)Fixed problem with bounds of maximized window when toggling
BrowserWindow.setResizable(). #40582 (Also in 26, 27)Fixed problem with promise resolved to early when browser initiated in-page navigation. #39597 (Also in 25, 26, 27)
Fixed redundant permission dialogs while screen sharing on Wayland. #40192 (Also in 26, 27)
Fixed regeneration of thumbnail toolbar buttons after restarting Explorer on Windows. #39551 (Also in 24, 25, 26)
Fixed rendering on Linux due to broken shader cache compilation with driver updates. #40450 (Also in 27)
Fixed window size constraints not working on macOS. #39975 (Also in 27)
Functions called over the
contextBridgeare now called with the expected receiver (this). #40263 (Also in 27)Support Region Capture API with tab MediaStream. #39074 (Also in 25, 26, 27)
Fixed build failure when PDF viewer is disabled. #39990 (Also in 25, 26, 27)
Fixed build failure when
enable_electron_extensions=false. #40032 (Also in 25, 26, 27)
Notices
End of Support for 25.x.y
Electron 25.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.