Electron Releases

Filter by channel Filter by major release

Release Notes for v16.0.0

Stack Upgrades

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 'frame-created' event to WebContents which emits when a frame is created in the page. #29290 (Also in 15)
  • 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 the params object of the 'context-menu' event. #30831 (Also in 15)
  • Added isIssuedByKnownRoot to ses.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 to dialog.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 latest asar 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 on ipcMain. #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() and clipboard.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 and nativeWindowOpen is enabled. #30218 (Also in 14, 15)
  • Fixed a crash when a BrowserWindow is closed subsequent to its webContents 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 the leave-html-full-screen event is not emitted if the user exits fullscreen with esc instead of by clicking into the webView. #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 the x or y 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 attached BrowserView. #31199 (Also in 13, 14, 15)
  • Fixed an issue where multiple calls toBrowserWindow.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 if items is an empty array. #30661 (Also in 13, 14, 15)
  • Fixed an issue where toggling documentEdited status on macOS with titlebarStyle: '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 in GTK open dialog when trying to preview huge image files. #31821 (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 globalShortcuts 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 using setWindowOpenHandler. #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 --