Electron 45 Updates to Chromium 156 and Node 24.22.0, Removes Node Modules From Sandboxed Preload Scripts and Drops 32-Bit Builds
Electron 45.0.0, published October 21, upgrades to Chromium 156.0.8078.48 and Node v24.22.0, lists breaking changes for preload scripts and screen capture, and ends support for Electron 42.
Overview
Electron 45.0.0, the stable release of the cross-platform desktop framework, was published on October 21, according to the v45.0.0 release page. Its stack upgrades are Chromium 156.0.8078.48, Node v24.22.0 and V8 15.6. The release notes also carry a long list of breaking changes, concentrated on sandboxed preload scripts, screen capture permissions and files inside ASAR archives.
What Changed
Breaking changes
The release notes list the following among the breaking changes:
- Sandboxed preload scripts. The notes say Electron “Removed the
events,timersandurlmodules and theBuffer,setImmediateandclearImmediateglobals from sandboxed preload scripts; use a polyfill.” They add that Electron no longer evaluates a JavaScript bundle of its own in sandboxed renderers unlesswebviewTagis enabled. - Screen capture permission. Screen, window and tab capture requests are now reported to
setPermissionRequestHandlerasdisplay-captureinstead ofmedia. According to the notes, a handler that allows onlymediamust also allowdisplay-captureto keep screen sharing working. - Workers. With
nodeIntegrationInWorker: true, workers now only get Node.js integration when the frame that creates them has it: the main frame, or any frame whennodeIntegrationInSubFramesis enabled. - Sandboxed child windows. A
window.open()child whosesandboxstate differs from its opener’s renderer process is now created in its own process with no opener relationship. The notes say to setsandbox: falseinsetWindowOpenHandlerto keep sharing an unsandboxed opener’s process. - ASAR archives.
fs.open,fs.openSyncandfs.promises.openon a file inside an ASAR archive now return a descriptor that identifies the entry to Node’sfsmodule, which reads directly out of the archive with no temporary file. The release notes say code that reads the raw descriptor, such as a native addon, is affected. - Heap profiling. The experimental
contentTracing.enableHeapProfiling()API has been removed. The notes say to pass anativeHeapProfilingoption tocontentTracing.startRecording()instead, and that heap-enabled recordings use the Perfetto protobuf format. - Platforms. 32-bit builds for Windows ia32 and Linux armv7l were removed, so the notes say Electron is now published only for 64-bit (x64 and arm64) platforms. The
openAsHiddenoption was also removed fromapp.setLoginItemSettings(). - safeStorage. The synchronous
safeStoragemethods are deprecated and, per the notes, will be removed in Electron 46. The notes say data encrypted withsafeStorage.encryptString()can be decrypted withsafeStorage.decryptStringAsync().
New features
The same release page lists additions including:
- A Save/Restore Window State API for cross-platform use.
- A Windows Error Reporting helper (
electron_wer.dll) socrashReportercaptures__fastfailand other crashes that bypass the in-process handler on Windows. - A
badgeproperty onMenuItemon macOS 14 and later. - An
app.configureWebAuthn()API to enable iCloud Keychain passkey support on macOS. - Support for the Prompt API via the new
localAIHandlermodule in UtilityProcess. - An experimental
protocol.registerSource()to serve a custom scheme from directories on disk without a JavaScript handler. initiatorOriginon webRequest and protocol handler requests, andDownloadItem.getInitiatorOrigin().
Support Window and What Follows
The v42.11.18 release page, published the same day, carries a warning that “Electron 42.x.y has reached end-of-support as per the project’s support policy” and encourages developers and applications to upgrade to a newer version of Electron. Its only listed change is backported fixes from upstream ANGLE, Chromium, PDFium, Skia and V8.
Electron has also started its next major line. The v46.0.0-alpha.1 release page says it is an alpha release published to npm under the alpha tag. Its breaking changes include removal of the deprecated synchronous safeStorage.isEncryptionAvailable(), safeStorage.encryptString() and safeStorage.decryptString(), with the asynchronous equivalents named as replacements, which matches the removal the 45.0.0 notes announced.
What We Don’t Know
The release pages do not say how many applications rely on the removed preload-script modules or on raw ASAR file descriptors. They also do not give a date for a stable Electron 46. The 45.0.0 notes link to a separate breaking-changes document for further detail, which this article does not reproduce in full.