Electron Releases - v31.0.0

npm install electron@v31.0.0
yarn add electron@v31.0.0

Release Notes

Stack Upgrades

Breaking Changes

  • Made window.flashFrame(bool) flash continuously on macOS. #41391
  • Updated Chromium to 126.0.6445.0. (Removed: WebSQL support) #41868
  • Updated Chromium to 125.0.6412.0. (Behavior Changed: nativeImage.toDataURL will preserve PNG colorspace) #41610

Features

Additions

  • Added a new instance property navigationHistory on webContents API with navigationHistory.getEntryAtIndex method, enabling applications to retrieve the URL and title of any navigation entry within the browsing history. #41577 (Also in 29, 30)
  • Added options parameter to Session.clearData API. #41355
  • Added proxy configuring support for requests made with net module from utility process. #41335 (Also in 28, 29, 30)
  • Added support for Bluetooth ports being requested by service class ID in navigator.serial. #41638 (Also in 29, 30)
  • Added support for NODE_EXTRA_CA_CERTS. #41689
  • Extended webContents.setWindowOpenHandler to support manual creation of BrowserWindow. #41432
  • Implemented support for the File System API. #41419 (Also in 30)
  • clearData method added to Session. #40983
  • Extended WebContentsView to accept pre-existing webContents object. #42319

Improvements

  • Extended WebContentsView to accept pre-existing webContents object. #42319
  • Improved error messages when ses.cookies.set fails. #42400 (Also in 29, 30)
  • Re-adds functionality to check whether or not an app was launched as a login service on macOS. #42422

Removed/Deprecated

  • The inputFieldType property in the context-menu params has been removed. #41239 (Also in 30)

Fixes

  • Added missing support for the recursive option in fs.{readdir|readdirSync} as well as fs.promises.{readdir|readdirSync}. #41582
  • Added support for withFileTypes when calling fs.{readdir|readdirSync} with the recursive in Asar archives. #41627
  • Fixed ASAN build on macOS. #41587
  • Fixed a bug where a window with maximization disabled and WCO enabled would still show its maximization button. #41793
  • Fixed an issue where child views in a BrowserWindow could sometimes be. #41256
  • Fixed issue where windows made visible with showInactive were blank. #42227
  • Fixed potentially incorrect exit code in UtilityProcess. #42397
  • originalFs.promises.cp now works. #42134

Also in earlier versions...

  • BrowserWindow.show() now correctly restores focus to inactive apps on macOS. #42305 (Also in 30)
  • Electron doesn't paint on offscreen-render mode after gpu process crashed. #41924 (Also in 29, 30)
  • Ensured ScreenCaptureKit is used exclusively on macOS 14.4 and higher to avoid permission prompts. #41397 (Also in 29, 30)
  • Fixed chrome://process-internals failing to load. #41476 (Also in 28, 29, 30)
  • Fixed shell.showItemInFolder not opening Windows Explorer if the passed path contains forward slashes. #41642 (Also in 28, 29, 30)
  • Fixed a crash in addChildView if a view is added as its own child. #42108 (Also in 30)
  • Fixed a crash when the same WebContentsView is added via addChildView multiple times. #42116 (Also in 30)
  • Fixed a potential crash in chrome.scripting on extension unload. #41686 (Also in 29, 30)
  • Fixed an error when calling setAutoResize on a BrowserView. #42138 (Also in 30)
  • Fixed an inconsistent crash on maximizing window and relayout in Ubuntu. #42146 (Also in 30)
  • Fixed an issue on Windows where silent printing resulted in comically tiny renderer output. #41811 (Also in 28, 29, 30)
  • Fixed an issue where BrowserView webContents were getting destroyed even when preventDefault was being set on the owning BrowserWindow's close event. #42372 (Also in 30)
  • Fixed an issue where app.getLoginItemSettings didn't correctly throw errors. #41647 (Also in 30)
  • Fixed an issue where app.setLoginItemSettings incorrectly checked against loginItemService. #42404 (Also in 30)
  • Fixed an issue where document.requestFullscreen didn't work when calling it from a webContents inside WebContentsView. #41995 (Also in 30)
  • Fixed an issue where recentDOcuments wasn't populating properly on macOS. #41993 (Also in 29, 30)
  • Fixed an issue where setTitleBarOverlay didn't work as expected when called on BaseWindow. #42150 (Also in 29, 30)
  • Fixed an issue where user-did-{resign|become}-active were not emitted properly on macOS. #41506 (Also in 28, 29, 30)
  • Fixed an issue where webContents.navigationHistory was not an enumerable property. #42182 (Also in 30)
  • Fixed an issue where webContents.print(options) failed if options was not passed or undefined is passed. #41467 (Also in 28, 29, 30)
  • Fixed an issue where badge text set using the Badging API no longer appeared correctly on Windows. #41618 (Also in 29, 30)
  • Fixed an issue where calling window.center() on Windows and Linux incorrectly centered the window. #42101 (Also in 30)
  • Fixed an issue where dialogs did not work if they were parented to a BaseWindow and not a BrowserWindow. #42326 (Also in 30)
  • Fixed an issue where emojis weren't properly handled on Windows. #41673 (Also in 29, 30)
  • Fixed an issue where showing or focusing a panel window would activate the app on Mac. #41750 (Also in 30)
  • Fixed an issue where some calls to WebUSB methods could crash. #42365 (Also in 29)
  • Fixed an issue where the serial-port-added event improperly respected filters set by serial.requestPort(). #41621 (Also in 28, 29, 30)
  • Fixed an issue where the window could be incorrectly centered in some circumstances when calling BrowserWindow.center(). #42197 (Also in 30)
  • Fixed crash after upgrade on Linux. #42062 (Also in 29, 30)
  • Fixed crash in Notification::Close() under libnotify 0.8.x with portal environment. #41691 (Also in 28, 29, 30)
  • Fixed crash on window maximize on X11. #42184 (Also in 30)
  • Fixed data corruption when protocol.handle() processed incoming data asynchronously. #41932 (Also in 30)
  • Fixed missing <__assertion_handler> header when compiling with libc++. #41830 (Also in 29, 30)
  • Fixed nativeImage.createThumbnailFromPath and shell.openExternal not resolving when called in the renderer process. #41908 (Also in 30)
  • Fixed the type of WebviewTag.webpreferences back to string. #42279 (Also in 30)
  • Fixed usage of Storage.{get|set|clear}Cookies via the Chrome DevTools Protocol. #41718 (Also in 28, 29, 30)
  • Improved appearance of caption buttons on Windows 11 when using Windows Control Overlay. #41561 (Also in 30)
  • BrowserWindow.focus() now correctly restore focus to inactive apps on macOS. #42186 (Also in 30)
  • Fixed an issue where BrowserView webContents were getting destroyed even when preventDefault was being set on the owning BrowserWindow's close event. #42372 (Also in 30)
  • Fixed an issue where contentWindow.document.fonts.ready would never resolve in some circumstances. #42385
  • Fixed support for multiple folder/file selection in //shell_dialogs portal implementation. #42424

Other Changes

  • Backported fix for 336625018. #42316
  • Backported fix for 339266700. #42095
  • Backported fix for 339458194. #42121
  • Backported fix for 340221135. #42173
  • Backported fix for 341663589. #42254
  • Fixed partially broken state of chrome://accessibility. #41948

Documentation

Notices

End of Support for 28.x.y

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