Stack Upgrades
- Chromium 100.0.4896.56
- Node v16.13.2
- V8 v10.0
Breaking Changes
- Removed the old
BrowserWindowProxy
-based implementation ofwindow.open
. This also removes thenativeWindowOpen
option fromwebPreferences
. #29405
Features
Additions
- Added ‘focus’ and ‘blur’ events to
WebContents
. #25873 - Added
BrowserWindow
method to change the button color, symbol color, and height of a window with WCO enabled. #33440 - Added
nativeTheme.inForcedColorsMode
API to allow detecting forced color mode. #33357 (Also in 15, 16, 17) - Added Substitutions menu roles on macOS:
showSubstitutions
,toggleSmartQuotes
,toggleSmartDashes
,toggleTextReplacement
. #32024 - Added
first-instance-ack
event to theapp.requestSingleInstanceLock()
flow, so that users can pass some data back from the second instance to the first instance. #31460 - Added
height
option for Windows Control Overlay. #31222 (Also in 15, 16, 17) - Added
ses.setCodeCachePath()
API for setting code cache directory. #33286 (Also in 17) - Added rawHeaders to IncomingMessage. #31853
- Added support for more color formats in
setBackgroundColor
. #33364 - Added warning that preload scripts will be sandboxed by default beginning in Electron 20. #33203
- Support obsolete blowfish ciphers bf-{cbc,cfb,ecb} through the Node.js crypto API. #32356 (Also in 17)
Fixes
- Fixed a V8 crash that could happen randomly in non-sandboxed renderer processes. #33260
- Fixed a bug where
BrowserWindow.fromWebContents
would returnundefined
during thebrowser-window-created
event. #33316 - Fixed an issue where First Party Sets were not correctly loaded on app launch. #33345
- Fixed an issue where new bounds set via
setBounds
was not correctly applied if the user was moving or resizing the window concurrently on Windows. #33375 - Fixed an issue where pages would not properly print on macOS due to a rendering failure. #32813
- Fix: initialize asar support in worker threads. #33396
- Fixed the IncrementCapturerCount regression introduced by 13.0.0-beta.21. #33371
Also in earlier versions….
- Allowed specifying x64 arch on Mac Rosetta via
npm_config_arch
. #32266 (Also in 15, 16, 17) - Assertion failure happening in the
showSaveDialogSync()
code path has been fixed. (Fixes #31997). #32049 (Also in 14, 15, 16, 17) - Bug fixed for registering protocol in windows which used to set invalid command if the execution path included space. #32220 (Also in 14, 15, 16, 17)
- Fire ‘show’ event when a BrowserWindow is shown via maximize(). #33214 (Also in 16, 17)
- Fixed BrowserWindow.showInactive restoring a maximized window to non-maximized on Windows. #33022 (Also in 16, 17)
- Fixed VoiceOver not reading typed words correctly in MAS builds. #32543 (Also in 17)
- Fixed
maxWidth
not working in BrowserWindow constructor options. #32628 (Also in 17) - Fixed
window.open
not overriding parent’swebPreferences
. #32057 (Also in 15, 16, 17) - Fixed a crash caused by app.getLocaleCountryCode(). #32256 (Also in 15, 16, 17)
- Fixed a crash that occurred when a user attempted to print a document either with
window.print()
, the print button in the PDF viewer, or withBrowserWindow.webContents()
and clicked cancel in the resulting print dialog. #32632 (Also in 17) - Fixed a crash that occurred when user attempted to download an edited PDF. #32512 (Also in 15, 16, 17)
- Fixed a crash when starting VoiceOver on macOS. #32564 (Also in 17)
- Fixed a network service crash that could occur when using setCertificateVerifyProc. #33253 (Also in 17)
- Fixed a potential crash in v8 by using allocation type: kOld in v8 ScriptOrModule legacy lifetime. #32339 (Also in 17)
- Fixed a potential crash when importing media files or custom file types. #31881 (Also in 16, 17)
- Fixed a potential issue when setting backgroundColor on
BrowserView
s. #31863 (Also in 14, 15, 16, 17) - Fixed an issue that the
alert()
dialog title is corrupted. #32434 (Also in 14, 15, 16, 17) - Fixed an issue where BrowserView layout bounds where limited to it’s visible bounds. #33399 (Also in 17)
- Fixed an issue where Chrom DevTools settings didn’t persist between loads. #33206 (Also in 17)
- Fixed an issue where
alternateImage
s did not work properly on macOS. #33107 (Also in 15, 16, 17) - Fixed an issue where
ipcRenderer.postMessage
would throw errors when thetransfer
argument was not passed. #32433 (Also in 14, 15, 16, 17) - Fixed an issue where
webContents.openDevTools({ mode })
did not work for certain dock positions. #32946 (Also in 17) - Fixed an issue where
webContents.savePage
failed when passing a relative path instead of an absolute one. #33019 (Also in 15, 16, 17) - Fixed an issue where adding/removing display changes the BrowserWindow size. #33250 (Also in 14, 15, 16, 17)
- Fixed an issue where calling screen capture on macOS does not properly release underlying OS capture mechanisms. #32435 (Also in 17)
- Fixed an issue where clicking “Open in Containing Folder” in the Sources tab in Devtools caused a crash. #33197 (Also in 16, 17)
- Fixed an issue where frameless vibrant windows would not show transparency correctly on macOS. #32593 (Also in 16, 17)
- Fixed an issue where frameless windows on Windows would incorrectly show a small frame during the loading process. #32714 (Also in 14, 15, 16, 17)
- Fixed an issue where if
backgroundColor
was set toundefined
, vibrancy failed to work and thebackgroundColor
would show up as white. #32517 (Also in 16, 17) - Fixed an issue where setting window
maxHeight
ormaxWidth
made it so the width and height could no longer be resized. #33119 (Also in 17) - Fixed an issue where the ‘maximize’ and ‘unmaximize’ events didn’t fire properly on linux. #32441 (Also in 14, 15, 16, 17)
- Fixed an issue where the Tray could get garbage collected incorrectly under some circumstances. #33074 (Also in 15, 16, 17)
- Fixed an issue with transparent windows failing to fire the
maximize
andunmaximize
events on Windows. #32643 (Also in 17) - Fixed an occasional crash on Mac when spawning a child process. #33117 (Also in 17)
- Fixed aspect ratio resize for frameless windows on macOS. #32287 (Also in 15, 16, 17)
- Fixed broken event loop in renderer process when process reuse is enabled on windows platform. #33361 (Also in 16, 17)
- Fixed broken transparency option in offscreen window rendering. #33053 (Also in 16, 17)
- Fixed command string registered via setAsDefaultProtocolClient on windows. #33013 (Also in 14, 15, 16, 17)
- Fixed console windows from ELECTRON_RUN_AS_NODE instances. #31963 (Also in 16, 17)
- Fixed crash in the render process on reload with pending node fs.promises. #33302 (Also in 15, 16, 17)
- Fixed crash when calling
webContents.setZoomFactor(1.0)
. #32604 (Also in 13, 14, 15, 16, 17) - Fixed crash when playing media files on Windows 7/8 or macOS 10.11/10.12. #32046 (Also in 13, 14, 15, 16, 17)
- Fixed drag regions on WCO windows on Windows. #33202 (Also in 15, 16, 17)
- Fixed effect when hovering over window controls on Windows in a WCO-enabled window. #32723 (Also in 14, 15, 16, 17)
- Fixed incorrect
skipTransformProcessType
option parsing inwin.setVisibleOnAllWorkspaces()
. #32364 (Also in 13, 14, 15, 16, 17) - Fixed incorrect external memory allocation tracking in nativeImage module. #33305 (Also in 15, 16, 17)
- Fixed issue where not all serial devices were exposed to the handler specified by
session.setDevicePermissionHandler
. #32651 (Also in 17) - Fixed maximizing frameless windows by double-clicking on a draggable (title bar) region. #33446 (Also in 15, 16, 17)
- Fixed minimized BrowserWindow being restored by BrowserWindow.unmaximize(). #32438 (Also in 14, 15, 16, 17)
- Fixed possible race conditions between frame state and electron ipc. #32851 (Also in 17)
- Fixed potential crash on Windows and Linux when using
desktopCapturer.getSources
. #32052 (Also in 16, 17) - Fixed regression where console windows would open for execSync and some spawnSync calls for Windows users. #32340 (Also in 16, 17)
- Fixed respecting aspect ratio when maximum size is set on BrowserWindow. #29101 (Also in 14, 15, 16, 17)
- Fixed slowness when using child_process.spawn and related methods on macOS Big Sur and newer. #33407 (Also in 16, 17)
- Fixed stale renderer process when application is quit while renderer is busy. #32971 (Also in 14, 15, 16, 17)
- Fixed windows with
roundedCorners: false
unable to be closed. #32597 (Also in 15, 16, 17) - Strip crashpad_handler binary on Linux, reducing bundle size. #33175 (Also in 15, 16, 17)
- Strip symbols from crashpad_handler binary on Linux, reducing bundle size. #32540 (Also in 15, 16, 17)
- The
<webview>
implementation was made more robust, it no longer breaks whenwill-attach-webview
handler modifies the internalparams.instanceId
. #32386 (Also in 16, 17) - Theoretical fix for a crash we’re seeing when closing multiple child windows at the same time on macOS. #33284 (Also in 17)
Other Changes
- Updated Chromium to 100.0.4896.56. #33475
- Updated node types version. #33477
- Chore: backport EPROTOTYPE fixes from libuv. #32944 (Also in 16, 17)
Documentation
End of Support for 14.x.y
Electron 14.x.y has reached end-of-support. As per Electron’s new 8-week cadence, we are supporting the latest four versions of Electron until May 2022, with the release of Electron 19. After Electron 19 is released, we’ll return to supporting the latest three major versions, as well as the alpha, beta, and nightly releases.
E18 (Mar’22) | E19 (May’22) |
---|---|
18.x.y | 19.x.y |
17.x.y | 18.x.y |
16.x.y | 17.x.y |
15.x.y | — |