Change8

v40.0.0

Breaking Changes
📦 electronView on GitHub →
2 breaking13 features🐛 17 fixes🔧 14 symbols

Summary

Version 40.0.0 introduces significant stack upgrades including Chromium 144, Node 24, and V8 14.4, alongside numerous features like HDR support and granular accessibility management. This release contains breaking changes related to renderer process clipboard access and symbol compression formats.

⚠️ Breaking Changes

  • Deprecated clipboard API access from renderer processes. Code relying on clipboard access from renderer processes will break.
  • Debug symbol upload now uses tar.xz compression instead of dsym.zip, which might affect automated symbol upload pipelines.

Migration Steps

  1. If you rely on clipboard API access from renderer processes, move this logic to the main process.
  2. Review automated debug symbol upload scripts to ensure compatibility with tar.xz compression for dsym files.

✨ New Features

  • Added "memory-eviction" as a possible reason for a child process to exit.
  • Added RGBAF16 output format with scRGB HDR color space support to Offscreen Rendering.
  • Added app.isHardwareAccelerationEnabled() method.
  • Added bypassCustomProtocolHandlers option to net.request.
  • Added methods to enable more granular accessibility support management.
  • Added support for WebSocket authentication through the login event on webContents.
  • Added support to import external shared texture as VideoFrame.
  • Added the ability to retrieve the system accent color on Linux using systemPreferences.getAccentColor.
  • Allowed for persisting File System API grant status within a given session.
  • Automatically focus DevTools when an element is inspected or a breakpoint is triggered.
  • Enables resetting accent color to follow system accent settings if a previous color has been set via window.setAccentColor(null).
  • Support dynamic ESM imports in non-context isolated preloads.
  • Updated nativeImage.createFromNamedImage to support SF Symbol names.

🐛 Bug Fixes

  • Added support for --no-stdio-init when nul device is disabled on Windows.
  • Fixed an issue on Windows and Linux where no cookie encryption key provider was passed into the network service when cookie encryption was enabled.
  • Fixed an issue where no cookie encryption provider was passed into the network service when cookie encryption was enabled.
  • Fixed crash when attempting to resolve modules during process exit.
  • Fixed drag regions in child windows.
  • Fixed draw smoothing round corner issue.
  • Fixed the cookie encryption logic to use the old os_crypt sync implementation present in M142.
  • Fixed visual artifacts while resizing a window on Windows.
  • AccentColor set now distinguishes the frame.
  • Corrected the appearance of tiled windows on GNOME (when frame: true), and removed resize handles from tiled edges.
  • Fix: ESM-from-CJS import when CJK characters are in path.
  • Fix: runtime JS error that crashes GetPackage
  • Fixed Wayland configuration through the XDG_SESSION_TYPE environment variable.
  • Fixed Windows dialog.showMessageBox default button handling.
  • Fixed a Windows notification issue where clicking a native notification would result in an application hang on certain Windows environments.
  • Fixed a potential crash in dialog.showOpenDialog on Windows with an empty extension filter array.
  • Fixed an application crash when clicking or hovering over the native MacOS "Window" menu (Reverts #48598).

Affected Symbols