electron v14.0.0
·
217 commits
to 14-x-y
since this release
Release Notes for v14.0.0
Stack Upgrades
- Chromium 93.0.4577.58.
- Node v14.17.0.
- V8
Breaking Changes
- Child windows no longer inherit BrowserWindow construction options from their parents. #28550
- Deprecated
worldSafeExecuteJavaScript
option was removed fromwebPreferences
. #28456 - Removed deprecated
additionalFeatures
property fromnew-window
anddid-create-window
WebContents events. #28548 - Removed the deprecated
app.allowRendererProcessReuse
and BrowserWindowaffinity
options. #26874
Features
Additions
- Added
BrowserWindow.isFocusable()
to determine whether a window is focusable. #28642 - Added
WebFrameMain.visibilityState
instance property. #28706 - Added
disposition
,referrer
andpostBody
to the details object passed to the window open handler registered withsetWindowOpenHandler
. #28518 (Also in 13) - Added
process.contextId
used by@electron/remote
. #28007 (Also in 13) - Added experimental cookie encryption support behind an Electron Fuse. #29492 (Also in 13)
- Added missing
resourceType
conversions forwebRequest
listener details:font
,ping
,cspReport
,media
,webSocket
. #30050 - Added new
session.storagePath
API to get the path on disk for session-specific data. #28665 (Also in 13) - Added
webContents.fromDevToolsTargetId(targetId)
to lookup a WebContents instance from an associated Chrome DevTools Protocol TargetID. #30732 - Added support for Windows Control Overlay on macOS. #29986
- Added support for Windows Control Overlay on Windows. #30678 (Also in 15)
- Added support for debug URLs such as
chrome://gpucrash
. #29466 (Also in 13) - Added support for directing Chromium logging to a file with
--log-file=.../path/to/file.log
. Also, it's now possible to enable logging from JavaScript by appending command-line switches during the first JS tick. #29963 - Added support for the des-ede3 cipher in node crypto. #27897 (Also in 11, 12, 13)
- Adding
ContextBridgeMutability
feature that skips context bridgeDeepFreeze
andSetReadOnlyNonConfigurable
when exposing a value. #27348
Improvements
- Improved performance characteristics of functions being sent back and forth over the contextBridge. #28285
- Improved performance of
napi_threadsafe_function
. #29021 (Also in 12, 13)
Removed/Deprecated
- The
submitURL
option forcrashReporter.start
is no longer a required argument whenuploadToServer
is false. #28105 (Also in 13)
Fixes
- Allow Node.js to manage microtasks queue by using explicit microtasks policy before calling
uv_run()
. #28957 (Also in 11, 12, 13) - Allow loading source maps from custom protocols and asar bundles. #28573 (Also in 12, 13)
- Child windows with specified background colors or transpency now work as intended. #28054 (Also in 12, 13)
- Colors returned from
systemPreferences.getAccentColor()
,getSystemColor
andgetColor
are now correctly converted into the devices color space. Previously the color would have been subtly incorrect. #28121 (Also in 11, 12, 13) - Electron Fuses are now in a consistent order across platforms. #29616 (Also in 13)
- Fixed an issue where
fs.promises.readFile
would improperly error when passing aFileHandle
to thepath
argument. #29577 (Also in 12, 13) - Fixed CORS preflight request always being cancelled when connecting via proxy requiring authentication for apps that had registered WebRequest listeners. #29812 (Also in 12, 13)
- Fixed
<webview>
focus
/blur
events not working withcontextIsolation
enabled. #29004 (Also in 10, 11, 12, 13) - Fixed
desktopCapturer.getSources()
promise result sometimes never resolving. #28273 (Also in 10, 11, 12, 13) - Fixed
documentEdited
status not updating close button for frameless window on macOS. #30391 (Also in 13, 15) - Fixed
postData
parameter missing fromnew-window
event. #28513 (Also in 12, 13) - Fixed
requestFullscreen
inside webview does not make the element take fullscreen. #29989 (Also in 12, 13) - Fixed
select-bluetooth-device
firing on Windows. #29613 (Also in 12, 13) - Fixed
webFrame
spell checker APIs crashing when called in sandboxed renderer. #29053 (Also in 12, 13) - Fixed
will-resize
andwill-move
events not scaling the emittednewBounds
rectangle to the appropriate Windows display scale factor. #29162 (Also in 11, 12, 13) - Fixed a bug where, when a JumpList task description exceeded 260 characters, the JumpList was empty, despite valid entries. #28485 (Also in 11, 12, 13)
- Fixed a crash in the repl when
SharedArrayBuffer
is disabled. #30484 - Fixed a crash when
process.exit
is called andnativeWindowOpen
is enabled. #30235 (Also in 15) - Fixed a crash when calling
shell.trashItem()
from the renderer process. #28748 (Also in 12, 13) - Fixed a crash when calling the
webContents.on('login')
callback synchronously. #30090 (Also in 12, 13) - Fixed a feature flag issue where spellchecker methods returned empty suggestion lists on Windows. #29705 (Also in 13)
- Fixed a hang when denying a
window.open
usingsetWindowOpenHandler
whennativeWindowOpen: false
. #29883 (Also in 12, 13) - Fixed a network process crash that could happen when using
setCertificateVerifyProc
with many concurrent verification requests. #28358 (Also in 11, 12, 13) - Fixed a potential crash that would occur with draggable regions on Windows. #30327 (Also in 13, 15)
- Fixed a potential crash when calling
app.quit()
on macOS. #29962 (Also in 12, 13) - Fixed a potential crash when setting vibrancy on macOS. #29723 (Also in 13)
- Fixed an issue on Mac where an application could not capture its own window using the desktop capture or getMediaSourceId APIs. #30524 (Also in 13, 15)
- Fixed an issue on Windows where empty console windows were appearing when
--enable-logging
was present. #30385 (Also in 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
. #30561 (Also in 12, 13, 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). #30541 (Also in 13, 15) - Fixed an issue where BrowserWindows would not properly honor
transparency: true
or abackgroundColor
being set in their constructor options. #30159 - Fixed an issue where Electron would sometimes not honor the user-defined Downloads directory. #29967 (Also in 12, 13)
- Fixed an issue where
BrowserView
webContents would appear not to load in some circumstances. #30335 (Also in 15) - Fixed an issue where
beforeunload
andunload
weren't firing properly inBrowserView
s. #28382 - Fixed an issue where
illegal access error
could be thrown whennodeIntegrationInSubFrames
is enabled. #29093 (Also in 12, 13) - Fixed an issue where
select-serial-port
callback crashes when called with an invalid serial port ID. #28602 (Also in 12, 13) - Fixed an issue where
self.module.paths
wouldn't work in Workers. #30014 (Also in 12, 13) - Fixed an issue where the TouchBarScrubber crashes when
showArrowButtons
is enabled ifitems
is an empty array. #30679 (Also in 13, 15) - Fixed an issue where toggling
documentEdited
status on macOS withtitlebarStyle: 'hiddenInset'
inadvertently moves the traffic light location. #30605 (Also in 13, 15) - Fixed an issue where
win.capturePage()
never called back after callinghide()
for a hidden window on some platforms. #27883 (Also in 11, 12, 13) - Fixed an issue where
window.print()
did not work properly when printing a pdf from the pdf plugin. #28328 (Also in 12, 13) - Fixed an issue where a specified aspect ratio could become incorrect when maximizing a window on macOS. #30331 (Also in 12, 13, 15)
- Fixed an issue where custom traffic lights could be covered by BrowserViews on macOS. #29628 (Also in 13)
- Fixed an issue where drag regions on macOS would be offset incorrectly when no drag regions were set,. #28984 (Also in 11, 12, 13)
- Fixed an issue where draggable regions sometimes did not work properly when DevTools is open. #29735 (Also in 12, 13)
- Fixed an issue where dropdown menus did not work in DevTools when
contextIsolation
was enabled. #29886 (Also in 13) - Fixed an issue where errors thrown in functions passed over the
contextBridge
could be displayed incorrectly. #28346 (Also in 12, 13) - Fixed an issue where extensions without a background page might not have file access. #29123 (Also in 12, 13)
- Fixed an issue where multiple calls to
window.setFullScreen
could cause problems. #25470 (Also in 11, 12, 13) - Fixed an issue where request headers were cleared if the optional "requestHeaders" parameter was not included in the webRequest.onBeforeSendHeaders callback response object. #29835 (Also in 12, 13)
- Fixed an issue where right-clicking in the devtools console throws an error. #29472
- Fixed an issue where some Node.js modules would hang on page reload on Windows. #28175 (Also in 11, 12, 13)
- Fixed an issue where some dialogs would stop working on macOS if
window.hide()
was called while they were open. #28671 (Also in 11, 12, 13) - Fixed an issue where the
setAlwaysOnTop
value would sometimes not be preserved for child windows on macOS. #29855 (Also in 12, 13) - Fixed an issue where the drag regions in BrowserViews on macOS could be off in their y-axis. #28268 (Also in 10, 11, 12, 13)
- Fixed an issue where the thumbar disappeared after
win.hide()
on Windows. #28366 (Also in 10, 11, 12, 13) - Fixed an issue where the traffic lights would get double-drawn when exiting fullscreen and adding a
BrowserView
on macOS. #30150 (Also in 13) - Fixed an issue where the user-data directory was incorrect in unpackaged apps. #30142
- Fixed an issue where the void function
Menu.setApplicationMenu
would return a value on some platforms. #29118 (Also in 12, 13) - Fixed an issue where the window couldn't be closed if a user tried to quit with a message box showing. #28967 (Also in 12, 13)
- Fixed an issue where windows in
simpleFullscreen
mode were not properly resizing when display metrics changed. #28150 (Also in 11, 12, 13) - Fixed an issue with PDF loading on Windows, where metadata was not loading correctly and causing the PDF to load as a blank page. #29831 (Also in 13)
- Fixed
app.getPath('logs')
returning the wrong path on Linux and Windows. #29865 - Fixed beta-only bug that caused mouse clicks to not be processed in frameless windows. #30459 (Also in 15)
- Fixed context menus not being positioned correctly when near the edge of the screen. #28224 (Also in 11, 12, 13)
- Fixed corner radius for vibrancy view in macOS 11. #28655 (Also in 11, 12, 13)
- Fixed crash when an exception occurs within the event emitter. #28971 (Also in 13)
- Fixed crash when calling
getBackgroundColor
on a transparent window with no assigned background color. #28120 (Also in 11, 12, 13) - Fixed crash when clicking links with
target=_blank
from webview. #29949 (Also in 12, 13) - Fixed crashes in debug builds caused by microtasks policy mismatch. #29809 (Also in 12, 13)
- Fixed crashes on latest gen Intel and Ryzen processors. #29688
- Fixed crashes on macOS when
Geolocation
was used. #29914 (Also in 13) - Fixed failing to request file:// resources when web security is disabled. #28489 (Also in 11, 12, 13)
- Fixed frameless window having wrong traffic lights position on macOS 11. #30269 (Also in 13, 15)
- Fixed hover state not clear bug when BrowserWindow is not resizable. #29801 (Also in 12, 13)
- Fixed incorrect value of
document.focus
when opening multiple windows on macOS. #29204 (Also in 12, 13) - Fixed intensive I/O from asar files causing ERR_FILE_NOT_FOUND after a while. #28137 (Also in 11, 12, 13)
- Fixed issue where the update permission prompt would cause 100% CPU spin while the prompt was open. #29806 (Also in 13)
- Fixed key window status on mac when opening panels or using custom window switchers. #30066 (Also in 12)
- Fixed media key
globalShortcut
s on macOS. #30569 (Also in 15) - Fixed memory leak when creating notification on macOS. #30008 (Also in 12, 13)
- Fixed memory leak when requesting files in ASAR archive from renderer. #29536 (Also in 12, 13)
- Fixed missing 'fetch' event in service workers for requests using a registered protocol. #29440 (Also in 12, 13)
- Fixed native module compilation with AsyncCleanupHooks on windows. #28067 (Also in 11, 12, 13)
- Fixed page title not being updated on child windows without navigation entries under nativeWindowOpen. #29959 (Also in 12, 13)
- Fixed permissions issue that was preventing the PDF viewer from displaying. #29210 (Also in 13)
- Fixed potential corruption of piped response data when using interceptHttpProtocol/registerHttpProtocol. #29670 (Also in 11, 12, 13)
- Fixed pressing Alt with mouse click results in toggling menu bar. #29452 (Also in 12, 13)
- Fixed pressing ESC not exiting fullscreen from
webview
. #30127 (Also in 12, 13) - Fixed pressing
Alt+Shift
andAlt+Ctrl
toggling menu bar on KDE. #29444 (Also in 12, 13) - Fixed rare crash in UpdateDraggableRegions. #30559 (Also in 13, 15)
- Fixed rare crash when initializing the internal PDF extension. #28432 (Also in 12, 13)
- Fixed redirects between locations in custom protocols. #30156
- Fixed sending intermediate certificates with 'select-client-certificate' event callback. #29570 (Also in 12, 13)
- Fixed service worker not working with custom protocol. #28326 (Also in 11, 12, 13)
- Fixed shifted character getting changed in menu accelerator. #29481 (Also in 12, 13)
- Fixed some console messages still being printed to logs when the LogJsConsoleMessages feature was disabled. #30355 (Also in 15)
- Fixed stack overflow crash in v8 on windows 32-bit builds. #30242 (Also in 12, 13, 15)
- Fixed systemPreferences.getSystemColor returning colors missing alpha values. #30087 (Also in 13)
- Fixed the 'did-fail-load' event not being emitted when the 'certificate-error' handler allowed an error through. #29870
- Fixed the
<select>
element dropdown not appearing on Windows or Linux. #29771 - Fixed the color select eyedropper not working within DevTools. #29752 (Also in 13)
- Fixed the handler set with
setWindowOpenHandler
not being invoked when a link was middle-clicked or shift-clicked. #28498 (Also in 12, 13) - Fixed the possibility for incorrect visual artifacts when using vibrancy and making frameless windows fullscreen on macOS. #29084 (Also in 13)
- Fixed the spelling of 'attachment' in 'Content-Disposition' header when using the webRequest module. #29673 (Also in 12, 13)
- Fixed the window-all-closed event being emitted while the last BrowserWindow was still in the process of being closed. #28867 (Also in 11, 12, 13)
- Fixed titlebar showing under simple fullscreen mode. #30707 (Also in 13, 15)
- Fixed tray.setTitle not respecting ANSI colors if a font type was specified. #30164 (Also in 13)
- Fixed using custom v8 snapshots on Apple Silicon. #29338 (Also in 12, 13)
- Fixed using navigator.setAppBadge and navigator.clearAppBadge from a service worker in Electron. #27950 (Also in 12)
- Fixed using vibrancy with titleBarStyle together resulting in weird window shadow on macOS. #29114 (Also in 13)
- No longer set backgroundColor in default-app when opening custom files / URLs. #28792 (Also in 10, 11, 12, 13)
- Restored cross-platform noop implementation of
app.setAppUserModelId
. #28915 (Also in 13) - Support
wasm-eval
csp behindWebAssemblyCSP
flag. #28535 (Also in 11, 12, 13) - Transparent windows cannot be maximized using the Windows system menu or by double clicking the title bar. #28207 (Also in 12, 13)
- URLS passed to
shell.openExternal
on windows are now correctly URI encoded. This was already occurring on macOS and Linux. #28334 (Also in 10, 11, 12, 13)
Other Changes
- Backported fix for 1216190. #30101 (Also in 12, 13)
- Refactored
<webview>
usingcontextBridge
to make it safer to use whencontextIsolation
is enabled. #29037 - Updated community discussions link in default Electron menu. #28449 (Also in 12, 13)
- Web Serial API is no longer experimental. #30333 (Also in 15)
Documentation
- Documentation changes:
End of Support for 11.x.y
Electron 11.x.y has reached end-of-support as per the project's support policy. Developers and applications are encouraged to upgrade to a newer version of Electron.