














Electron 44 has been released! It includes upgrades to Chromium 152.0.7977.54, V8 15.2, and Node v24.18.1.
The Electron team is excited to announce the release of Electron 44! 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.
clipboard module now aligns with the W3C Clipboard APIElectron's clipboard module has been rearchitected to align with the W3C Clipboard API. Its read and write methods are now asynchronous, and the new ClipboardItem class provides a MIME-based interface for working with clipboard data. On Linux, the selection clipboard is now available through the clipboard.selection namespace. See RFC 0019 and the planned breaking changes document for migration details. #52508
As part of this change, the clipboard module is no longer exposed directly to renderer processes. Renderers should use navigator.clipboard, or carefully expose only the required functionality from a preload script through contextBridge.
Electron 44 adds API for saving and restoring window state. Set windowStatePersistence: true and provide a unique name in the BaseWindow or BrowserWindow constructor to preserve the window's position, size, and display mode across launches. Applications can selectively persist bounds or display modes, and clear saved state with BaseWindow.clearPersistedState(). See the Window State Persistence tutorial for details. #52270
Electron 44 restores app.setBadgeCount() and win.setProgressBar() on Linux without requiring libunity. These APIs now work with docks and taskbars that implement the LauncherEntry D-Bus API. This release also adds win.setOpacity() support, system-themed Window Controls Overlay icons, and other improvements for frameless windows on Linux. #52895 #51455 #52531
Chromium 152.0.7977.54
Node v24.18.1
V8 15.2
Electron 44 upgrades Chromium from 150.0.7871.46 to 152.0.7977.54, Node.js from v24.17.0 to v24.18.1, and V8 from 15.0 to 15.2.
available to process.getSystemMemoryInfo() on Linux, exposing MemAvailable from /proc/meminfo. #52380 (Also in 42, 43)net.WebSocket, a WHATWG-compatible WebSocket client for the main process that routes through Chromium's network stack. #51593 (Also in 42, 43)webContents.setZoomMode(mode), webContents.getZoomMode(), and webContents.zoomMode for per-WebContents zoom control. #49962webFrameMain.printToPDF() to allow printing individual frames to PDF from the main process. #52625 (Also in 42, 43)windowStatePersistence to BaseWindow and BrowserWindow for saving and restoring window bounds and display modes across launches. #52270badge property to MenuItem on macOS 14 and later for showing a count or custom text badge next to a menu item's label. #53046win.setOpacity(opacity) on Linux. #51455webContents.caretBrowsingEnabled for toggling caret browsing in a WebContents. #53035app.setBadgeCount() and win.setProgressBar() for Linux. These APIs now support any dock or taskbar that implements the LauncherEntry D-Bus API, and they no longer require libunity. #52895utilityProcess.fork(), child_process.fork(), ELECTRON_RUN_AS_NODE child processes, and Node.js-enabled renderers. #53134 (Also in 42, 43)BrowserWindow now starts in a renderer process launched ahead of time when the default session already exists. Apps that open many windows can keep a spare renderer warm with --enable-features=SpareRendererForSitePerProcess. #53144macOS 12 (Monterey) is no longer supported by Chromium. Older versions of Electron will continue to run on Monterey, but macOS 13 (Ventura) or later is required to run Electron 44 and higher. #51967
webContents may be null in select-client-certificateThe app 'select-client-certificate' event is now also emitted for requests made through the net module and for utility processes created with respondToAuthRequestsFromMainProcess: true. For these requests, the webContents argument is null. Applications handling the event must check the argument before using it. #52397
This also means that net.request() and net.fetch() can now select a client certificate instead of failing with ERR_SSL_CLIENT_AUTH_CERT_NEEDED when a server requests one.
ANGLE is now statically linked into the Electron binary on all platforms, matching upstream Chromium. The libEGL.(so|dylib|dll) and libGLESv2.(so|dylib|dll) libraries are no longer shipped. Applications that replaced or managed their own ANGLE versions by swapping these libraries can no longer do so. #52288
net.request rejects frame destinations without navigate modenet.request now rejects requests where Sec-Fetch-Dest is document, frame, iframe, or fencedframe unless Sec-Fetch-Mode is also set to navigate. This matches Chromium's enforcement that frame-type request destinations must be navigations. #52216
Electron no longer provides Unity-specific integration on Linux, and app.isUnityRunning() has been removed. Electron continues to support modern Freedesktop standards. #51649
Electron no longer publishes prebuilt binaries for Windows x86 (win32-ia32) or Linux ARM (linux-armv7l). Electron 44 and higher are published only for 64-bit x64 and arm64 platforms. Older Electron versions will continue to support these platforms until the Electron 43 series reaches end-of-life in January 2027. #52326
clipboard module access from renderer processesThe clipboard module is no longer exposed directly to renderer processes. Renderers should use the web platform's navigator.clipboard API. For more advanced use cases, expose only the required helpers from a preload script through contextBridge, taking care not to expose clipboard access to untrusted content. #52508
clipboard module rearchitected to align with the W3C Clipboard APIThe clipboard module's read(), write(), readText(), writeText(), and has() methods are now asynchronous. Clipboard data is represented by the new ClipboardItem class, and narrowly scoped helpers such as readImage(), writeHTML(), and availableFormats() have been removed. The Linux selection clipboard is now available through clipboard.selection. See the migration guide for the full API mapping and examples. #52508
The openAsHidden option has been removed from app.setLoginItemSettings(), and the openAsHidden, wasOpenedAsHidden, and restoreState fields have been removed from the return value of app.getLoginItemSettings(). These attributes only worked on macOS 12 and earlier, which Electron 44 no longer supports. #52667
Electron 41.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. See https://releases.electronjs.org/schedule to see the timeline for supported versions of Electron.
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.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。