Electron v39.0.0-alpha.1

npm
npm install --save-dev electron@39.0.0-alpha.1
yarn
yarn add --dev electron@39.0.0-alpha.1
Google ChromeChromium
141.0.7361.0
Node.jsNode.js
22.18.0
V8V8
14.1.81

Release Notes

Features

  • Added colorSpace to offscreen shared texture info of webContents.on('paint') event.

    • Breaking Changed the signature of OffscreenSharedTexture to provide a unified handle that holds the native handle. #47315

  • Added fileBacked and purgeable fields to process.getSystemMemoryInfo() for macOS. #47628 (Also in 37, 38)

  • Added tray.{get|set}AutosaveName to enable macOS tray icons to maintain position across launches. #47838 (Also in 36, 37, 38)

  • Added webFrameMain.fromFrameToken(processId, frameToken) to get a WebFrameMain instance from its frame token. #47850 (Also in 38)

  • Added support for app.getRecentDocuments() on Windows and macOS. #45839 (Also in 36, 37, 38)

  • Added support for USBDevice.configurations. #47459

  • Adds the ability to change window accent color on Windows after initial window initialization via {get|set}AccentColor. #47741 (Also in 36, 37, 38)

  • Internally switched to using DIR_ASSETS instead of DIR_MODULE/DIR_EXE to locate assets and resources, and added "assets" as a key that can be queried via app.getPath. #47439 (Also in 37, 38)

Fixes

  • Fixed a bug where app extensions filters didn't allow for selecting app bundles in macOS file dialogs. #47825 (Also in 36, 37, 38)

  • Fixed a bug where the Referer header was not being set correctly when using webContents.downloadURL(). #47625 (Also in 36, 37, 38)

  • Fixed a child process crash on macOS when the running application is replaced with one that has a newer implementation triggering the sandbox. #47765 (Also in 37, 38)

  • Fixed a crash possible when calling webContents.loadURL() from a failed webContents.loadURL() call's catch handler. #48004 (Also in 36, 37, 38)

  • Fixed a crash when adding the -electron-corner-smoothing CSS rule to a stylesheet with no associated document. #47759 (Also in 37, 38)

  • Fixed a crash when calling desktopCapturer.getSources with an empty thumbnail size. #47641 (Also in 36, 37, 38)

  • Fixed a crash when calling some webContents functions after window.close(). #47933 (Also in 36, 37, 38)

  • Fixed a spec compliance issue with window.open where it should always create a resizable popup window but did not. #47540

  • Fixed addBrowserView to prevent unnecessary removal and re-adding of the same BrowserView. #48053 (Also in 38)

  • Fixed an issue on some older Windows versions where setContentProtection didn't work as expected. #47856 (Also in 36, 37, 38)

  • Fixed an issue where app.accessibilitySupportEnabled didn't work as expected. #48041 (Also in 37, 38)

  • Fixed an issue where dialog.showMessageDialog showed a window incorrectly centered to monitor instead of parent window when passed. #48181 (Also in 38)

  • Fixed an issue where net.isOnline() always returned true in utilityProcesses. #48111 (Also in 36, 37, 38)

  • Fixed an issue where require('node:sqlite') didn't work. #47706 (Also in 36, 37, 38)

  • Fixed an issue where shell.openPath was not non-blocking as expected. #48079 (Also in 36, 37, 38)

  • Fixed an issue where a file-only picker incorrectly allowed some directories. #48198 (Also in 38)

  • Fixed an issue where an invalid color passed as a string to accentColor would result in a white accent color. #47660 (Also in 37, 38)

  • Fixed an issue where certain operations performed in a window close callback could trigger a crash. #47751 (Also in 36, 37, 38)

  • Fixed an issue where child windows could crash if they were opened from a fullscreen parent and have roundedCorners set to false. #47664 (Also in 36, 37, 38)

  • Fixed an issue where dragging sometimes didn't work after the contextmenu event was emitted. #48199 (Also in 36, 37, 38)

  • Fixed an issue where importing from electron/utility in an ESM file threw an error at runtime. #47998 (Also in 36, 37, 38)

  • Fixed an issue where importing from electron/utility threw a ERR_MODULE_NOT_FOUND error at runtime. #47968 (Also in 36, 37, 38)

  • Fixed an issue where snapped corner state wasn't properly restored after minimizing and then restoring. #48142 (Also in 36, 37, 38)

  • Fixed an issue where the accent border was drawn on all windows regardless of the window's active focused status. #47740 (Also in 36, 37, 38)

  • Fixed an issue where the accent color would be accidentally inverted when set to match the system color. #48085 (Also in 36, 37, 38)

  • Fixed an issue where the window required restart in order to recognize system accent color setting change. #47629 (Also in 36, 37, 38)

  • Fixed an issue where users on MacOS were unable to interact with a webpage loaded via loadURL. #47560 (Also in 38)

  • Fixed an issue where video scrubbing would not correctly hold the new position on playback. #47703 (Also in 37, 38)

  • Fixed an issue where windows opened with window.open would never be offscreen. #47868 (Also in 37, 38)

  • Fixed an issue where windows used dark theme on Linux all the time without reacting to system theme changes. #47869 (Also in 37, 38)

  • Fixed applying background material correctly when creating windows on Windows, restored animations, and also fixed the issue where dynamically setting the background material had no effect. #47386 (Also in 36, 37, 38)

  • Fixed compilation error when disabling extensions and pdf_viewer. #47964 (Also in 37, 38)

  • Fixed potential deadlock inside app.getLoginItemSettings on macOS. #48090 (Also in 36, 37, 38)

Other Changes

  • Added abi_version file to the npm package. #47598

  • Added platform-specific conditions to the source_set in chromium_src. #47627

  • Updated Chromium to 141.0.7361.0. #48054

  • Updated Node.js to v22.18.0. #47937

  • Electron.Event object backing class is now managed by v8. #48161

  • app module backing C++ object is now managed by v8. #48118

  • session module backing C++ object is now managed by v8. #48141

Documentation