Electron Releases - v14.0.0

npm install electron@v14.0.0
yarn add electron@v14.0.0

Release Notes

Stack Upgrades

Breaking Changes

  • Child windows no longer inherit BrowserWindow construction options from their parents. #28550
  • Deprecated worldSafeExecuteJavaScript option was removed from webPreferences. #28456
  • Removed deprecated additionalFeatures property from new-window and did-create-window WebContents events. #28548
  • Removed the deprecated app.allowRendererProcessReuse and BrowserWindow affinity options. #26874

Features

Additions

  • Added BrowserWindow.isFocusable() to determine whether a window is focusable. #28642
  • Added WebFrameMain.visibilityState instance property. #28706
  • Added disposition, referrer and postBody to the details object passed to the window open handler registered with setWindowOpenHandler. #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 for webRequest 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 bridge DeepFreeze and SetReadOnlyNonConfigurable 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 for crashReporter.start is no longer a required argument when uploadToServer 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 and getColor 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 a FileHandle to the path 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 with contextIsolation 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 from new-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 and will-move events not scaling the emitted newBounds 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 and nativeWindowOpen 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 using setWindowOpenHandler when nativeWindowOpen: 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 the leave-html-full-screen event is not emitted if the user exits fullscreen with esc instead of by clicking into the webView. #30561 (Also in 12, 13, 15)
  • Fixed an issue where background color would not be correctly applied to BrowserViews on Windows when either the x or y coordinate is negative (off-screen). #30541 (Also in 13, 15)
  • Fixed an issue where BrowserWindows would not properly honor transparency: true or a backgroundColor 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 and unload weren't firing properly in BrowserViews. #28382
  • Fixed an issue where illegal access error could be thrown when nodeIntegrationInSubFrames 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 if items is an empty array. #30679 (Also in 13, 15)
  • Fixed an issue where toggling documentEdited status on macOS with titlebarStyle: 'hiddenInset' inadvertently moves the traffic light location. #30605 (Also in 13, 15)
  • Fixed an issue where win.capturePage() never called back after calling hide() 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 globalShortcuts 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 and Alt+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 behind WebAssemblyCSP 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> using contextBridge to make it safer to use when contextIsolation 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

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.