npm / electron
electron
What changed in electron 37 to 44, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.
39 breaking70 security1 deprecations92 new APIs and options43 performance24 behavior and defaults485 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initelectron 44259 changes
Breaking changes 18
Calling a native API method with a this value of a different native type now throws a TypeError instead of crashing the main process.
Now throws on macOS when launched without a process type and the runAsNode fuse is disabled.
Rejects protocol names that do not conform to RFC 3986 URI scheme grammar.
Calling execCommand('paste') now requires user activation in the frame that calls it.
With chromeMediaSource set to desktop, WebContents source ids are no longer accepted; use tab with getMediaSourceId or setDisplayMediaRequestHandler to capture a WebContents.
Now applies only to workers created by frames that themselves have Node integration; enable nodeIntegrationInSubFrames to keep Node in workers created by subframes.
Windows ia32 and Linux armv7l builds are removed; Electron is published only for x64 and arm64 platforms.
The openAsHidden, wasOpenedAsHidden, and restoreState fields have been removed from the return value.
The openAsHidden option has been removed because it only worked on macOS 12 and below.
The module aligns with the W3C Clipboard API and is no longer exposed to renderer processes.
Support for
showHiddenFileshas been removed from the dialog API on Linux.Electron v44.0.0 and higher requires macOS 13 (Ventura) or later; macOS 12 is no longer supported.
Images with color profiles now have pixel values normalized to SRGB, producing similar values for visually identical images after color-space conversion.
Rejects requests with document, frame, iframe, or fencedframe destinations unless Sec-Fetch-Mode is navigate.
Cross-origin no-cors fetches now receive opaque responses, matching protocol.handle.
Cross-origin no-cors fetches now receive opaque responses, matching protocol.handle.
Windows opened from links inside a sandboxed iframe now inherit its sandbox restrictions unless allow-popups-to-escape-sandbox is set.
Support for the Unity desktop environment on Linux has been removed.
Security 8
Fixed cases where setCertificateVerifyProc was not applied to a request issued concurrently with the first request to a host.
Permission requests from some iframes no longer report the parent frame.
Fixed a potential use-after-free when a select-usb-device handler destroys the requesting webContents.
Fixed a Windows memory leak and potential use-after-free when this method was called.
Fixed the disabled browser-side check that blocks drag and drop between cross-site frames of the same page.
Internal webview, window.close, and executeJavaScript reply IPCs are validated against the sending frame.
Fixed returning tab url and title to extensions without the tabs permission or host access, aligning with tabs.get.
Fixes a use-after-free crash when an error is emitted during a stream read.
New APIs and options 21
Added app shims on macOS to show windows under another app's Dock icon.
Linux notifications now support action buttons.
Added an experimental API to serve a custom scheme from directories on disk without a JavaScript handler.
The app child-process-gone event now reports launch failures with systemErrorCode.
Added a method to retrieve a download item's initiator origin.
Added to webRequest and protocol handler requests so developers can access the initiator origin.
The session event now receives a trailing frame argument.
The session event now receives a trailing frame argument.
This environment variable visualizes and logs draggable regions in unpackaged apps to help debug custom title bars.
Adds touchID.promptReason to customize macOS Touch ID WebAuthn prompt text and fixes a prompt crash caused by a missing string resource.
Added a macOS 14+ badge property for showing a count or custom text next to a menu item's label.
Supports the select-client-certificate event so applications can select a certificate when a server requests client authentication.
Supports the select-client-certificate event so applications can select a certificate when a server requests client authentication.
Adds a WHATWG-compatible WebSocket client for the main process that routes through Chromium's network stack.
Adds static remove(), removeAll(), and removeGroup() methods for macOS notifications.
Adds available memory information on Linux, exposing proc/meminfo MemAvailable.
Adds a cross-platform API for saving and restoring window state.
Apps that open many windows can keep a spare renderer warm with this Chromium feature flag.
Adds per-WebContents zoom control through setZoomMode(), getZoomMode(), and zoomMode.
Added a property for toggling caret browsing in a WebContents.
Adds printing of individual frames to PDF from the main process.
Performance 22
APIs that return rectangles, sizes, points, and display objects are faster.
session.getUserAgent() is faster.
Improved the performance of fs operations on files inside asar archives.
Fixed seconds of main-process time spent buffering large streamed request bodies.
Fixed seconds of main-process time spent buffering large streamed request bodies.
Improved the performance of require on files inside asar archives.
Improved throughput of responses returned straight from
net.fetchbyprotocol.handlehandlers.Page resources, fetch() calls, and file:// loads no longer wait for the main process to be idle when no webRequest listeners or protocol interceptors are registered.
Requests no longer wait on the main process when webRequest listeners only observe specified events or are filtered to other resource types.
Linux application startup is faster by skipping GDK's OpenGL probe and loading FontConfig off the main thread during toolkit initialization.
Startup is faster for child processes forked with this API.
Child processes launched with this environment variable start faster.
Linux arm64, Windows arm64, and macOS x64 now start the main process from the embedded Node.js startup snapshot, improving startup time.
When the default session already exists, the first sandboxed BrowserWindow starts in a renderer launched ahead of time, shortening time to the page's first script.
Node.js timers and immediates cause fewer idle main-process CPU wakeups.
Native event emission, IPC dispatch, and option-dictionary parsing are faster.
Linux arm64, Windows arm64, and macOS x64 now start the main process from the embedded snapshot, improving startup time.
Cold-start time at
DidClearWindowObjectis reduced by about 35% by deserializing a build-time V8 code cache for Electron framework bundles.Preload scripts and process info are pushed ahead of navigation instead of fetched via blocking IPC, and preload compilation results are cached on disk.
Startup is faster for utilityProcess.fork(), child_process.fork(), ELECTRON_RUN_AS_NODE child processes, and Node.js-enabled renderers.
Startup is faster for utility processes forked with this API.
Header conversions are faster.
Behavior and default changes 7
On macOS, update downloads stream to disk, resume after interruption on the next check, and apply a binary delta when the feed offers one for the running version.
The default trash implementation on KDE Plasma 6 is now kioclient.
<webview>andwindow.opennow inherit this preference from the embedder, consistent with other Node and sandbox preferences.Frameless Linux windows now have rounded corners by default; setting roundedCorners to false disables them on all platforms.
Adds support for setting window opacity on Linux.
Frameless Linux windows now use system-themed titlebar icons for Window Controls Overlay.
On Linux, the overlay now supports system-configured button layouts.
Fixes and other changes 183
Link-opened windows now use the opener's session and webPreferences.
Updated the Chromium runtime.
Fixed the mouse cursor disappearing over native dialogs in certain Windows scenarios.
Fixed
net.fetchfailing permanently withnet::ERR_FAILEDafter the Network Service process restarts.Updated the Node.js runtime.
Fixed messages posted immediately before a utility process exits being dropped.
Fixed
session.fetchfailing permanently withnet::ERR_FAILEDafter the Network Service process restarts.Fixed
win.isFullScreen()returning stale state in fullscreen events on Windows.Fixed clicks posted to a background app being dropped on macOS.
Interrupted macOS updates no longer leave a broken app behind.
Fixed asar archives in non-ASCII folders failing to load on Linux.
Fixed a crash when starting Electron on Linux without an available display server.
Fixed a crash when creating a window with a menu bar on Linux if GTK failed to load.
Refactored mouse forwarding on Windows to fix issues related to setIgnoreMouseEvents(true, { forward: true }).
Fixed renderer crashes during garbage collection inside ShadowRealms.
On Linux, a WebContentsView removed with removeChildView() and re-added with addChildView() no longer stays hidden behind sibling views.
Fixes an uncatchable TypeError when response headers contain non-ASCII characters and preserves multiple Set-Cookie headers.
Fixed a crash when calling this API in in-memory sessions.
Fixed a macOS launch crash when the system refused to register the app for sleep/wake notifications.
Updated time zone data to tzdata 2026d, including British Columbia's move to permanent UTC-7.
Fixed this API hanging when the host page also has an iframe.
On Windows, the event now reports the same colour as systemPreferences.getAccentColor().
On Windows, typing works again after closing an alert() or confirm().
On Windows, recent documents with non-ASCII paths are no longer omitted.
On Linux, read(), readText(), and has() no longer take seconds to resolve while the app is idle.
Calling setUploadToServer() after crashReporter.start() now takes effect.
On macOS, calling getSources() no longer leaves non-resizable windows resizable.
DevTools zoom in and out now uses the same zoom steps as Chromium.
Fixed a crash when creating a framed window on Wayland if GTK could not initialize.
Fixed a grey border around frameless windows on Linux window managers without compositing.
On Windows, fs.rmSync no longer fails to remove read-only files.
GDK_BACKEND no longer leaks into processes spawned by Electron apps on Linux.
On Windows, the GPU process no longer crash-loops when the sandbox cannot read the install folder; the folder is now reported instead.
Fixed a GPU process crash on startup when another app instance uses the same session data directory.
Calling image.toPNG() from a sandboxed preload script no longer crashes the renderer.
The default action label is now localized.
Fixed a possible crash on Windows on ARM when powerMonitor is torn down.
Fixed a renderer crash when a ResizeObserver loop-limit error handler modified layout.
Hidden windows no longer continue rendering at full frame rate after throttling is disabled and then re-enabled.
setContentProtection(true) now takes effect in Windows remote sessions.
On X11, the setting takes effect without delay and is no longer undone by the next resize; Wayland support was added.
On Linux, paths containing #, ? or % now work when the file manager is reached over D-Bus.
stdout and stderr output written immediately before a child exits is no longer dropped.
Visual zoom limits no longer reset on navigation and now apply to webviews; a minimum below 1 no longer shrinks pages.
Fixed a possible process-exit crash involving main-process vm.Script or vm contexts garbage-collected shortly before quitting.
WebAssembly modules loaded from the code cache no longer crash or throw RuntimeError: unreachable after updates between certain patch releases.
Fixed a crash when a WebAuthn request used a security key that required its PIN.
Sending a DevTools protocol command with a non-string value for an optional string parameter no longer crashes.
A child WebContentsView no longer loses focus when its window is reactivated.
On Wayland, disabled windows and modal child windows now block input.
The option now takes effect, and file dialogs on Linux no longer log a spurious portal warning.
Zoom in and out no longer gets stuck after zooming past the 25%-500% range.
Zoom no longer resets on file: and other host-less pages after a location.hash change.
Fixed a spurious console error when DevTools attaches to a sandboxed frame before its first navigation.
Fixed an error thrown in pages while the DevTools Performance panel's live metrics were active.
Fixed GPU shaders compiled by Skia not being cached between launches.
Fixed alignment of the text label and popup menu in the macOS save dialog.
Fixed ready-to-show never firing for some hidden windows on Windows and Linux.
Fixed a crash when calling setIgnoreMenuShortcuts on DevTools.
Fixed the tray context menu not working for snap-confined apps because AppArmor blocked the /org/chromium/DbusMenu path.
Fixed an error when removing a loaded
<webview>from the DOM.Fixed several object lifetime issues in Debugger, Menu, Tray, Notification, globalShortcut, utilityProcess, ServiceWorkerMain, WebFrameMain, webFrame, sharedTexture, systemPreferences, netLog, MessagePortMain, net.request and shell.openPath().
Fixed default protocol client APIs falsely returning true on Windows.
Fixed a crash when a webContents navigated to the Chrome Web Store and the page invoked this unsupported API.
Fixed a main-process crash when called again after a load failed because the renderer exited before the page committed.
Fixed the API not being populated for WebContentsViews in a BaseWindow.
Fixed a renderer crash when an iframe was removed right after loading with this enabled and sandbox disabled.
Fixed a renderer crash that could occur when printing from an iframe.
Fixed code caching for HTTPS scripts loaded by file:// and custom-scheme pages.
Fixed unresponsive events emitted right after Windows wakes from sleep, and responsive events emitted when a hung window was hidden rather than when it recovered.
Offscreen windows now return images rendered at the window's offscreen.deviceScaleFactor instead of resampled to the display's scale factor.
Fixed the CSS environment variables not being populated for WebContentsViews in a BaseWindow.
Fixed a renderer crash when no default locale could be determined.
Fixed the app becoming unresponsive when a page has a very large number of draggable elements.
Fixed
app.getGPUInfo('complete')stalling the GPU process for several seconds on some Windows systems.Fixed Ctrl+Y not yanking text killed with Ctrl+K in text fields on macOS.
Fixed the Security panel's View certificate button, Ctrl+wheel zooming, and keyboard shortcuts while the inspected page has focus.
Fixed a possible Windows crash when a file dialog is shown for a window being closed.
Permission requests and the file-system-access-restricted event are scoped to the requesting document; grants reset when the origin's last page closes, and write access works in in-memory sessions.
Permission requests now report the requesting frame.
Permission requests started by a frame that has gone away are attributed to that frame's origin rather than the navigating page.
Permission requests now report the requesting frame.
Fixed a Linux crash when the environment was written while another thread was reading it.
For hid and usb checks made from a subframe, the handler no longer receives the top-level origin and a null webContents.
Fixed crashes when the granted frame had been destroyed or another tab was granted by id.
Fixed a spurious node_init error being logged when creating a ShadowRealm with Node.js integration enabled.
Fixed Tray icons not appearing when running inside Flatpak or Snap sandboxes on Linux.
Listener registration and removal no longer throw "Object has been destroyed" for console-message listeners after WebContents destruction.
Without allowpopups, links opened into a new window by modifier-click are blocked; such windows otherwise navigate as the clicking document rather than as a browser-initiated load.
Window state is persisted when a window enters or leaves fullscreen, or is maximized or unmaximized, even without being moved or resized.
Fixed a renderer crash when IPC was sent to, or a page navigated, a same-process child whose contextIsolation differed from its opener's.
On Windows, an ASAR integrity violation no longer causes an intermittent access violation; the process exits with code 1 as intended.
Fixed an application crash after a large number of IPC messages from renderers.
Fixed a potential crash when using
menu.popupwith a frame from an offscreen rendered window.Pending reads on chunked upload streams in protocol handlers now settle when a request fails or is aborted.
Native addons deriving from
node::ObjectWrapno longer abort during garbage collection on Node.js 24.19.0 and later.Updated the bundled Node.js runtime to v24.20.0.
Fixed a renderer crash when an array with a throwing property getter is passed across the bridge.
Fixed exceptions from property getters on passed objects being swallowed instead of thrown back to the caller.
Fixed main process crashes when navigating to this URL.
Fixed main process crashes when navigating to this URL.
Fixed an intermittent startup crash on Linux caused by a race between Pango and the main thread initializing fontconfig.
Fixed main process crashes when an extension background page used this API.
Fixed main- and utility-process crashes caused by throwing accessors or Proxy traps in option objects.
Fixed saving an edited PDF when the viewer encounters a file picker restriction for third-party iframes.
Fixed main process crashes when calling this API for a disconnected device.
Fixed crashes caused when certain app event handlers call back into Electron synchronously.
Fixed custom-title windows showing an empty title after back/forward navigation.
Corrected O_DIRECTORY, O_NOFOLLOW, and O_DIRECT values on Linux arm64 and armv7l, fixing directory opens that failed with EINVAL.
Fixed region-qualified values such as de-DE failing to load locale resources on macOS.
Fixed main-process crashes when calling net.fetch() with a webRequest-permission extension loaded.
Fixed a crash when calling node:wasi functions in optimized code.
On macOS, a notification is now shown without its icon if the icon cannot be attached, instead of crashing.
Fixed crashes caused by object lifetime bugs in service-worker ipcRenderer.
Fixed crashes caused by object lifetime bugs in sharedTexture.
Made require('trace_events') behave the same on cross-compiled builds as on native ones.
Fixed tray icons not appearing on GNOME and disappearing entirely on Wayland.
Fixed crashes caused by object lifetime bugs in utilityProcess.fork().
Fixed a crash when calling postMessage after the utility process had exited.
Fixed a Windows crash when V8 posted a delayed worker task during shutdown.
Fixed a macOS crash when a Touch ID prompt was requested while no locale resources were loaded.
Fixed crashes when a webContents or parent window is destroyed while other APIs still reference it.
Fixed the method resolving with undefined when worldId was not an integer.
Fixed printing to honor printBackground, duplexMode, and printer default duplex settings.
Fixed pages loaded in a detached WebContentsView not seeing the correct window size.
Fixed the GPU process being terminated in Windows AppX/MSIX packaged apps when WebGPU fell back to SwiftShader.
Fixed main-process crashes when a listener redirected a CORS preflight request.
Fixed native message boxes being dismissed by other applications using an invalid button ID.
Fixes a browser-process crash and spurious preload ENOENT errors if an app's ASAR is replaced while the app is running.
Fixes GPU hardware usage not being fully disabled on Windows starting from Electron 38.
Fixed a potential deadlock on macOS.
Fixes the primary instance being killed or receiving truncated arguments when another instance passes a very long command line or large additionalData.
A second instance passing a very long command line or large additionalData no longer kills the primary instance or truncates its arguments.
Restored support on Linux for docks and taskbars implementing the LauncherEntry D-Bus API; libunity is no longer required.
Fixes a crash when a non-UTF8 service name is used.
Fixes downloading files inside ASAR archives, including saving a packed PDF from the built-in PDF viewer.
Error messages now name the entry that failed an integrity check.
Fixes the Toggle Developer Tools menu item not functioning correctly with BaseWindow.
Makes reload menu items work with BaseWindow.
Fixes a memory leak when creating BrowserWindows.
unmaximize() and restore() now take effect on Wayland when a window was maximized immediately after creation.
Fixes window size corruption on Windows when explicit coordinates are used on a secondary monitor with a different DPI.
Fixes document title updates during same-document back/forward navigation without using setTitle().
Fixed silent data truncation in Buffer APIs.
Fixes a potential crash when the trace file cannot be written to the requested path.
Fixes thumbnail generation and premature portal timeout on Linux with Wayland.
Device metrics overrides no longer persist indefinitely when a remote debugging client disconnects without clearing them.
Fixes the dialog opening at an unusable location on Linux when defaultPath is a bare filename without a directory.
Fixes the dialog opening at an unusable location on Linux when defaultPath is a bare filename without a directory.
Fixes parentPath being undefined for directory entries returned by filesystem read and glob operations inside ASAR archives.
Fixes custom V8 snapshots having no effect in the main process on macOS arm64, Linux x64, and Windows x64.
Fixed a crash with non-ASCII strings on Apple Silicon.
The
restrictOwnAudiooption is now honored insetDisplayMediaRequestHandler, preventing loopback audio from including local app playback.Fixes the fuse having no effect in the main process on macOS arm64, Linux x64, and Windows x64.
Closing a same-process child window or removing an iframe with this option enabled no longer causes illegal-access errors or possible renderer crashes.
Fixes installation failure without a recovery path when the OS blocks the native zip extractor from loading.
Preload stack traces now show the correct file path and line number.
Fixes process and other Node globals being undefined in ESM preload scripts when contextIsolation is disabled.
ProtocolResponse.url requests now use the session on which the protocol handler was registered when no session is specified.
The event is now emitted after renderer teardown notification completes, fixing crashes when reloading or navigating synchronously from the event.
Fixes crashes caused by some values passed into the API.
Fixes scripts running a stale cached version after modification without a file-size change.
Fixes the device picker presenting HID devices that cannot be granted, which could make navigator.hid.requestDevice() resolve without a device.
Fixes a crash when the GPU context becomes unavailable.
Fixes the app process failing to exit after app.quit() while an external-open call is waiting on a system Open with dialog.
Fixes the app process failing to exit after app.quit() while an external-open call is waiting on a system Open with dialog.
Pages calling available() or install() with processLocally no longer cause a renderer crash.
The macOS backend includes upstream fixes for downgrade version validation, stale launcher errors, and forwarding custom download request headers.
Fixes a crash when an invalid reason value is passed.
Fixed silent data truncation in TextEncoder APIs.
Fixes rgba(0,0,0,0) falling back to the default frame color.
Tray icons and menus now work on Linux desktops that address StatusNotifierItem by its unique D-Bus name or interface.
Fixes running under tsx import transpilation.
Fixed a Windows issue that gave each renderer process a 1-in-200 chance of compiling first-page scripts without their V8 code cache.
Fixes a renderer crash when streaming compilation is used with nodeIntegration enabled.
Fixes a renderer crash when streaming instantiation is used with nodeIntegration enabled.
Fixes the DevTools Network panel missing most requests after navigation when the debugger is attached.
Fixes Invalid printer settings errors when print options are provided.
Fixes DevTools popup and context menus not appearing when DevTools is hosted in a custom window.
Fixes a view staying blank after its window is shown when background throttling was disabled while the window was hidden.
Restored support on Linux for docks and taskbars implementing the LauncherEntry D-Bus API; libunity is no longer required.
Fixes caption buttons not rendering on Linux.
Runtime toggling of shadows for frameless windows is fixed on Linux.
electron 43140 changes
Breaking changes 8
Updated the Node.js version included with Electron.
No longer returns tab url and title to extensions lacking the tabs permission or host access, aligning with tabs.get.
Electron 43.x.y is the last series to ship prebuilt binaries for Windows x86 (win32-ia32) and Linux ARM (linux-armv7l); those platforms will no longer be supported after the series reaches end of life in January 2027.
Minimum and maximum size constraints are enforced at window creation, even when they conflict with requested width and height.
Pressing Backspace no longer accepts macOS text replacements inside contenteditable elements.
Cross-origin fetch and XHR are blocked for custom protocols with supportFetchAPI: true unless corsEnabled: true is also set; cross-origin no-cors requests receive opaque responses.
Electron-specific help menu links appear only in the default app; unpackaged apps no longer see them in their default menu.
Support for the ELECTRON_SKIP_BINARY_DOWNLOAD environment variable has been removed.
Security 8
Electron: Sandboxed preload code cache can be poisoned by a compromised renderer
Electron: File and HTTP protocol handlers allow cross-origin reads without corsEnabled
Electron: <webview> can enable Node.js integration in Web Workers despite embedder restrictions
Electron: Windows opened from a sandboxed top-level document do not inherit its sandbox restrictions
Windows opened by a sandboxed top-level frame now inherit the opener's sandbox restrictions.
Cross-origin isolation now works for non-file origins.
Electron drops inherited HTML sandbox restrictions for popups opened through OpenURLFromTab
Electron: ProtocolResponse.url reuses the default session cache instead of the registering session
New APIs and options 22
Added macOS support for enabling the Touch ID platform authenticator for WebAuthn.
Heap profiling is now supported through contentTracing.enableHeapProfiling().
Electron now allows the Node.js inspector network resource flag to be passed through.
Check whether global shortcut handling is suspended.
Global shortcut handling can now be temporarily suspended.
MenuItem constructor options and properties now accept accessibilityLabel for screen-reader-friendly labels.
Added nativeTheme.shouldDifferentiateWithoutColor on macOS.
Requests from utility processes using the net module now support sessions.
macOS Notification constructor accepts groupId to visually group notifications in Notification Center.
macOS Notification constructor accepts a custom notification identifier through id.
Windows notifications now support id, groupId, and groupTitle.
Windows Notifications now support the urgency option.
macOS apps can retrieve delivered notifications still present in Notification Center.
Shared textures can now be imported using the nv16 pixel format.
The allowExtensions privilege enables Chrome extensions on custom protocols.
A session event was added for choosing between multiple discoverable WebAuthn credentials.
SF Symbol customisation was added.
Added view.setBackgroundBlur.
A Clone method was added to WebContents.
Added a method to copy a video frame at the specified coordinates.
Added a method to save a video frame at the specified coordinates.
Proxy use is now supported during yarn install.
Performance 11
File lookups inside ASAR archives and large files served from them to the renderer are faster.
Reduced a stall of tens of milliseconds while creating the first BrowserWindow on Linux.
Calls through contextBridge-exposed APIs are faster.
Sending large values through ipcRenderer, ipcMain handlers, and webContents.send has lower main-thread cost.
On macOS, a page's first use no longer blocks the main process for several hundred milliseconds.
Startup performance improved through an embedded Node.js startup snapshot, cached V8 bytecode, and earlier delivery of sandboxed renderer startup data; preload stack traces now report the correct path and line.
Performance improved on Linux.
Performance improved on Linux.
Performance improved on Linux.
Runtime performance improved.
Header conversions and several other gin converter hot paths are faster.
Behavior and default changes 5
Linux support was added for app.getApplicationInfoForProtocol().
File downloads now open by default in the user's Downloads folder, or Home directory if Downloads does not exist.
On Windows, resize targets for frameless windows now begin at the side and bottom edges and extend outward, matching framed windows.
The nv12 OSR pixel format is now supported for professional use.
Electron determines the default XDG App ID and WM_CLASS differently for better Linux platform compatibility when desktopName is not provided in package.json.
Fixes and other changes 86
Fixed crashes at startup or on theme change on Linux when GTK modules are loaded.
Fixed a possible renderer crash in 32-bit Windows and Linux ARM builds caused by under-aligned Blink heap vector allocations.
setIgnoreMouseEvents is now supported on Wayland.
Pages no longer shrink when the minimum visual zoom level is under 1.
Exception handlers in modules using wasm exceptions no longer fail to catch exceptions or crash during tier-up.
Backported fixes from ANGLE, Chromium, PDFium and V8.
Fixed a memory leak when a worker thread exits.
Braille displays now show the correct line in macOS multi-line text fields; AXLineForIndex and AXRangeForLine return the line containing the caret.
Linux xdg-desktop-portal no longer misidentifies Electron apps whose desktopName contains dashes, fixing globalShortcut and other portal-based APIs.
Fixes crashes when navigating to accessibility or devtools URLs, when an extension background page uses navigator.mediaDevices, and when forgetting a disconnected serial device.
The app no longer crashes on Linux if the D-Bus session bus disconnects while it is running, such as at logout or when dbus is restarted.
Document title updates during same-document back/forward navigation now work without using browserWindow.setTitle().
Spellcheck now initializes on Linux when the dictionary was cached from a previous run.
Utility process crashes at exit are fixed on Windows 11 24H2 and later.
On Windows, the app process can now exit while
shell.openExternalorshell.openPathis waiting on a system Open with dialog.Resolving a path inside a malformed archive with cyclic link entries no longer crashes.
Fixed a rare main process crash when garbage collection runs before the DevTools frontend finishes loading.
Fixed a possible SIGABRT during process exit after tls or https was loaded shortly before exiting, including app.exit() before ready and short-lived Node child processes.
The built-in PDF viewer now renders documents in sessions whose partitions do not use the persist: prefix.
Fixed a possible main process crash at quit when a session is created from JavaScript running during shutdown.
Transparent frameless windows can again be resized on Linux.
Fixed out-of-memory crashes being reported from inside the crash-key handler instead of at the out-of-memory site.
Fixed a crash when quickly switching menus while the app is under heavy load.
Fixed the Linux system accent color intermittently not being applied, which could make this API return an empty string on some launches.
Fixed a potential crash when notifying user activation before the primary main frame was live.
Fixed a browser process crash that could occur during Windows logoff, shutdown, or restart.
Fixed a crash report when the X server or Wayland compositor exits while an app is running.
Fixed a crash that could occur when closing DevTools while the host WebContents was being destroyed.
Fixed thin borders appearing past drop shadows on Linux frameless windows when multiple windows were created.
Fixed loading ICO files from ASAR archives on Windows leaving temporary icon files behind.
Fixed bindings for MV3 service workers.
Fixed a crash that could result from some values passed to this method.
Fixed unnecessary popup creation for fields without datalist suggestions, which could cause input latency on macOS.
Fixed global shortcuts not working on GNOME Wayland by enabling Chromium's GlobalShortcutsPortalPreferredTrigger feature by default on Linux.
Fixed a crash when showing Linux message boxes while another Linux UI implementation was active.
On macOS, a window covered by a transparent or click-through window is no longer incorrectly marked hidden and background-throttled.
Replacing an open application menu no longer triggers a crash.
The BrowserWindow event no longer occasionally fires with incorrect values.
On Windows, app-region: drag inside a hidden WebContentsView no longer drags the parent window.
On macOS, executableWillLaunchAtLogin now always returns a boolean instead of undefined.
Calling app.setPath with a non-existent sessionData directory no longer crashes.
Minimum and maximum aspect-ratio size clamping on macOS now accounts for extraSize.
Linux apps now display their names and icons in audio managers instead of being labeled Chromium.
Focus tracking on macOS is corrected.
Frameless transparent windows on Windows retain transparency after setResizable(false) followed by setResizable(true).
Fixed silent data truncation in Buffer APIs on Apple Silicon.
contentTracing now captures Node.js trace categories.
Calling the method while a trace session is active no longer crashes.
Calling the method during an active trace session no longer causes a crash.
Calling contentTracing APIs before app.whenReady() no longer crashes the application.
On macOS, registering many dynamic crash keys no longer loses crash keys or causes the crash reporter to hang.
Fixed a hang on macOS.
The context menu in a detached DevTools window now focuses the DevTools window rather than the inspected page's window.
Certain DevTools extension panels now show without requiring a page reload.
The requested target platform is now respected when resolving the Electron executable during postinstall, preventing incorrect path.txt output and repeated downloads.
Improved external resize band positioning and scaling for frameless windows on Windows.
For files inside asar archives, blksize and blocks now return numeric values instead of undefined.
Fixed macOS window freezes when entering or exiting fullscreen fails.
Concurrent requests for the same path no longer stall indefinitely.
Handling JavaScript dialogs from windows opened with invalid or empty URLs no longer crashes.
Improved the appearance of maximized windows on GNOME in Wayland, including with non-default GTK themes such as Breeze.
Fixed native addon compilation failures caused by an undefined MSVC intrinsic in V8 headers.
Fixed cases where nodeIntegrationInWorker did not work in AudioWorklet.
Clicking native notifications on Wayland now focuses the application window.
Fixed a crash when closing a Notification.
Fixed a Windows shutdown crash when power monitor notifications were subscribed.
In the main process, calling process.exit() without an argument now exits with process.exitCode; string arguments are handled correctly.
Remote debugging with this flag now works when inspecting from Chrome's chrome://inspect page.
Importing electron via ESM no longer touches the OS keychain on app-ready when safeStorage is unused.
The method now returns a Promise as documented; importing electron via ESM no longer touches the OS keychain on app-ready when safeStorage is unused.
A transient Windows hook teardown failure no longer causes duplicate low-level mouse hooks on the next activation.
On macOS, setSimpleFullScreen no longer exits when web content calls requestFullscreen().
Fixed inconsistent resolution of the target bundle path at different stages of an install.
Fixed silent data truncation in TextEncoder APIs on Apple Silicon.
Setting the color to rgba(0,0,0,0) no longer falls back to the default frame color.
Fixed user resizing of transparent windows on Windows.
On Windows, the exit event now reports correct exit codes when the high bit is set.
The print callback now fires correctly in cases where it previously might not.
Silent printing now honors custom DPI values from webContents.print, preventing incorrect output scaling.
Silent printing now honors pageSize and mediaSize.
Custom options now prefill the print dialog on macOS.
Printing on Linux no longer fails with Invalid printer settings.
A rejected call with an invalid pageRanges value no longer causes all subsequent calls to reject.
On macOS, show/hide events and WebContents visibility state are now reported correctly when multiple WebContentsViews are attached to a window.
Invalid HTTP header names or values in the callback no longer cause a crash.
Certain window types are resizable again in MAS builds.
electron 42135 changes
Breaking changes 8
Invalid characters in custom protocol or webRequest response header values are now rejected.
The npm package no longer downloads its binary in postinstall; it downloads on the first run of its main bin script instead.
Notifications now use the UNNotification API and require code signing to display; otherwise, the Notification object emits a failed event.
Electron 42 upgrades its Node runtime.
npm tarball contents are now restricted to an explicit allowlist.
The default device scale factor is now 1.0 instead of the primary display's scale factor; set webPreferences.offscreen.deviceScaleFactor to choose a custom value.
Protocol client methods now reject protocol names that do not conform to RFC 3986 URI scheme grammar.
The options.quotas object is no longer supported because it was removed from upstream Chromium.
Security 10
This event is scoped to the requesting document.
Backported fixes for CVE-2026-15764 through CVE-2026-15778.
Backported fixes for CVE-2026-9115 and CVE-2026-9116.
Electron: Buffer performs incorrect byte length calculations resulting in heap buffer under/overflow
Backported fixes for touch-event queue teardown, Skia image-filter validation, and GLSL translator integer overflow issues.
Backported fixes for WebAudio worklet setup, ANGLE GL, GTK Wayland, accessibility tree-state validation, and text bidi handling issues.
Electron: Sandboxed iframe can bypass the allow-popups restriction via the OpenURL navigation path
Fixed the setting so it is properly constrained to file: origins in agent cluster key assignment.
Fixed protocol handlers with corsEnabled: false incorrectly working across protocols.
Electron: Custom protocol with supportFetchAPI but not corsEnabled allows cross-origin reads
New APIs and options 26
A static method is now available on macOS to remove notifications.
A static method is now available on macOS to remove a notification group.
Adds touchID.promptReason to customize the macOS Touch ID WebAuthn prompt text.
Adds a macOS-only check for whether the app is the active or foreground application.
Adds support for heap profiling.
Adds an environment variable for installing binaries for other architectures.
Adds an environment variable for installing binaries for other platforms.
Adds support for the experimental-transform-types command-line option.
Adds methods to temporarily suspend and resume global shortcut handling.
Adds a script to manually trigger the Electron binary download.
Adds script attribution support through the AlwaysLogLOAFURL feature flag.
Menu item labels, sublabels, and icons can now be updated dynamically.
Adds support for MSIX automatic updating.
Adds a reason property to the Windows Notification closed event so developers can identify why a notification was dismissed.
Adds an API to retrieve notification history on macOS.
Adds Windows handling for notification clicks, replies, and action buttons, including when the app launches from a notification.
Adds support for importing shared textures using the p010le 10-bit YUV pixel format.
Adds the ability to capture a JavaScript stack trace when the renderer runs out of memory.
Adds asynchronous functionality supporting several additional safeStorage backends.
Adds a disclaim option to allow for TCC disclaiming on macOS.
Adds animation functionality to setBounds.
Adds a method to get or create a DevTools target ID.
Adds an option to use the printer's default page size.
Adds an option to disable automatic focusing of WebContents on navigation.
Adds an option to specify the offscreen rendering scale factor and fixes invalid screen information affecting related media queries.
Extends notification actions to include buttons, select dropdowns, and replies.
Performance 10
Reduced main-thread cost when large values are sent through ipcMain handlers.
Reduced main-thread cost when sending large values through ipcRenderer.
Reduced main-thread cost when sending large values through webContents.send.
Improved startup by booting the main process from an embedded Node.js startup snapshot, caching framework bundles and preload scripts as compiled V8 bytecode, and pushing sandboxed renderer startup data ahead of navigation.
Improved runtime performance.
Enabled ThinLTO on macOS builds and for Linux and Windows release builds to improve performance.
Improves performance of IPC dispatch.
Improves performance of native event emission.
Improves performance of option-dictionary parsing.
Release builds use profile-guided optimization for V8 builtins, improving JavaScript builtin performance, including Array, String, and RegExp.
Behavior and default changes 1
On Wayland, frameless windows now have GTK drop shadows and extended resize boundaries; set hasShadow: false for fully frameless windows with no decorations.
Fixes and other changes 80
Fixed calls resolving seconds late on Linux while the app was idle.
Fixed calls resolving seconds late on Linux while the app was idle.
Backported fixes from ANGLE, Chromium, Skia and V8.
Fixed thumbnail generation on Linux with Wayland.
Corrected the Linux arm64 and armv7l value, which previously held an x86 value.
Corrected the Linux arm64 and armv7l value so opening a directory no longer fails with EINVAL.
Corrected the Linux arm64 and armv7l value, which previously held an x86 value.
Fixed region-qualified values such as de-DE loading no locale resources on macOS, which could leave localized strings empty and crash WebAuthn Touch ID prompts.
Fixed premature portal timeout on Linux with Wayland.
restore now takes effect on Wayland if the window was maximized immediately after creation.
Fixed the system theme color appearing at the top edge of frameless windows on Linux.
Fixed a renderer crash when a page calls this method with processLocally.
Fixed a possible SIGABRT during process exit after tls or https was loaded shortly before exiting, including app.exit() before ready and short-lived Node child processes.
Fixed a performance regression introduced in 42.8.1 that slowed style/layout work and app startup.
Fixed a renderer crash when disabling device emulation while the main frame was not local.
Frameless windows no longer shrink after applying constraints or toggling resizability on Windows.
Fixed a crash during Maglev compilation.
On Windows, programmatic resizing beyond maxWidth or maxHeight no longer clamps the content area below the configured limits when useContentSize is true.
Electron updated Chromium to 148.0.7778.280.
Electron updated Node.js to v24.18.0.
Updated the Chromium version bundled with Electron to 148.0.7778.271.
Fixed an issue where clicking the maximize button could progressively shrink the window in some Wayland environments.
Updated the Node.js version bundled with Electron to v24.17.0.
Fixed a Windows edge case when positioning a window behind the taskbar.
Fixed a 1px line appearing at the top of Linux frameless windows when the window and web contents have different background colors.
Fixed a crash when called before async encryption initialization completed.
Fixed a crash when called before async encryption initialization completed.
Now returns a Promise as documented and no longer incorrectly reports false shortly after the app ready event.
Chromium was updated to 148.0.7778.254.
Node.js was updated to v24.16.0.
Calling win.center() no longer shrinks frameless windows on Linux and Windows, or leaves frameless windows slightly off-center on Windows.
Fixed silent data truncation in Buffer and TextEncoder APIs.
Fixed a crash when processing strings in the main process.
Updated Chromium to 148.0.7778.218.
Fixed a crash when sharing a window on Windows.
Fixes a crash caused by a missing string resource in the macOS Touch ID WebAuthn prompt.
Fixes a macOS crash that occurred when a user clicked into a title bar or top view.
Fixed a crash involving desktopCapturer on macOS.
Fixed a potential race condition crash when closing DevTools.
Fixed additionalData on Windows being truncated or failing to deserialize in the primary instance's second-instance event.
Fixed macOS update installation failing if checkForUpdates was called again after an update was downloaded.
Electron 42 upgrades its Chromium runtime.
Linux sizing and resizing with CSD received fixes, and support was added for creating content-sized windows.
Fixed macOS text replacement not working in contenteditable elements.
Added missing metadata fields to contentTracing traces.
Fixed crashes when calling contentTracing APIs before the app is ready or calling getTraceBufferUsage during an active trace session.
Fixed VideoFrame objects returned through contextBridge having an incorrect prototype.
Fixed cookie changed events not being emitted in all cases.
Addressed the upstream Chromium change to enable CoreAudio Tap API for macOS audio capture.
Fixed some packages not being correctly filtered in macOS dialogs.
Fixed macOS dock menu items not respecting their enabled and checked properties.
Fixed region positions not updating when DevTools is docked to the left or right in a frameless window.
Hidden WebContentsView instances no longer respond to clicks in draggable regions.
Improved the appearance of shadows and borders on Wayland.
Fixed global shortcuts not working on Wayland when the GlobalShortcutsPortal feature is enabled.
Global shortcuts can now be registered more reliably on Wayland.
Fixed a memory leak when setting icons on Linux/GTK.
Menus now correctly emit this event when closed after a submenu has been open.
Fixed the parent window freezing on Windows when a message box is opened immediately after closing a child window.
Fixed notification clicks not focusing the application window on Wayland.
Fixed nodeIntegrationInWorker not always working in AudioWorklet and overrides not being honored for child windows sharing a renderer process.
Fixed the printToPDF queue so it resets after a rejection.
Fixed a crash on Wayland when called before a BrowserWindow has been created.
Fixed WebContentsView.setBounds triggering redundant page-favicon-updated events when the favicon had not changed.
Fixed stable bounds when toggling resizability for frameless windows on Windows.
Fixed transparency being lost across setResizable toggles on Windows.
Fixed zoomFactor overrides having no effect on windows opened via window.open().
Fixed some shell functionality on Linux when the target window is already open.
Fixed a TypeError when calling the method with a path and options.
Fixed a dependency issue that caused Squirrel.Mac updates to fail.
Fixed stacked update behavior for old staged updates.
Fixed traffic light buttons flashing at position (0,0) when restoring a minimized macOS window with a custom position.
Fixed borders and smearing in transparent frameless/client frame windows on Linux.
Electron 42 upgrades its V8 runtime.
Fixed printing so it honors the horizontal and vertical dpi options.
Fixed a potential crash when using webContents.print().
Handlers are now called for intercepted protocols and special net.fetch URLs.
Calling win.setFullScreen(false) while not in fullscreen no longer hides the Linux menu bar.
On Linux, windows no longer shrink below the requested maximum size or grow taller when resizability is disabled.
Fixed action and reply events not dispatching from the WinRT activation path.
electron 4184 changes
Breaking changes 3
Electron now uses an updated Node.js runtime.
Electron 41 upgrades Node to v24.14.0, which may affect application compatibility and runtime behavior.
Handlers now receive the requesting subframe's origin rather than the top-level page origin.
Security 28
Electron: Local race condition in Squirrel.Mac update installation on macOS
Backported fixes for the listed CVEs.
Backported 20 High-severity fixes from Chrome 148 stable release.
Electron: Context isolation bypass via Function.prototype.bind hijack
Electron: contextBridge object copy honors prototype setters
Backported fixes for the listed CVEs.
Electron: Cross-origin iframe can position native autofill popup
Electron: DevTools embedder handler executes arbitrary files via shell open
Electron: Extension tab APIs operate across session boundaries
Electron: HTTP redirect followed into local file loader
Electron: Off-screen rendering trusts GPU-supplied geometry over shared-memory size
Electron: Parent process code-sign check is spoofable
Electron: Sandboxed iframes can launch external protocol handlers
Electron: window.open features string controls some window options considered privileged
Electron: DevTools JavaScript Injection via Unsanitized Dock State Parameter
Electron: Permission Check Handler Receives Main Frame Origin Instead of Requesting Iframe Origin
Electron: shell.openPath path validation bypass via embedded null byte
Electron: Crash in clipboard.readImage() on malformed clipboard image data
Electron: Named window.open targets not scoped to the opener's browsing context
Electron: Use-after-free in offscreen shared texture release() callback
Electron: HTTP Response Header Injection in custom protocol handlers and webRequest
Adds additional defence against privileged user modifications to ASAR Integrity protected applications on macOS.
Electron: Incorrect origin passed to permission request handler for iframe requests
Electron: nodeIntegrationInWorker not correctly scoped in shared renderer processes
Electron: Out-of-bounds read in second-instance IPC on macOS and Linux
Electron: Registry key path injection in app.setAsDefaultProtocolClient on Windows
Electron: Service worker can spoof executeJavaScript IPC replies
Electron: Use-after-free in offscreen child window paint callback
New APIs and options 6
Added an option to specify the device scale factor for offscreen rendering instead of using the primary display's value.
macOS apps can use this command-line flag to disable location services.
External shared textures can now be imported as VideoFrame objects.
Adds an option to bypass custom protocol handlers for requests.
Wasm trap handlers can be enabled using the WasmTrapHandlers fuse.
WebSocket authentication is now supported through the webContents login event.
Behavior and default changes 6
Electron 41 upgrades Chromium to 146.0.7680.65, which may affect application compatibility and browser behavior.
DevTools errors are no longer printed to the console.
Supports SF Symbol names.
Import shared texture now supports the NV12 format.
Electron 41 upgrades V8 to 14.6, which may affect application compatibility and JavaScript execution.
Requests sent via net can now have their headers modified to use reserved headers via webRequest.
Fixes and other changes 41
Fixed a detached DevTools window's context menu focusing the inspected page's window instead of the DevTools window.
On Windows, the app process no longer may fail to exit after app.quit() while shell.openExternal() or shell.openPath() waits on a system Open with dialog.
Fixed a renderer crash when calling WebAssembly.compileStreaming() or WebAssembly.instantiateStreaming() with nodeIntegration enabled.
Fixed a Windows regression where frameless windows changed their size after calling setResizable.
Fixed a crash that could occur when an autofill suggestion popup was shown while a window was closing.
Fixed errors that occurred when using the Chrome DevTools Fetch API.
Fixed Backspace incorrectly accepting macOS text replacements inside contenteditable elements.
Cross-origin requests using mode: 'no-cors' now receive an opaque response.
Fixed white borders on frameless fullscreen windows on Windows.
Fixed a renderer crash when a page uses the <geolocation> HTML element.
Fixed some toast notification properties that did not work as expected in WinRT.
Building with
enable_pdfdisabled no longer fails.An Electron macOS update is applied even if another app previously blocked the macOS system update loop.
Fixed the missing Electron Isolated Context option in the DevTools execution context dropdown.
Fixed
gn genfailing to resolveelectron_versionwhen building from a git worktree checkout.Fixed saving edited PDF files failing with a cross-origin SecurityError.
DevTools no longer re-attaches to the window when opened after previously being detached.
Closing DevTools immediately after focus no longer causes a crash.
Menu items are now cleaned up when
Menu.setApplicationMenuis called repeatedly, preventing a memory leak.Fixed a crash when rendering PDFs with Site Isolation disabled.
Resize now triggers on window corners.
Fixed an intermittent application-quit crash when a WebContents or other JS-emitting native object is garbage-collected during shutdown.
Removes this logging when interacting with macOS menus.
Fixes margins not looking as expected when printing in silent mode.
On macOS, show/hide events and WebContents visibility state are now reported correctly when multiple WebContentsViews are attached to a window.
Fixed an issue where an app shortcut may lose its icon after auto-updating on Windows.
Fixed an accessibility issue where the event was not fired on menu creation.
Fixed failures to save Windows notification icons caused by invalid characters in their temporary filenames.
Additional fs copy methods now support ASAR.
Fixed an issue that prevented some DevTools functionality from working as expected.
Universal Links are now delivered on macOS cold launch when NSUserActivity.userInfo is nil.
Fixes cookie encryption by using the old os_crypt sync implementation present in M142.
Fixes ESM-from-CJS imports when paths contain CJK characters.
Fixes globalShortcut not working on Wayland with GlobalShortcutsPortal enabled and makes registration more reliable on Wayland.
The close callback now fires when the given menu itself closes, rather than when any arbitrary submenu closes.
Overrides in setWindowOpenHandler are now honored for child windows sharing a renderer process with their opener.
Calling setRepresentedFilename() now sets the AXDocument accessibility attribute on macOS.
nodeIntegrationInWorker overrides are now honored for child windows sharing a renderer process with their opener.
Fixes sizing when minimum or maximum constraints are set or resizable is false; windows no longer shrink below the requested maximum size or grow taller when resizing is disabled.
Restores the window canHide property.
On Windows, calling window.setFocusable(true) no longer causes the window to lose focus.
electron 4061 changes
Security 15
Backported fixes for the listed CVEs improve Electron security.
Backported upstream fixes for memory-safety and validation issues across media, GPU, networking, accessibility, compositing and the ANGLE GL backend.
Backported fixes for use-after-free and object-lifetime issues in input, UI, Aura, HID and file-system teardown paths, and a runtime-effect validation gap in Skia.
Backported security fixes for the listed upstream issues.
Backported fixes for the listed CVEs.
Handlers now receive the requesting subframe's origin rather than the top-level page origin.
Electron: AppleScript injection in app.moveToApplicationsFolder on macOS
Electron: Unquoted executable path in app.setLoginItemSettings on Windows
Electron: Use-after-free in PowerMonitor on Windows and macOS
Electron: Context Isolation bypass via contextBridge VideoFrame transfer
Electron: Renderer command-line switch injection via undocumented commandLineSwitches webPreference
Electron: USB device selection not validated against filtered device list
Electron: Use-after-free in download save dialog callback
Electron: Use-after-free in WebContents fullscreen, pointer-lock, and keyboard-lock permission callbacks
Fixed cookie encryption provider handling in the network service when cookie encryption is enabled.
Deprecations 1
Clipboard API access from renderer processes is deprecated.
New APIs and options 8
Added methods for more granular accessibility support management.
Added an API to check whether hardware acceleration is enabled.
Dynamic ESM imports are supported in non-context isolated preloads.
Added memory-eviction as a possible reason for a child process to exit.
The flag can be used when the nul device is disabled on Windows.
Offscreen Rendering supports the RGBAF16 output format with scRGB HDR color space.
Linux can retrieve the system accent color through this API.
Passing null resets the accent color to follow system accent settings after a previous color was set.
Behavior and default changes 2
DevTools now receives focus automatically when an element is inspected or a breakpoint is triggered.
File System API grant status can now persist within a given session.
Fixes and other changes 35
Fixes from upstream Chromium were backported.
Fixed a crash caused by closing devtools immediately after focus.
Fixed an issue that caused the RGBAF16 shared texture format to have a keyed mutex on Windows.
Electron updated its Node.js runtime to v24.15.0.
Backspace no longer accepts macOS text replacements inside contenteditable elements.
Fixed incorrect retrieval of running app icons on macOS Tahoe.
The AltGr key fix was reverted, restoring the menu bar display on Windows.
Chrome Devtools menus now appear in certain embedded windows where they previously may not have appeared.
Fixed a shutdown crash on Windows when the hidden titlebar is enabled.
Fixed offscreen rendering so it has valid screen information and can return valid results for related media queries.
Fixed cleanup of legacy keychain entries during migration to suffixed account names on macOS and fixed first-launch entries using the wrong account name.
Fixed a macOS crash when creating a new tab from the tab overview.
Fixed malformed custom toastXml causing a Notification crash.
Prevents pressing AltGr from activating or focusing the menu bar.
Fixed restoring a minimized fullscreen window on Windows so its previous fullscreen state is preserved.
Fixes menu item enabled state updates during key equivalent dispatch when the menu is closed on macOS.
Fixed a crash in the platform beep function on Linux.
Fixed a startup crash when the V8 sandbox is disabled.
Fixes resize issues for frameless windows in Mac App Store builds.
Pointer lock now works on Wayland.
Role-based menu items no longer incorrectly return null for their accelerator property.
Fixed an issue where native modules would crash or fail to compile on MacOS 12.
Fixed an issue in chrome://accessibility.
Updated Chromium to 144.0.7559.96.
Fixed a potential race condition crash when opening DevTools.
The toplevel icon Wayland protocol now works.
Fixed default button handling on Windows.
Fixed a potential Windows crash when the extension filter array is empty.
Fixed drag regions in child windows.
Fixed an issue where this event was not emitted properly for some application menus.
Fixed an unexpected dialog opening when no app is suitable to open the URL.
Fixed its application on macOS 26 when using titleBarStyle customButtonsOnHover.
Fixed a crash on Wayland when calling the API with mode detach.
Fixed visual artifacts while resizing a window on Windows.
Fixed Wayland configuration through the XDG_SESSION_TYPE environment variable.
electron 3962 changes
Breaking changes 2
The close callback now fires when the menu itself closes, rather than when any submenu closes.
The signature now provides a unified handle that holds the native handle.
Security 1
Backported security fixes for the listed vulnerabilities.
New APIs and options 9
The
assetskey can now be queried viaapp.getPathto locate assets and resources.Supported on Windows and macOS.
macOS system memory info now includes the
fileBackedfield.macOS system memory info now includes the
purgeablefield.The macOS
Trayconstructor acceptsguid, allowing tray icons to maintain their position across launches.USBDevice.configurationsis now supported.Offscreen shared texture info now includes
colorSpace.Gets a
WebFrameMaininstance from its frame token and process ID.On Windows, window accent color can be changed after initial window initialization via
{get|set}AccentColor.
Behavior and default changes 3
Chromium was updated to 142.0.7444.235, which may affect the behavior of Electron applications.
AccentColor setting now distinguishes the frame.
This release upgrades Chromium, Node, and V8; developers may need to account for changes inherited from those runtime versions.
Fixes and other changes 47
Setting zoomFactor in this option now takes effect on windows opened via window.open().
Registering an accelerator for alt+space now prevents the system context menu from being triggered.
Fixed application input breaking on certain Wayland compositors when a DND action was cancelled.
Fixed a crash that could occur when using the File System Access API.
Fixed rendering glitches on macOS.
Fixed menu item accelerators stopping working after the item's enabled property was toggled on macOS.
Fixed a duplicate Toggle Full Screen menu item appearing in the View menu on macOS.
Fixed stack overflow when compiling deeply nested JS functions.
Fixed flickering in the devtools element panel when using node inspection.
Fixed an issue where clicking a native notification could hang an application on certain Windows environments.
Reduced visual artifacts while resizing a window on Windows.
Fixed an issue where the parent window remained disabled after calling show() multiple times on a modal window.
Fixed a crash when reading system certificates through the Node.js TLS module.
Updated the bundled Chromium version to 142.0.7444.175.
Fixed a crash when creating event objects for IPC events.
Fixed an issue where some apps would throw an exception on launch.
V8 trap handlers were reenabled for wasm in browser and utility processes, improving runtime execution.
Fixed a crash on Windows when a path contains UTF-8.
Updated Chromium to 142.0.7444.134.
Corrected the appearance of tiled windows when frame is true and removed resize handles from tiled edges.
Fixed an issue that prevented macOS menu items from being disabled under all circumstances.
Fixed an issue that left the parent window interactive after a modal window opened.
Fixed an out-of-memory crash when optimizing certain wasm functions involving large phi nodes.
Fixed an issue with draw smoothing on rounded corners.
Fixed an application crash when clicking or hovering over the native macOS Window menu.
Fixed an issue that prevented menu items on macOS from being disabled under some circumstances.
Fixed an issue where right-clicking in the Wayland titlebar could break mouse interactions.
An invalid color passed as a string no longer results in a white accent color.
Prevents unnecessary removal and re-adding of the same BrowserView.
Fixed file dialogs so
appextensions filters allow selecting app bundles on macOS.Fixed an issue where
app.accessibilitySupportEnableddid not work as expected.Fixed the white flash when calling
BrowserWindow.show.Fixed a crash when called with an empty thumbnail size.
When passed a parent window, the dialog is now centered to that window rather than incorrectly to the monitor.
Fixed a crash when passing a feature parameter from the command line.
Fixed a runtime JavaScript error that could crash
GetPackageJSON.Fixed a crash when the inspector agent attempts to evaluate on provisional frames.
net.isOnline()no longer always returnstruein utilityProcesses.Fixed an issue that prevented
require('node:sqlite')from working.Fixed behavior on some older Windows versions where
setContentProtectiondid not work as expected.Fixed an issue where
shell.openPathwas not non-blocking as expected.Fixed an issue where this method inverted the color.
The
Refererheader is now set correctly when usingwebContents.downloadURL().Fixed a possible crash when calling
webContents.loadURL()from the catch handler of a failedwebContents.loadURL()call.Fixed a crash when accessing
webContents.session.Windows opened with
window.opennow always create a resizable popup window.Fixed an issue where windows opened with
window.openwould never be offscreen.
electron 3812 changes
Fixes and other changes 12
Electron updated Node.js to v22.22.0.
Updated the Node.js version included with Electron to v22.21.1.
Fixed an error checking environmental variables when installing Electron via npm with remote checksums.
Fixed hover button background calculation so it provides appropriate minimum contrast.
Fixed icons not showing up as expected in Windows Toast notifications.
Fixed shader-f16 to work on Windows.
Titlebar buttons now appear on the correct side of windows on Wayland in Ubuntu.
Updated the bundled Chromium version.
Fixed a development issue where the toolchain could not be found when building on macOS 26.
Updated the bundled Node.js version.
Fixed transparent window styles breaking when the resizable property changes.
Fixed an issue where authentication via websockets could crash.
electron 371 changes
Fixes and other changes 1
Updated the bundled Node.js runtime to v22.20.0.