Release Notes for v16.0.0
Stack Upgrades
- Chromium 96.0.4664.4
- Node v16.9.1
- V8 v9.6
Breaking Changes
- The
crashReporter
API is now powered by Crashpad on Linux. #30278 - Usage of the
desktopCapturer.getSources
API from the renderer process has been deprecated and will be removed. 30721
Release Notes for v16.0.0
Features
Additions
- Added 'dom-ready' event to
WebFrameMain
which emits when the frame's document is ready. - Added WebHID support. #31090 (Also in 15)
- Added
<webview>.sendToFrame()
/frameId
to'ipc-message'
event. #30451 (Also in 15) - Added
<webview>
'did-redirect-navigation'
event. #30457 (Also in 15) - Added
app.configureHostResolver
API for configuring DNS-over-HTTPS. #30576 (Also in 15) - Added
commandLine.removeSwitch
to allow apps to remove command line switches from Chromiums internal command line representation. #31327 (Also in 15) - Added
frame
property to theparams
object of the 'context-menu' event. #30831 (Also in 15) - Added
isIssuedByKnownRoot
toses.setCertificateVerifyProc
callback. #30174 - Added
isMainFrame
argument to'certificate-error'
event. #30879 (Also in 15) - Added
safeStorage
string encryption API. #30020 (Also in 15) - Added
textWidth
option todialog.showMessageBox()
/dialog.showMessageBoxSync()
. #31089 (Also in 15) - Added
webContents.fromDevToolsTargetId(targetId)
to lookup a WebContents instance from an associated Chrome DevTools Protocol TargetID. #29399 (Also in 14) - Added an Electron Fuse for enforcing code signatures on the
app.asar
file your application loads. Requires the latestasar
module. #30667 (Also in 15) - Added fuses to disable
NODE_OPTIONS
and--inspect
debug arguments in packaged apps. #30190 (Also in 15) - Added new data parameter to
app.requestSingleInstanceLock()
. #31444 - Added support for Windows Control Overlay on Windows. #29600 (Also in 14, 15)
- Added support for the U2F Web API. #30438
- Added warning when
ipcRenderer.sendSync()
is called with no listeners for channel onipcMain
. #31435 (Also in 13, 14, 15)
Improvements
- Began passing securityOrigin in details for permission request handlers for media requests in addition to permission check handlers. #31416 (Also in 13, 14, 15)
- Clicking a hyperlink in a PDF now does what you'd expect. #30069
- Emit a warning when setting a crash key name longer than the maximum allowed length. #30742
- Enabled sandboxing by default on WebContents which do not use Node or preloads. #30197
- NativeImage objects are now serializable over IPC. #30729
- The
crashReporter
API is now powered by Crashpad on Linux. #30278
Removed/Deprecated
- Usage of the
desktopCapturer.getSources
API from the renderer process has been deprecated and will be removed. #30721
Fixes
- Enables support for
navigator.keyboard.lock()
. #31621 - Fixed
<webview>
background transparency regression. #31728 - Fixed
BrowserView.setBackgroundColor()
not working correctly. #31772 - Fixed an issue where some transparent windows would show with a white background. #31003
- Fixed an issue where transparency was not always set correctly on webContents. #31700
- Fixed an issue where windows with vibrancy types set on them would incorrectly have a white instead of transparent background. #31537
- Fixed behaviour on posix when passing lists into
app.requestSingleInstanceLock(additionalData)
API. #31708 - Fixed crash in webview creation caused by UAF in the browser process. #24344
- Fixed crash when using singleton api with packaged apps on macOS. #31612
- Fixed detached DevTools window not closing when a menu item with the toggleDevTools role was triggered. #29922
- Fixed imageAnimationPolicy not being respected. #30403
- Having a secure CSP will no longer cause a CSP violation warning to appear in console. #31589
~/.config/{App Name}
will no longer be incorrectly deleted if it is a symlink on unix systems. #31852
Also in earlier versions....
- Changed WebHID to use
disable-hid-blocklist
flag to enable FIDO devices. #31650 (Also in 15) - Fixed "Failed to serialize arguments" error when emitting 'context-menu' event for webview. #31278 (Also in 15)
- Fixed Let's Encrypt DST Root CA X3 certificate expiration. #31217 (Also in 12, 13, 14, 15)
- Fixed
clipboard.writeBuffer()
,clipboard.readBuffer()
andclipboard.read()
's ability to manipulate platform-specific clipboard formats. #31719 (Also in 15) - Fixed
documentEdited
status not updating close button for frameless window on macOS. #30322 (Also in 13, 14, 15) - Fixed a JavaScript exception from webContents if render frame was disposed in WebFrameMain, resets the value of
render_frame_disposed_
after updating render frame host. #31427 (Also in 14, 15) - Fixed a crash in
navigator.fonts.query()
. #30930 (Also in 14, 15) - Fixed a crash in the repl when
SharedArrayBuffer
is disabled. #30456 (Also in 14) - Fixed a crash when
process.exit
is called andnativeWindowOpen
is enabled. #30218 (Also in 14, 15) - Fixed a crash when a
BrowserWindow
is closed subsequent to itswebContents
being destroyed. #31646 (Also in 14, 15) - Fixed a crash when selecting files in a native file dialog on Windows and Linux. #30916 (Also in 15)
- Fixed a potential crash that would occur with draggable regions on Windows. #30304 (Also in 13, 14, 15)
- Fixed a potential crash when setting
nativeTheme.themeSource
on macOS. #31430 (Also in 14, 15) - Fixed a tracing agent-related crash when initializing Node.js in service workers. #31477 (Also in 14, 15)
- Fixed an issue on Mac where an application could not capture its own window using the desktop capture or getMediaSourceId APIs. #30507 (Also in 13, 14, 15)
- Fixed an issue on Windows where empty console windows were appearing when
--enable-logging
was present. #30375 (Also in 14, 15) - Fixed an issue present in
webView
where theleave-html-full-screen
event is not emitted if the user exits fullscreen withesc
instead of by clicking into thewebView
. #30537 (Also in 12, 13, 14, 15) - Fixed an issue where BrowserView dragging behavior was inconsistent with MacOS window dragging. #31178 (Also in 13, 14, 15)
- Fixed an issue where
BrowserView
webContents would appear not to load in some circumstances. #29919 (Also in 14, 15) - Fixed an issue where
Content-Disposition
filenames would be incorrectly truncated at the first comma for a filename attachment which contained one. #31694 (Also in 13, 14, 15) - Fixed an issue where
MediaMetadata
did not work properly. #31535 (Also in 13, 14, 15) - Fixed an issue where
app.getPath('crashDumps')
returned an incorrect path for Linux. #31711 (Also in 15) - Fixed an issue where
clipboard.read()
could cause crashes with custom clipboard formats. #31592 (Also in 15) - Fixed an issue where a specified aspect ratio could become incorrect when maximizing a window on macOS. #30305 (Also in 12, 13, 14, 15)
- Fixed an issue where background color would not be correctly applied to
BrowserViews
on Windows when either thex
ory
coordinate is negative (off-screen). #30510 (Also in 13, 14, 15) - Fixed an issue where button labels in file choosers were improperly localized on Linux. #31067 (Also in 14, 15)
- Fixed an issue where changes to draggable regions in a
BrowserWindow
incorrectly affected those in an attachedBrowserView
. #31199 (Also in 13, 14, 15) - Fixed an issue where multiple calls to
BrowserWindow.setResizable()
can cause the zoom button to incorrectly be disabled on macOS. #30999 (Also in 14, 15) - Fixed an issue where non-resizable non-fullscreenable windows with aspect ratios set could return incorrect results for
isMaximized()
. #30989 (Also in 13, 14, 15) - Fixed an issue where out-of-focus BrowserViews could not be immediately dragged. #31101 (Also in 13, 14, 15)
- Fixed an issue where some calls to
crypto.createPrivateKey
made with algorithms unsupported by BoringSSL cause a crash when invoking methods on their return values. #31136 (Also in 15) - Fixed an issue where the TouchBarScrubber crashes when
showArrowButtons
is enabled ifitems
is an empty array. #30661 (Also in 13, 14, 15) - Fixed an issue where toggling
documentEdited
status on macOS withtitlebarStyle: 'hiddenInset'
inadvertently moves the traffic light location. #30565 (Also in 13, 14, 15) - Fixed an issue where undocked devtools was not resizable on Windows. #30823 (Also in 14, 15)
- Fixed an issue which caused print settings to not work properly when printing silently. #31615 (Also in 13, 14, 15)
- Fixed an potential crash in
WebContents::MessageTo
when a render frame has been destroyed. #31336 (Also in 13, 14, 15) - Fixed beta-only bug that caused mouse clicks to not be processed in frameless windows. #30447 (Also in 14, 15)
- Fixed black border around the page after resizing is disabled. #31080 (Also in 13, 14, 15)
- Fixed black window when screen capturing a content-protected BrowserWindow on Windows 10. #31386 (Also in 13, 14, 15)
- Fixed child windows not inheriting the correct transparency and background color settings. #31031 (Also in 14, 15)
- Fixed clipboard.read to once again work like clipboard.readBuffer. #31652 (Also in 15)
- Fixed crash caused by double free when destroying WebContents. #31132 (Also in 14, 15)
- Fixed crash caused by
GetHostNameW
on Windows 7. #31814 - Fixed crash in v8 due to
(Check failed: !regexp_stack_->is_in_use())
. #31145 (Also in 13, 14, 15) - Fixed crash when changing zoom level for webview. #31375 (Also in 14, 15)
- Fixed crash when using sync dialog APIs immediately after async dialog APIs. #31657 (Also in 15)
- Fixed default label text in GTK dialogs. #31824 (Also in 14, 15)
- Fixed default setting used when setting an insecure cookie on a secure site. #31839
- Fixed event with invalid timestamp in trace log. #31423 (Also in 14, 15)
- Fixed frameless window having wrong traffic lights position on macOS 11. #30263 (Also in 13, 14, 15)
- Fixed issue where non-resizable frameless windows aren't draggable. #31300 (Also in 13, 14, 15)
- Fixed media key
globalShortcut
s on macOS. #30552 (Also in 14, 15) - Fixed navigator.serial.getPorts() to return previously selected ports. #30209 (Also in 12, 13)
- Fixed possible 'Object has been destroyed' error when calling
window.open
with a frame name and usingsetWindowOpenHandler
. #31469 (Also in 14, 15) - Fixed potential crash when programatically closing a draggable frameless child window. #30571 (Also in 15)
- Fixed rare crash in UpdateDraggableRegions. #30556 (Also in 13, 14, 15)
- Fixed some console messages still being printed to logs when the LogJsConsoleMessages feature was disabled. #30312 (Also in 14, 15)
- Fixed stack overflow crash in v8 on windows 32-bit builds. #29474 (Also in 12, 13, 14, 15)
- Fixed titlebar showing under simple fullscreen mode. #30671 (Also in 13, 14, 15)
- Fixed transparent frameless windows having an opaque background when opened in a maximized state. #30804 (Also in 12, 13, 14, 15)
- Fixed window frame glitch when calling
setContentProtection
. #31832 (Also in 14) - Generate valid config.gypi file in Node.js headers. #31441 (Also in 14, 15)
- Fixed a crash when selecting and opening files in a native file dialog on Mac. #30935 (Also in 15)
- Removes several Chromium private enterprise APIs from Mac Apple Store builds. #31488 (Also in 12, 13, 14, 15)
Other Changes
- Backported fix for 1251688, 1219656. #31331
- Changed Web Serial to use
ses.setDevicePermissionHandler
to allow developers more control over Web Serial permissioning. #31324 (Also in 15) - Web Serial API is no longer experimental. #30237 (Also in 14, 15)
Documentation
End of Support for 12.x.y
Electron 12.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.
E16 (Nov'21) | E17 (Feb'22) | E18 (Mar'22) | E19 (May'22) |
---|---|---|---|
16.x.y | 17.x.y | 18.x.y | 19.x.y |
15.x.y | 16.x.y | 17.x.y | 18.x.y |
14.x.y | 15.x.y | 16.x.y | 17.x.y |
13.x.y | 14.x.y | 15.x.y | -- |