Skip to content

Conversation

@depfu
Copy link
Contributor

@depfu depfu bot commented Oct 11, 2023

Here is everything you need to know about this upgrade. Please take a good look at what changed and the test results before merging this pull request.

What changed?

✳️ electron (^8.2.5 → ^27.0.0) · Repo

Release Notes

27.0.0

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.

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github.

Sorry, we couldn't find anything useful about this release.


Depfu Status

Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.

All Depfu comment commands
@​depfu rebase
Rebases against your default branch and redoes this update
@​depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@​depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@​depfu cancel merge
Cancels automatic merging of this PR
@​depfu close
Closes this PR and deletes the branch
@​depfu reopen
Restores the branch and reopens this PR (if it's closed)
@​depfu pause
Ignores all future updates for this dependency and closes this PR
@​depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@​depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)

@depfu depfu bot added the depfu label Oct 11, 2023
@depfu
Copy link
Contributor Author

depfu bot commented Oct 20, 2023

Closed in favor of #221.

@depfu depfu bot closed this Oct 20, 2023
@depfu depfu bot deleted the depfu/update/npm/electron-27.0.0 branch October 20, 2023 00:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant