Electron 38.0.0
Electron 38.0.0 has been released! It includes upgrades to Chromium 140.0.7339.41, V8 14.0, and Node 22.16.0.
The Electron team is excited to announce the release of Electron 38.0.0! You can install it with npm via npm install electron@latest
or download it from our releases website. Continue reading for details about this release.
If you have any feedback, please share it with us on Bluesky or Mastodon, or join our community Discord! Bugs and feature requests can be reported in Electron's issue tracker.
Notable Changes
Stack Changes
- Chromium
140.0.7339.41
- Node
22.18.0
- V8
14.0
Electron 38 upgrades Chromium from 138.0.7204.35
to 140.0.7339.41
, Node from 22.16.0
to 22.18.0
, and V8 from 13.8
to 14.0
.
New Features and Improvements
- Added support for customizing system accent color and highlighting of active window border. #47285 (Also in 37)
- Added
fileBacked
andpurgeable
fields toprocess.getSystemMemoryInfo()
for macOS. #48146 (Also in 37) - Added
tray.{get|set}AutosaveName
to enable macOS tray icons to maintain position across launches. #48077 (Also in 37) - Added
webFrameMain.fromFrameToken(processId, frameToken)
to get aWebFrameMain
instance from its frame token. #47942 - Added support for
app.getRecentDocuments()
on Windows and macOS. #47924 (Also in 37) - Internally switched to using
DIR_ASSETS
instead ofDIR_MODULE
/DIR_EXE
to locate assets and resources, and added "assets" as a key that can be queried viaapp.getPath
. #47950 (Also in 37) - Fixed an issue where
dialog.showMessageDialog
showed a window incorrectly centered to monitor instead of parent window when passed. #48215 - Fixed an issue where users on macOS were unable to interact with a webpage loaded via
loadURL
. #47575
Breaking Changes
Removed: macOS 11 support
macOS 11 (Big Sur) is no longer supported by Chromium.
Older versions of Electron will continue to run on Big Sur, but macOS 12 (Monterey) or later will be required to run Electron v38.0.0 and higher.
Removed: ELECTRON_OZONE_PLATFORM_HINT
environment variable
The default value of the --ozone-plaftform
flag changed to auto
.
You should use the XDG_SESSION_TYPE=wayland
environment variable instead to use Wayland.
Removed: plugin-crashed
event
The plugin-crashed
event has been removed from webContents
.
Deprecated: webFrame.routingId
property
The routingId
property will be removed from webFrame
objects.
You should use webFrame.frameToken
instead.
Deprecated: webFrame.findFrameByRoutingId(routingId)
The webFrame.findFrameByRoutingId(routingId)
function will be removed.
You should use webFrame.findFrameByToken(frameToken)
instead.
Google Summer of Code Concludes
Our two Google Summer of Code contributors have just completed their summer projects!
- @nilayarya crafted a new Save/Restore Window State API in Electron core. The new APIs will provide a built-in, standardized way to handle window state persistence. See Nilay's original RFC at electron/rfcs#16.
- @hitarth-gg put a lot of hard work into modernizing the long-dormant Devtron extension using Chrome Manifest V3 APIs. This project provides tooling for developers to debug IPC communication, track event listeners, and visualize module dependencies in their Electron applications.
Stay tuned for a more detailed blog post outlining their projects and the outcomes.
End of Support for 35.x.y
Electron 35.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.
E38 (Sep'25) | E39 (Oct'25) | E40 (Jan'26) |
---|---|---|
38.x.y | 39.x.y | 40.x.y |
37.x.y | 38.x.y | 39.x.y |
36.x.y | 37.x.y | 38.x.y |
What's Next
In the short term, you can expect the team to continue to focus on keeping up with the development of the major components that make up Electron, including Chromium, Node, and V8.
You can find Electron's public timeline here.
More information about future changes can be found on the Planned Breaking Changes page.