Skip to content

Releases: electron/electron

electron v42.0.1

08 May 20:52
b133532

Choose a tag to compare

Release Notes for v42.0.1

Fixes

  • Fixed DesktopCapturer crash on macOS. #51506
  • Fixed ELECTRON_INSTALL_PLATFORM being ignored when resolving the Electron executable path during postinstall, which caused path.txt to be written for the host platform instead of the requested target and made isInstalled() always re-download on subsequent installs. #51370
  • Fixed app.getLoginItemSettings() returning undefined for executableWillLaunchAtLogin on macOS; the property is now always a boolean. #51507 (Also in 40, 41)
  • Fixed a potential race condition crash when closing DevTools. #51473 (Also in 41)

Other Changes

  • Updated Chromium to 148.0.7778.97. #51517

electron v41.5.1

08 May 18:51
19a80ed

Choose a tag to compare

Release Notes for v41.5.1

Fixes

  • Fixed app.getLoginItemSettings() returning undefined for executableWillLaunchAtLogin on macOS; the property is now always a boolean. #51508 (Also in 40, 42)
  • Fixed a potential race condition crash when closing DevTools. #51474 (Also in 42)
  • Fixed cross-origin isolation failing for non-file origins. #51403 (Also in 42)
  • Improved the way Electron determines the default XDG App ID and WM_CLASS on Linux for better platform compatibility if desktopName is not provided in package.json. #51480 (Also in 42)

electron v40.10.0

08 May 18:47
08f4bb8

Choose a tag to compare

Release Notes for v40.10.0

Fixes

  • Fixed app.getLoginItemSettings() returning undefined for executableWillLaunchAtLogin on macOS; the property is now always a boolean. #51509 (Also in 41, 42)

Other Changes

  • Updated Node.js to v24.15.0. #51087

electron v43.0.0-alpha.1

06 May 19:18
3edf11d

Choose a tag to compare

Pre-release

Note: This is an alpha release. Please file new issues for any bugs you find in it.

This release is published to npm under the alpha tag and can be installed via npm install electron@alpha, or npm install electron@43.0.0-alpha.1.

Release Notes for v43.0.0-alpha.1

Features

  • Added Clone method to WebContents. #49959
  • Added JS stack trace to crash reports on renderer OOM. #50043 (Also in 42)
  • Added Linux support for app.getApplicationInfoForProtocol(). #51297
  • Added Notification.getHistory() for macOS, allowing developers to restore all delivered notifications still present in Notification Center. #50325 (Also in 42)
  • Added accessibilityLabel property to MenuItem constructor options and properties for defining screen-reader-friendly labels. #50240
  • Added allowExtensions privilege to protocol.registerSchemesAsPrivileged() to enable Chrome extensions on custom protocols. #49951 (Also in 40, 41, 42)
  • Added app.configureWebAuthn() to enable the Touch ID platform authenticator for WebAuthn on macOS, and a select-webauthn-account session event for choosing between multiple discoverable credentials. #51255 (Also in 41, 42)
  • Added globalShortcut.setSuspended() and globalShortcut.isSuspended() methods to temporarily suspend and resume global shortcut handling. #50425 (Also in 42)
  • Added id and groupId options to the Notification constructor on macOS. id allows custom identifiers for notifications, and groupId visually groups notifications together in Notification Center. #50097 (Also in 42)
  • Added nv12 OSR pixel format support for professional use. #49799
  • Added view.setBackgroundBlur. #51076
  • Added webContents.copyVideoFrameAt(x, y) and webContents.saveVideoFrameAs(x, y) methods. #48149
  • Added id, groupId, and groupTitle support for Windows notifications. #50328 (Also in 42)
  • Added nativeTheme.shouldDifferentiateWithoutColor on macOS. #49912 (Also in 41, 42)
  • Added session support to net module requests from utility process. #51279
  • Added support for heap profiling via contentTracing.enableHeapProfiling(). #50826 (Also in 41, 42)
  • Added support for importing shared textures using the nv16 pixel format. #50728 (Also in 42)
  • Allowed the --experimental-inspector-network-resource Node.js flag to be passed through Electron. #49689
  • Feat: SF Symbol customisation. #48911
  • File downloads will open by default in the user's Downloads folder (or Home directory if Downloads doesn't exist). #49868
  • Fixed contentTracing module to capture Node.js trace categories. #50591
  • Notes: Added support for the urgency option in Notifications on Windows. #50225 (Also in 41, 42)

Fixes

  • Added additional ASAR support to additional fs copy methods. #50226 (Also in 39, 40, 41, 42)
  • Added crash keys to diagnose power monitor shutdown crash on arm64 windows. #51198 (Also in 42)
  • Added missing metadata fields to contentTracing traces. #50892 (Also in 41, 42)
  • BrowserWindow now enforces min/max size constraints on window creation, even if they conflict with the requested width and height. #49906 (Also in 41, 42)
  • Changed the kResizeThreshold to trigger the resize on corners. #50637 (Also in 41, 42)
  • Ensured cross-origin fetch() and XHR are blocked for custom protocols registered with supportFetchAPI: true unless corsEnabled: true is also set; cross-origin mode: 'no-cors' requests now receive an opaque response. #51152 (Also in 39, 40, 41, 42)
  • Fixed DesktopCapturer crash on macOS. #50960 (Also in 42)
  • Fixed Electron child process titles on Linux so they show their types (render, gpu, etc.) and complete command-line arguments and flags in ps aux. #50509 (Also in 42)
  • Fixed ELECTRON_INSTALL_PLATFORM being ignored when resolving the Electron executable path during postinstall, which caused path.txt to be written for the host platform instead of the requested target and made isInstalled() always re-download on subsequent installs. #51029 (Also in 42)
  • Fixed app.getLoginItemSettings() returning undefined for executableWillLaunchAtLogin on macOS; the property is now always a boolean. #51416 (Also in 40, 41, 42)
  • Fixed desktopCapturer.getSources() hanging on macOS. #51128
  • Fixed fs.stat on files inside asar archives returning undefined for blksize and blocks instead of numeric values. #50825 (Also in 40, 41, 42)
  • Fixed webContents.printToPDF rejecting on all subsequent calls after a prior call was rejected with an invalid pageRanges value. #51174 (Also in 40, 41, 42)
  • Fixed a crash when providing invalid HTTP header names or values in the webRequest.onBeforeSendHeaders() callback. #51340 (Also in 40, 41, 42)
  • Fixed a bug where Windows notification icons could fail to save because their temporary filenames contained invalid characters. #50454 (Also in 40, 41, 42)
  • Fixed a bug where errors would occur when using the Chrome DevTools Fetch API. #50744 (Also in 41, 42)
  • Fixed a crash in clipboard.readImage() when the clipboard contains malformed image data. #50475 (A...
Read more

electron v42.0.0

06 May 01:10
51db52e

Choose a tag to compare

Release Notes for v42.0.0

Stack Upgrades

Breaking Changes

Behavior Changed: macOS notifications now use UNNotification API

Electron has migrated from the deprecated NSUserNotification API to the UNNotification API on macOS. The new API requires that an application be code-signed in order for notifications to be displayed. If an application is not code-signed, notifications will emit a failed event on the Notification object. #47817

Behavior Changed: electron no longer downloads itself via postinstall script

Previously, the electron npm package would download the Electron binary from the repository's GitHub Releases in the package's postinstall script. With recent supply chain security attacks against the npm ecosystem with postinstall scripts as a common attack vector, Electron will now download itself dynamically the first time that its main bin script is run (e.g. via npx electron). See RFC #22 for more context. #49328

Behavior Changed: Offscreen rendering default device scale factor

Previously, OSR used the primary display's device scale factor for rendering. Starting from Electron 42, the default changes to a constant value of 1.0 for more consistent output sizes. Use webPreferences.offscreen.deviceScaleFactor to specify a custom value. #49683

Removed: quotas object from Session.clearStorageData(options)

When calling Session.clearStorageData(options), the options.quotas object is no longer supported because it has been removed from upstream Chromium.

Removed: ELECTRON_SKIP_BINARY_DOWNLOAD environment variable

This environment variable is no longer supported due to the new lazy download behavior. #50459

Features

Additions

  • Added app.configureWebAuthn({ touchID: { keychainAccessGroup } }) to enable the WebAuthn Touch ID platform authenticator on macOS. Also introduces a select-webauthn-account session event for discoverable-credential selection. #51411 (Also in 41)
  • Added Notification.getHistory() for macOS. #51123
  • Added Notification.handleActivation(callback) API on Windows to handle notification clicks, replies, and action buttons - including when the app is launched from a notification (cold start). #49919
  • Added ELECTRON_INSTALL_PLATFORM and ELECTRON_INSTALL_ARCH variables to install binaries from other platforms and architectures. #49981
  • Added allowExtensions privilege to protocol.registerSchemesAsPrivileged() to enable Chrome extensions on custom protocols. #50530 (Also in 40, 41)
  • Added app.isActive() to check if the app is the active/foreground application (macOS only). #49622
  • Added globalShortcut.setSuspended() and globalShortcut.isSuspended() methods to temporarily suspend and resume global shortcut handling. #50777
  • Added id and groupId options to the Notification constructor on macOS. id allows custom identifiers for notifications, and groupId visually groups notifications together in Notification Center. #50304
  • Added webContents.getOrCreateDevToolsTargetId(). #49733 (Also in 41)
  • Added a disclaim option to the UtilityProcess API to allow for TCC disclaiming on macOS. #49128 (Also in 39, 40, 41)
  • Added a reason property to the Notification 'closed' event on Windows to allow developers to know the reason the Notification was dismissed. #49913 (Also in 40, 41)
  • Added an usePrinterDefaultPageSize option to webContents.print() to allow using the printer's default page size. #49523 (Also in 41)
  • Added animation functionality to view.setBounds and added view.setBackgroundBlur. #48812
  • Added id, groupId, and groupTitle support for Windows notifications. #50895
  • Added nativeTheme.shouldDifferentiateWithoutColor on macOS. #50409 (Also in 41)
  • Added support for MSIX auto-updating. #49230 (Also in 39, 40, 41)
  • Added support for --experimental-transform-types. #49711 (Also in 39, 40, 41)
  • Added support for long-animation-frame script attribution (via --enable-features=AlwaysLogLOAFURL). #49706 (Also in 39, 40, 41)
  • Added support for heap profiling in contentTracing. #51162 (Also in 41)
  • Added support for importing shared textures using the nv16 pixel format. #51187
  • Added support for importing shared textures using the p010le 10-bit YUV pixel format. #49272
  • Added support for several more safeStorage backends via new asynchronous functionality in safeStorage. #49054
  • Added support for the urgency option in Notifications on Windows. #50383 (Also in 41)
  • Added the ability to capture JS stack trace on renderer OOM. #50911
  • Added the ability to disable auto-focusing of WebContents on navigation using webPreferences.focusOnNavigation. #49425 (Also in 40, 41)
  • Electron now downloads its binary into node_modules dynamically on first launch instead of running a postinstall script. Added the install-electron script to manually trigger the download as well. #49328
  • Enabled wasm trap handlers behind WasmTrapHandlers fuse. #48983 (Also in 41)
  • Extended actions support for Windows notifications to include buttons, select dropdowns, and replies. #48132 (Also in 40, 41)
  • On Wayland (Linux), frameless windows now have GTK drop shadows and extended resize boundaries. To create fully frameless windows with no decorations, set hasShadow: false in the window constructor. #49295 (Also in 41)
  • Replaced deprecated NSUserNotification with User Notifications. #47817

Fixes

  • Added additional ASAR support to additional fs copy methods. #50285 (Also in 39, 40, 41)
  • Added crash keys to diagnose power monitor shutdown crash on arm64 windows. #51205
  • Added missing metadata fields to contentTracing traces. #51007 (Also in 41)
  • Added validation to protocol client methods to reject protocol names that do not conform to the RFC 3986 URI scheme grammar. #50141 (Also in [38](https://github.com/electron/electron/pull/...
Read more

electron v39.8.10

05 May 20:45
d7c42eb

Choose a tag to compare

Release Notes for v39.8.10

Warning

Electron 39.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.

Fixes

  • Ensured cross-origin fetch() and XHR are blocked for custom protocols registered with supportFetchAPI: true unless corsEnabled: true is also set; cross-origin mode: 'no-cors' requests now receive an opaque response. #51272 (Also in 40, 41, 42)
  • Fixed an issue where the Squirrel.Mac installer could resolve the target bundle path to different locations at different stages of an install. #50766 (Also in 42)

Other Changes

  • Backported a fix for route_id validation in the GPU command buffer. #51327
  • Backported security fixes for 493319454, 494158331, 493234757, 492736100, 493413432, 492668885, 496281816. #51257
  • Backported several fixes in Skia, ANGLE, and WebRTC from upstream. #51266

electron v42.0.0-beta.8

01 May 03:33
930a5cc

Choose a tag to compare

Pre-release

Note: This is a beta release. Please file new issues for any bugs you find in it.

This release is published to npm under the beta tag and can be installed via npm install electron@beta, or npm install electron@42.0.0-beta.8.

Release Notes for v42.0.0-beta.8

Fixes

  • Fixed a bug where errors would occur when using the Chrome DevTools Fetch API. #51372 (Also in 41)
  • Fixed a renderer crash when a page uses the <geolocation> HTML element. #51374 (Also in 41)
  • Fixed an issue on Windows where a transient UnhookWindowsHookEx failure in setIgnoreMouseEvents(true, { forward: true }) teardown could cause duplicate low-level mouse hooks to be installed on the next activation. #51418 (Also in 41)

electron v41.5.0

02 May 01:40
7f51178

Choose a tag to compare

Release Notes for v41.5.0

Features

  • Added app.configureWebAuthn() to enable the Touch ID platform authenticator for WebAuthn on macOS, and a select-webauthn-account session event for choosing between multiple discoverable credentials. #51412 (Also in 42)

Fixes

  • Fixed a regression on Windows where frameless windows changed their size after calling setResizable. #51427 (Also in 42)
  • Fixed an issue on Windows where a transient UnhookWindowsHookEx failure in setIgnoreMouseEvents(true, { forward: true }) teardown could cause duplicate low-level mouse hooks to be installed on the next activation. #51419 (Also in 42)
  • Fixed remote debugging via --remote-debugging-port not working when inspecting from Chrome's chrome://inspect page. The DevTools page would appear empty due to the frontend URL pointing to a CDN that returned 404 for Electron's Chromium builds. #51413

electron v41.4.0

30 Apr 23:53
ff343d4

Choose a tag to compare

Release Notes for v41.4.0

Features

  • Added support for heap profiling via contentTracing.enableHeapProfiling(). #51178 (Also in 42)

Fixes

  • Ensured cross-origin fetch() and XHR are blocked for custom protocols registered with supportFetchAPI: true unless corsEnabled: true is also set; cross-origin mode: 'no-cors' requests now receive an opaque response. #51270 (Also in 39, 40, 42)
  • Fixed a crash when providing invalid HTTP header names or values in the webRequest.onBeforeSendHeaders() callback. #51365 (Also in 40, 42)
  • Fixed a bug that cause offscreen rendering doesn't have valid screen info and unable to get valid result of related media queries.
    • Added webPreference.offscreen.deviceScaleFactor to allow user specify a value, instead of using user's primary display's value. #50375 (Also in 40)
  • Fixed a bug where errors would occur when using the Chrome DevTools Fetch API. #51371 (Also in 42)
  • Fixed a crash that could occur when an autofill suggestion popup was shown while a window was closing. #51321 (Also in 42)
  • Fixed a regression where frameless fullscreen windows had white borders on Windows. #51332 (Also in 42)
  • Fixed a renderer crash when a page uses the <geolocation> HTML element. #51373 (Also in 42)
  • Fixed an issue where calling contentTracing APIs before app.whenReady() would crash the application. #51352 (Also in 42)
  • Fixed an issue where some toast notification properties didn't work as expected in WinRT. #51397 (Also in 42)
  • Fixed buggy behavior where Backspace would accept macOS text replacements inside contenteditable elements. #51343 (Also in 40, 42)
  • This PR fixes a regression in silent printing where custom DPI values from webContents.print were not honored, causing incorrect output scaling in real-world print flows. #51355 (Also in 42)

Other Changes

  • Backported a fix for route_id validation in the GPU command buffer. #51319
  • Backported fix in Skia for 495534710. #51264
  • Backported security fixes for 492736100, 492668885, 493413432, 493319454, 494158331, 496281816. #51259
  • Updated Chromium to 146.0.7680.216. #51382

electron v40.9.3

30 Apr 21:29
41ad342

Choose a tag to compare

Release Notes for v40.9.3

Fixes

  • Ensured cross-origin fetch() and XHR are blocked for custom protocols registered with supportFetchAPI: true unless corsEnabled: true is also set; cross-origin mode: 'no-cors' requests now receive an opaque response. #51271 (Also in 39, 41, 42)
  • Fixed webContents.printToPDF rejecting on all subsequent calls after a prior call was rejected with an invalid pageRanges value. #51220 (Also in 41, 42)
  • Fixed a crash when providing invalid HTTP header names or values in the webRequest.onBeforeSendHeaders() callback. #51364 (Also in 41, 42)
  • Fixed a crash that could occur when an autofill suggestion popup was shown while a window was closing. #51334 (Also in 41, 42)
  • Fixed an issue where app-region: drag inside a hidden WebContentsView would still drag the parent window on Windows. #51247 (Also in 41, 42)
  • Fixed an issue where an Electron macOS update would not be applied if another app was previously blocking the macOS system update loop. #51211 (Also in 41, 42)
  • Fixed buggy behavior where Backspace would accept macOS text replacements inside contenteditable elements. #51345 (Also in 41, 42)

Other Changes

  • Backported a fix for route_id validation in the GPU command buffer. #51320
  • Backported security fixes for 493319454, 494158331, 493234757, 492736100, 493413432, 492668885, 496281816. #51258
  • Backported several fixes in Skia, ANGLE, and WebRTC from upstream. #51265