Electron v27.0.0
Release Notes
Stack Upgrades
Chromium
118.0.5993.32
Node
18.17.1
V8
11.8
Breaking Changes
macOS 10.13 and 10.14 support has been removed 38891
The
ipcRenderer.sendTo()
API has been deprecated in favor of sharing aMessageChannel
between two renderers. #39091The
senderId
andsenderIsMainFrame
properties ofIpcRendererEvent
have been deprecated. #39381The
systemPreferences.getAppLevelAppearance
andsystemPreferences.setAppLevelAppearance
APIs have been deprecated, as well as thealternate-selected-control-text
value forsystemPreferences.getColor
. #39343 (Also in 26)The
systemPreferences.getAppLevelAppearance
,systemPreferences.setAppLevelAppearance
andsystemPreferences.appLevelAppearance
APIs have been removed, as well as thealternate-selected-control-text
value forsystemPreferences.getColor
. #39804The
webContents.getPrinters
API has been deprecated. #39356 (Also in 26)The deprecated
webContents.getPrinters()
API has been removed. #39735The deprecated color scheme changed events in systemPreferences have been removed. #39341
Features
Additions
Added
safeStorage.setUsePlainTextEncryption
andsafeStorage.getSelectedStorageBackend
api. #38873 (Also in 25, 26)Added
senderIsMainFrame
to messages sent viaipcRenderer.sendTo()
. #38868 (Also in 24, 25, 26)Added a
tabbingIdentifier
property toBrowserWindow
. #40082Added a
title
parameter towebContents.openDevTools()
to specify the DevTools window title. #39047Added 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
, andshort_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 forevents
,timers
andurl
. #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. #38703The
enable_picture_in_picture
build flag has been removed. #38620The
enable_run_as_node
build flag has been removed in favor of therunAsNode
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. #38754Fixed an issue where using
webcrypto.subtle.importKey()
could error and fail ifSharedArrayBuffers
are not defined. #40100Fixed 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 bywindow.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 appready
event. #38836 (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 destroyedwebContents
. #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
androundedCorners: false
when going fullscreen. #39796 (Also in 25, 26)Fixed an issue where
<datalist>
popups are positions incorrectly inBrowserView
s. #38489 (Also in 23, 24, 25, 26)Fixed an issue where
BrowserViews
that had their bounds set prior to being added to aBrowserWindow
could have unexpected incorrect offsets. #39627 (Also in 25, 26)Fixed an issue where
BrowserWindow.moveAbove()
andBrowserWindow.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 atab
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 whenoptions
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 childBrowserWindow
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
Security: backported fix for CVE-2023-4863. #39823
Security: backported fix for CVE-2023-5217. #40022
Documentation
Documentation change
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.