Skip to content

electron v27.0.0

Compare
Choose a tag to compare
@sudowoodo-release-bot sudowoodo-release-bot released this 10 Oct 03:10
· 115 commits to 27-x-y since this release
6de96fb

Release Notes for v27.0.0

Stack Upgrades

Breaking Changes

  • macOS 10.13 and 10.14 support has been removed 38891
  • The ipcRenderer.sendTo() API has been deprecated in favor of sharing a MessageChannel between two renderers. #39091
  • The senderId and senderIsMainFrame properties of IpcRendererEvent have been deprecated. #39381
  • The systemPreferences.getAppLevelAppearance and systemPreferences.setAppLevelAppearance APIs have been deprecated, as well as the alternate-selected-control-text value for systemPreferences.getColor. #39343 (Also in 26)
  • The systemPreferences.getAppLevelAppearance, systemPreferences.setAppLevelAppearance and systemPreferences.appLevelAppearance APIs have been removed, as well as the alternate-selected-control-text value for systemPreferences.getColor. #39804
  • The webContents.getPrinters API has been deprecated. #39356 (Also in 26)
  • The deprecated webContents.getPrinters() API has been removed. #39735
  • The deprecated color scheme changed events in systemPreferences have been removed. #39341

Features

Additions

  • Added safeStorage.setUsePlainTextEncryption and safeStorage.getSelectedStorageBackend api. #38873 (Also in 25, 26)
  • Added senderIsMainFrame to messages sent via ipcRenderer.sendTo(). #38868 (Also in 24, 25, 26)
  • Added a tabbingIdentifier property to BrowserWindow. #40082
  • Added a title parameter to webContents.openDevTools()to specify the DevTools window title. #39047
  • Added partial support for chrome.tabs.query. #39330 (Also in 25, 26)
  • Added support for --dns-result-order Node.js cli flag. #39376 (Also in 25, 26)
  • Added support for chrome.scripting extension APIs. #39675 (Also in 25, 26)
  • Added support for customization of the default math font along with other fonts. #38514
  • Added support for flagging a Menu as being keyboard initiated. #38903 (Also in 26)
  • Added support for several more Node.js cli flags in the main process. #39344 (Also in 24, 25, 26)
  • Added support for several more extensions manifest keys including host_permissions, author, and short_name. #39672 (Also in 26)
  • Added the ability to send HTTP headers with session.downloadURL(). #38785 (Also in 25, 26)
  • Added the ability to send HTTP headers with webContents.downloadURL(). #39560 (Also in 25, 26)
  • Added transparent color support for WCO on Windows. #38693 (Also in 25, 26)
  • BrowserWindow.getBrowserView() started to guarantee returning z-index sorted array. #38943
  • BrowserWindow.showAllTabs api added. #38965
  • Detect system dark theme preference via xdg settings portal on Linux. #40010 (Also in 25, 26)
  • Exposed an API to allow apps to determine whether to avoid using semitransparent backgrounds. #40074 (Also in 26)
  • Support Chrome Extensions minimum_chrome_version manifest key. #39256 (Also in 26)
  • node: prefixed requires are now supported in sandboxed renderer preloads for events, timers and url. #38567 (Also in 24, 25, 26)

Removed/Deprecated

  • The app.runningUnderRosettaTranslation property has been deprecated. #39984 (Also in 25, 26)
  • The enable_osr build flag has been removed. #38703
  • The enable_picture_in_picture build flag has been removed. #38620
  • The enable_run_as_node build flag has been removed in favor of the runAsNode fuse. #38413

Fixes

  • Fixed Windows Mica/Acrylic background material effects on frameless windows. #39802
  • Fixed an issue where window.open can interfere with various aspects of Node.js functionality. #38754
  • Fixed an issue where using webcrypto.subtle.importKey() could error and fail if SharedArrayBuffers are not defined. #40100
  • Fixed how screen readers are detected on Windows to reduce false positives. #40065
  • Fixed problem with promise resolved to early when browser intendent in-page navigation. #39260
  • Fixed same-party cookie functionality for first party sets. #39976
  • Fixed window size constraints not working on macOS. #39992
  • Prevent DWM from redrawing video frames rendered on opaque windows. #40003

Also in earlier versions...

  • Fixed BrowserView.setBounds calls not painting view in new bounds in some cases. #40037 (Also in 25, 26)
  • Fixed app.runningUnderARM64Translation() always returning true on ARM64. #39931 (Also in 25, 26)
  • Fixed clipboard.readImage() getting blocked when there is no PNG image in the clipboard. #39466 (Also in 26)
  • Fixed desktopCapturer thumbnail generation after screen sharing is cancelled on Wayland. #39194 (Also in 25, 26)
  • Fixed preload script may not run in some child windows opened by window.open. #38910 (Also in 23, 24, 25, 26)
  • Fixed webContents.printToPDF preferCSSPageSize type error. #38761 (Also in 24, 25, 26)
  • Fixed a crash calling nativeImage.resize() before the app ready event. #38836 (Also in 26)
  • Fixed a crash in. #39069 (Also in 26)
  • Fixed a crash seen when trying to change nativeTheme source during mara context menu close. #38824 (Also in 25, 26)
  • Fixed a crash when listing desktop capture sources on Wayland with PipeWire. #38833 (Also in 23, 24, 25, 26)
  • Fixed a potential crash calling BrowserWindow.removeBrowserView() with a destroyed webContents. #38842 (Also in 24, 25, 26)
  • Fixed a potential crash when calling BrowserWindow.moveTop() on modal child windows. #39499 (Also in 24, 25, 26)
  • Fixed a potential crash when calling tray.popUpContextMenu on macOS. #39231 (Also in 26)
  • Fixed a potential crash when re-parenting a BrowserWindow whose first parent has been destroyed. #39062 (Also in 26)
  • Fixed a rare crash when closing active native tab on macOS. #39394 (Also in 25, 26)
  • Fixed a redundant permission popup while fetching screens and windows using desktopCapturer.getSources() on Wayland. #39111 (Also in 26)
  • Fixed an accessibility issue where VoiceOver couldn't trigger the tray action when selected to emit the click event. #39352 (Also in 26)
  • Fixed an error where listening to certain chrome.tabs events would throw incorrectly. #39771 (Also in 25, 26)
  • Fixed an error with webContents.print parameter validation by adding missing options required to set printer printable area. #38614 (Also in 25, 26)
  • Fixed an issue on Windows 10 where the title bar was not correct after changing native theme. #39287 (Also in 25, 26)
  • Fixed an issue where BrowserWindows could crash on macOS with frame: false and roundedCorners: false when going fullscreen. #39796 (Also in 25, 26)
  • Fixed an issue where <datalist> popups are positions incorrectly in BrowserViews. #38489 (Also in 23, 24, 25, 26)
  • Fixed an issue where BrowserViews that had their bounds set prior to being added to a BrowserWindow could have unexpected incorrect offsets. #39627 (Also in 25, 26)
  • Fixed an issue where BrowserWindow.moveAbove() and BrowserWindow.moveTop() did not work for child windows on macOS. #39034 (Also in 24, 25, 26)
  • Fixed an issue where browserView.removeBrowserView could cause a crash in some cases. #39387 (Also in 24, 25, 26)
  • Fixed an issue where chrome.i18n did not work properly with Chrome Extensions Manifest V3. #39291 (Also in 24, 25, 26)
  • Fixed an issue where chrome.tabs.update did not return a tab object that properly reflected potential properties that were changed. #39365 (Also in 25, 26)
  • Fixed an issue where chrome://gpu failed to load. #39583 (Also in 25, 26)
  • Fixed an issue where protocol.handle() never called its callback with the 'file' scheme. #39048 (Also in 25, 26)
  • Fixed an issue where webContents.print() stopped triggering its callback when the user cancelled the print dialog. #38709 (Also in 25, 26)
  • Fixed an issue where webContents.print could fail when options is a frozen object. #40030 (Also in 25, 26)
  • Fixed an issue where accelerators representing DOM keys were not correctly converted in webContents.sendInputEvent(). #39822 (Also in 25, 26)
  • Fixed an issue where calling show() on a child BrowserWindow would show all other children attached to the same parent on macOS. #40105 (Also in 25, 26)
  • Fixed an issue where certain Electron classes had incorrect prototype class names. #39006 (Also in 25, 26)
  • Fixed an issue where certain properties of chrome.tabs Tab objects were not properly considered privileged. #39608 (Also in 25, 26)
  • Fixed an issue where child windows opened when the parent window is already fullscreen did not respect the child windows' fullscreenability and resizability settings. #39640 (Also in 24, 25, 26)
  • Fixed an issue where closing and opening a minimized DevTools window would not work as expected. #40116 (Also in 25, 26)
  • Fixed an issue where files could in some circumstances be selection when openFile was not passed as a dialog property. #38557 (Also in 24, 25, 26)
  • Fixed an issue where macOS traffic lights could malfunction on child windows in some circumstances. #39225 (Also in 24, 25, 26)
  • Fixed an issue where non-resizable windows incorrectly enabled the fullscreen/maximize button on initial window creation on macOS. #39086 (Also in 24, 25, 26)
  • Fixed an issue where notifications created on macOS which have no actions will erroneously have a Show button visible. #38997 (Also in 24, 25, 26)
  • Fixed an issue where passing webContents.print(null) could incorrectly trigger an error. #38612 (Also in 24, 25, 26)
  • Fixed an issue where pressing the escape key did not properly trigger PDF presentation mode exit. #39660 (Also in 26)
  • Fixed an issue where printing on Windows could trigger a crash. #38976 (Also in 25, 26)
  • Fixed an issue where removing a webview in a close callback could cause crashes. #38996 (Also in 24, 25, 26)
  • Fixed an issue where service workers could not run Chrome APIs in Chrome Extensions Manifest V3. #39290 (Also in 25, 26)
  • Fixed an issue where setting bounds on BrowserViews can behave inconsistently across platforms. #38981 (Also in 25, 26)
  • Fixed an issue where the Node.js assert module did not work in the renderer process. #39623 (Also in 24, 25, 26)
  • Fixed an issue where the pageVisibility API returned incorrect values in some situations when backgroundThrottling was disabled. #39223 (Also in 25, 26)
  • Fixed an issue where vibrant windows incorrectly have square corners when they're modals on macOS. #39996 (Also in 25, 26)
  • Fixed an issue with webContents.print({ silent: true }) not working correctly. #38741 (Also in 25, 26)
  • Fixed an issue with potential use-after-free of child windows on close and reparent. #38603 (Also in 24, 25, 26)
  • Fixed an issue with the application menu overlapping menu items on Windows 11. #38998 (Also in 25, 26)
  • Fixed asar integration for node:child_process imports. #38742 (Also in 24, 25, 26)
  • Fixed build failure when PDF viewer is disabled. #40001 (Also in 25, 26)
  • Fixed crash in message ports when utility process exits. #39335 (Also in 25, 26)
  • Fixed crash on shutdown in tls sockets with Node.js HTTP/2 connections. #39947 (Also in 25, 26)
  • Fixed decorations for tiled windows on Wayland. #39570 (Also in 22, 24, 25, 26)
  • Fixed devtools to allow restoring saved dock state on Windows. #39767 (Also in 25, 26)
  • Fixed display of title bar buttons on Wayland. #39003 (Also in 25, 26)
  • Fixed issue where titlebar would be transparent for transparent windows that are fullscreen. #39781 (Also in 25, 26)
  • Fixed minimize button to be visible when all buttons reenabled. #38860 (Also in 23, 24, 25)
  • Fixed missing type for Electron.TitleBarOverlay. #39806 (Also in 26)
  • Fixed potential invalid protocol error handling. #38587 (Also in 25, 26)
  • Fixed problem with promise resolved to early when browser initiated in-page navigation. #39680 (Also in 25, 26)
  • Fixed visibility of menu bar when exiting full screen. #38599 (Also in 23, 24, 25, 26)
  • Notes: Fixes an issue where chrome.tabs did not work properly with Chrome Extensions Manifest V3. #39317 (Also in 25, 26)
  • Support Region Capture API with tab MediaStream. #39619 (Also in 25, 26)

Other Changes

Documentation

Notices

End of Support for 22.x.y and 24.x.y

Electron 24.x.y has reached end-of-support as per the project's support policy.

Electron 22.x.y has also now reached end of life (see Farewell, Windows 7/8/8.1 for more details). All currently supported versions of Electron have dropped support for Windows 7/8/8.1.

Developers and applications are encouraged to upgrade to a newer version of Electron.