Electron: v22.0.0 Release

Release date:
November 29, 2022
Previous version:
v22.0.0-nightly.20220928 (released September 28, 2022)
Magnitude:
911 Diff Delta
Contributors:
8 total committers
Data confidence:
Commits:

69 Features Released with v22.0.0

Top Contributors in v22.0.0

VerteDinde
trop[bot]
electron-roller[bot]
jkleinsc
sudowoodo-release-bot[bot]
clavin
deepak1556
MarshallOfSound

Directory Browser for v22.0.0

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

Release Notes for v22.0.0

Stack Upgrades

Breaking Changes

  • Added WebContents input-event event.
    • Deprecated BrowserWindow scroll-touch-* events. #35531
  • The deprecated new-window event has been removed. #34526

Features

  • Added LoadBrowserProcessSpecificV8Snapshot as a new fuse that will let the main/browser process load its v8 snapshot from a file at browser_v8_context_snapshot.bin. Any other process will use the same path as is used today. #35266 <span style="font-size:small;">(Also in 20, 21)</span>
  • Added WebContents.opener to access window opener.
    • Added webContents.fromFrame(frame) to get the WebContents corresponding to a WebFrameMain instance. #35140 <span style="font-size:small;">(Also in 21)</span>
  • Added app.getSystemLocale() method. #35697 <span style="font-size:small;">(Also in 21)</span>
  • Added contextBridge.exposeInIsolatedWorld(worldId, key, api) to expose an API to an isolatedWorld within a renderer from a preload script. #34974
  • Added webContents.close() method. #35509
  • Added webFrameMain.origin. #35438 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Added an app.getPreferredSystemLanguages() API to return the user's system languages. #36291 <span style="font-size:small;">(Also in 21)</span>
  • Added new UtilityProcess API to launch chromium child process with node integration. #36089
  • Added new WebContents event content-bounds-updated. #35533
  • Added new WebContents.ipc and WebFrameMain.ipc APIs. #34959 <span style="font-size:small;">(Also in 21)</span>
  • Added support for Web Bluetooth pin pairing on Linux and Windows. #35416 <span style="font-size:small;">(Also in 21)</span>
  • Added support for navigator.mediaDevices.getDisplayMedia via a new session handler, ses.setDisplayMediaRequestHandler. #30702
  • Added support for serialPort.forget() as well as a new event serial-port-revoked emitted when a given origin is revoked. #36062

Fixes

  • Added support for Webauthn discoverable keys (aka resident keys), allowing users to authenticate without first having to select or type a username. #35374
  • Enable crashpad for ELECTRON_RUN_AS_NODE processes on linux. #36483
  • Fixed click event and tooltip of Tray not working on Linux. #36472
  • Fixed an issue where frameless non-resizable windows showed a Windows 7 frame during startup. #36024
  • Fixed an issue with incomplete EventEmitter object in sandboxed renderer preload script. #35522
  • Fixed race condition during update on macOS that could result in TCC and Keychain errors. #36362
  • Removed unneeded --turbo-profiling-input argument from mksnapshot_args. #36463

Also in earlier versions...

  • Added a background to the WCO container to avoid rendering glitches. #35569 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Added support for Windows drop-down dialog extensions. #35618 <span style="font-size:small;">(Also in 18, 19, 20, 21)</span>
  • Default margin has been added in the code. #36073 <span style="font-size:small;">(Also in 21)</span>
  • Enable WCO maximize button when window enters tablet mode and is not already maximized. #35617 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Fixed uv_os_gethostname failing on Windows 7. #35702 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Fixed a bug where calling atob in the renderer process could fail under some circumstances. #35415 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Fixed a crash that occured when loading non-standard schemes from iframes. #35485 <span style="font-size:small;">(Also in 21)</span>
  • Fixed a crash when switching origins with emulation settings set. #35466 <span style="font-size:small;">(Also in 21)</span>
  • Fixed a drag-and-drop issue on macOS where items would be incorrectly moved instead of copied in some contexts. #35976 <span style="font-size:small;">(Also in 20, 21)</span>
  • Fixed a potential crash on WebWorker destruction. #35422 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Fixed a potential issue when calling webContents.printToPDF(). #36065 <span style="font-size:small;">(Also in 21)</span>
  • Fixed a potential memory leak. #35964 <span style="font-size:small;">(Also in 21)</span>
  • Fixed an edge case in app.isInApplicationsFolder() which would return false incorrectly in some cases. #35636 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Fixed an issue where DevTools could not be docked with Windows Control Overlay enabled. #35754 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Fixed an issue where WCO could occlude DevTools opened in any non-detached mode. #35209 <span style="font-size:small;">(Also in 18, 19, 20, 21)</span>
  • Fixed an issue where screen.getCursorScreenPoint() crashed on Wayland when it was called before a BrowserWindow had been created. #35503 <span style="font-size:small;">(Also in 21)</span>
  • Fixed an issue where serialPort.open() failed with NetworkError: Failed to open serial port.. #35306 <span style="font-size:small;">(Also in 21)</span>
  • Fixed an issue where app.relaunch loses args when execPath is specified. #35108 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Fixed an issue where calling app.dock.setIcon(/path/t/icon) would crash when called before the ready event on app. #36293 <span style="font-size:small;">(Also in 20, 21)</span>
  • Fixed an issue where frameless resizable windows showed Window 7 style frames while opening. #35189 <span style="font-size:small;">(Also in 18, 19, 20, 21)</span>
  • Fixed an issue where frameless windows with roundedCorners: false couldn't enter fullscreen without crashing. #35421 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Fixed an issue where part of the BrowserView could be cut off when calling setBounds on some windows. #34713 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Fixed an issue where some options were incorrectly ignored when using webContents.printToPDF(). #35993 <span style="font-size:small;">(Also in 21)</span>
  • Fixed crash in renderer when resuming system from sleep. #35322 <span style="font-size:small;">(Also in 18, 19, 20, 21)</span>
  • Fixed enable promise support with webFrameMain.executeJavaScript. #35292 <span style="font-size:small;">(Also in 20, 21)</span>
  • Fixed issue with history.back() in sandboxed iframes affecting parent browsing context. #35420 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Fixed on-screen-keyboard not hiding on input rendered in webview is blurred. #35983 <span style="font-size:small;">(Also in 20, 21)</span>
  • Fixed session.getBlobData never resolves with blob sizes > 65536. #35277 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Fixed spurious promise rejection in webContents.loadURL when navigating to a hash. #36151 <span style="font-size:small;">(Also in 20, 21)</span>
  • Fixed undefined details.requestingUrl from session.setPermissionCheckHandler. #35281 <span style="font-size:small;">(Also in 20, 21)</span>
  • Fixed v8 flags and desktop name in package.json does not hornored when running local app using electron cli. #36049 <span style="font-size:small;">(Also in 20, 21)</span>
  • Fixed: If a custom Electron build contains an electron.d.ts file, it is now being used. #33979 <span style="font-size:small;">(Also in 20, 21)</span>
  • Picture-In-Picture mode no longer becomes a red rectangle on hover. #35034 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Provided display_id for desktopCapturer on Linux. #33861 <span style="font-size:small;">(Also in 19, 20, 21)</span>
  • Removed support for nodeIntegrationInWorker in Service Workers and Shared Workers owing to sandboxing policies. #36010 <span style="font-size:small;">(Also in 21)</span>
  • Usage of safeStorage now consistently uses the correct service name on macOS regardless of timing with browser window construction. #34683 <span style="font-size:small;">(Also in 19, 20)</span>
  • You can now import the built-in electron module via ESModule loaders, i.e. import('electron') and import 'electron' now work natively. #35957 <span style="font-size:small;">(Also in 20, 21)</span>
  • Fixed a typo in the section on debugging with VSCode. #35256 <span style="font-size:small;">(Also in 19, 20, 21)</span>

Other Changes

  • Backported fix for chromium:1352405. #36458
  • Bumps the minimum required version of Node.js needed to install Electron to 12.20.55. #35301
  • Enabled out-of-process iframe printing to PDF with webContents.printToPDF().. #36095
  • Fixed win.getBrowserViews() not being updated when a BrowserView was moved to a different window. #35511
  • Fixed an issue where some spellcheck functionality would incorrectly throw errors on macOS. #35514 <span style="font-size:small;">(Also in 21)</span>
  • Modified the WCO maximized button style to match Windows 11 more closely. #35370 <span style="font-size:small;">(Also in 20, 21)</span>
  • Updated common.gypi for native modules to support C++17 features in V8. #36369 <span style="font-size:small;">(Also in 20, 21)</span>

Documentation

Notices

Sunsetting Windows 7/8/8.1

Electron will be ending support for Windows 7/8/8.1 after version 22.x.y following Chromium's plan to end support. Older versions of Electron will continue to work, but no further updates will be made for these operating systems.

End of Support for 19.x.y

Electron 19.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.