# Electron: what changed from 43 to 44 - Product: Electron (https://whatsnew.fyi/product/electron) - Vendor: OpenJS Foundation - Range: changelog entries numbered after v43.6.0 up to and including v44.2.0, stable releases only - Entries below: 4 releases (newest first) - Resolved: 43 is v43.6.0 and 44 is v44.2.0, the newest stable release of each major we track - Carrying security changes: 0 · CVEs mentioned: 0 · Mentioning breaking changes: 1 · Removing or deprecating something: 1 - Page: https://whatsnew.fyi/product/electron/compare/43...44 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## What changed (51 changes, grouped by kind) ### Added #### v44.0.0 (2026-08-25) - Added `select-client-certificate` event support for `net.request` and `net.fetch` to allow applications to select a certificate to present when servers request a client certificate - Added `Notification.remove()`, `removeAll()`, and `removeGroup()` static methods for macOS - Added `available` to `process.getSystemMemoryInfo()` on Linux - Added `net.WebSocket`, a WHATWG-compatible WebSocket client for the main process that routes through Chromium's network stack - Added `webContents.setZoomMode(mode)`, `webContents.getZoomMode()`, and `webContents.zoomMode` for per-WebContents zoom control - Added `webFrameMain.printToPDF()` to allow printing individual frames to PDF from the main process - Added a Save/Restore Window State API for cross-platform use - Added a `badge` property to `MenuItem` on macOS 14+ for showing a count or custom text badge next to a menu item's label - Added support for `win.setOpacity(opacity)` on Linux - Added `webContents.caretBrowsingEnabled` for toggling caret browsing in a WebContents - Frameless windows on Linux now have rounded corners by default; rounded corners can be disabled on all platforms by setting `roundedCorners: false` - Restored `app.setBadgeCount` and `win.setProgressBar` for Linux with support for any dock or taskbar implementing the LauncherEntry D-Bus API ### Changed #### v44.2.0 (2026-09-04) - Improved throughput of responses that protocol.handle handlers return straight from net.fetch #### v44.1.0 (2026-08-31) - Page resources, fetch() calls and file:// loads in renderers no longer wait for the main process to be idle when no webRequest listeners or protocol interceptors are registered #### v44.0.0 (2026-08-25) - ANGLE is now statically linked into the Electron binary on all platforms; the `libEGL` and `libGLESv2` libraries are no longer shipped in the distribution - `net.request` now rejects requests where `Sec-Fetch-Dest` is `document`, `frame`, `iframe`, or `fencedframe` unless `Sec-Fetch-Mode` is also set to `navigate` - Frameless windows on Linux now use system-themed titlebar icons for Window Controls Overlay ### Fixed #### v44.2.0 (2026-09-04) - Fixed a pending read on a net.request chunked upload stream inside a protocol handler never settling when the request failed or was aborted - Fixed a potential crash when using menu.popup with a frame from an offscreen rendered window - Fixed an intermittent crash on Windows when an ASAR integrity violation is detected, so the process now exits with code 1 as intended - Fixed application crash after a large number of IPC messages from renderers - Fixed native addons deriving from node::ObjectWrap aborting during garbage collection on Node.js 24.19.0 and later #### v44.1.1 (2026-09-01) - Fixed chrome.tabs.query() returning tab url and title to extensions without the tabs permission or host access, aligning with tabs.get - Fixed a renderer crash when an array with a throwing property getter is passed across contextBridge, and several main/utility-process crashes when option objects passed to Electron APIs contain throwing accessors or Proxy traps - Fixed an intermittent crash at startup on Linux caused by a race between Pango and the main thread initializing fontconfig - Fixed an issue where an exception thrown by a property getter on an object passed through contextBridge was swallowed instead of being thrown back to the caller - Fixed main process crashes when navigating to http://accessibility/ or http://devtools/, when an extension background page used navigator.mediaDevices, and when calling SerialPort.forget() for a disconnected device - Fixed the PDF viewer failing to save an edited PDF with NotAllowedError: Third party iframes are not allowed to show a file picker #### v44.1.0 (2026-08-31) - Fixed fs.constants.O_DIRECTORY, O_NOFOLLOW and O_DIRECT holding x86 values on Linux arm64 and armv7l, which made opening a directory fail with EINVAL, and made require('trace_events') behave the same on cross-compiled builds as on native ones - Fixed webContents.executeJavaScriptInIsolatedWorld resolving with undefined when worldId was not an integer - Fixed webContents.print() honoring printBackground, duplexMode, and printer default duplex settings - Fixed a crash on Windows when V8 posted a delayed worker task during shutdown - Fixed a crash on macOS when a WebAuthn Touch ID prompt was requested while no locale resources were loaded - Fixed a crash on macOS when a notification's icon could not be attached; the notification is now shown without the icon - Fixed a crash when calling node:wasi functions in optimized code - Fixed a crash when calling utilityProcess.postMessage() after the utility process had exited - Fixed a regression where a window created with a custom title can show an empty title after using back/forward navigation - Fixed an issue where pages loaded in a detached WebContentsView wouldn't see the correct window size - Fixed crashes in sharedTexture, service-worker ipcRenderer and utilityProcess.fork() caused by object lifetime bugs - Fixed crashes in the main process when a webRequest.onBeforeRequest listener redirected a CORS preflight request, and when calling net.fetch() with a webRequest-permission extension loaded - Fixed crashes when a webContents or parent window is destroyed while other APIs still reference it - Fixed crashes when certain app event handlers call back into Electron synchronously - Fixed region-qualified --lang values such as de-DE loading no locale resources on macOS, which left localized strings empty and could crash WebAuthn Touch ID prompts - Fixed the GPU process being terminated in AppX/MSIX packaged apps on Windows when WebGPU fell back to SwiftShader - Fixed the tray icon not appearing on GNOME (and disappearing entirely on Wayland) since 44.0.0-beta.6 - Fixed windows native message boxes being dismissed by other applications using invalid button ID ### Removed #### v44.0.0 (2026-08-25) - Removed support for the Unity desktop environment on Linux - Removed support for macOS 12 (Monterey); macOS 13 (Ventura) or later is now required - Removed 32-bit builds (Windows ia32 and Linux armv7l); Electron is now published only for 64-bit platforms - The `clipboard` module is no longer exposed to renderer processes and is now aligned with the W3C Clipboard API - Removed the `openAsHidden` option from `app.setLoginItemSettings()` and the `openAsHidden`, `wasOpenedAsHidden`, and `restoreState` fields from the return value of `app.getLoginItemSettings()` ## Release notes ### v44.2.0 — electron v44.2.0 - Date: 2026-09-04 - Version: v44.2.0 - Original notes: https://github.com/electron/electron/releases/tag/v44.2.0 - Permalink: https://whatsnew.fyi/product/electron/releases/v44.2.0 - Labels: Platforms: Desktop - **fixed** — Fixed a pending read on a net.request chunked upload stream inside a protocol handler never settling when the request failed or was aborted - **fixed** — Fixed a potential crash when using menu.popup with a frame from an offscreen rendered window - **fixed** — Fixed an intermittent crash on Windows when an ASAR integrity violation is detected, so the process now exits with code 1 as intended - **fixed** — Fixed application crash after a large number of IPC messages from renderers - **fixed** — Fixed native addons deriving from node::ObjectWrap aborting during garbage collection on Node.js 24.19.0 and later - **changed** — Improved throughput of responses that protocol.handle handlers return straight from net.fetch #### Release Notes for v44.2.0 ##### Fixes * Fixed a pending read on a `net.request` chunked upload stream inside a protocol handler never settling when the request failed or was aborted. [#53373](https://github.com/electron/electron/pull/53373) (Also in [43](https://github.com/electron/electron/pull/53374), [45](https://github.com/electron/electron/pull/53368)) * Fixed a potential crash when using `menu.popup` with a frame from an offscreen rendered window. [#53362](https://github.com/electron/electron/pull/53362) (Also in [43](https://github.com/electron/electron/pull/53432)) * Fixed an intermittent crash (access violation) on Windows when an ASAR integrity violation is detected, so the process now exits with code 1 as intended. [#53455](https://github.com/electron/electron/pull/53455) (Also in [43](https://github.com/electron/electron/pull/53456), [45](https://github.com/electron/electron/pull/53438)) * Fixed application crash after a large number of IPC messages from renderers. [#53417](https://github.com/electron/electron/pull/53417) (Also in [42](https://github.com/electron/electron/pull/53419), [43](https://github.com/electron/electron/pull/53420), [45](https://github.com/electron/electron/pull/53418)) * Fixed native addons deriving from `node::ObjectWrap` aborting during garbage collection on Node.js 24.19.0 and later. [#53392](https://github.com/electron/electron/pull/53392) (Also in [42](https://github.com/electron/electron/pull/53394), [43](https://github.com/electron/electron/pull/53393), [45](https://github.com/electron/electron/pull/53391)) ##### Other Changes * Backported fixes from upstream ANGLE, Chromium, Skia and V8. [#53479](https://github.com/electron/electron/pull/53479) * Improved throughput of responses that `protocol.handle` handlers return straight from `net.fetch`. [#53378](https://github.com/electron/electron/pull/53378) * Updated Chromium to 152.0.7977.76. [#53382](https://github.com/electron/electron/pull/53382) * Updated Node.js to v24.20.0. [#53250](https://github.com/electron/electron/pull/53250) ### v44.1.1 — electron v44.1.1 - Date: 2026-09-01 - Version: v44.1.1 - Original notes: https://github.com/electron/electron/releases/tag/v44.1.1 - Permalink: https://whatsnew.fyi/product/electron/releases/v44.1.1 - Labels: Platforms: Desktop - **fixed** — Fixed chrome.tabs.query() returning tab url and title to extensions without the tabs permission or host access, aligning with tabs.get - **fixed** — Fixed a renderer crash when an array with a throwing property getter is passed across contextBridge, and several main/utility-process crashes when option objects passed to Electron APIs contain throwing accessors or Proxy traps - **fixed** — Fixed an intermittent crash at startup on Linux caused by a race between Pango and the main thread initializing fontconfig - **fixed** — Fixed an issue where an exception thrown by a property getter on an object passed through contextBridge was swallowed instead of being thrown back to the caller - **fixed** — Fixed main process crashes when navigating to http://accessibility/ or http://devtools/, when an extension background page used navigator.mediaDevices, and when calling SerialPort.forget() for a disconnected device - **fixed** — Fixed the PDF viewer failing to save an edited PDF with NotAllowedError: Third party iframes are not allowed to show a file picker #### Release Notes for v44.1.1 ##### Fixes * Fixed `chrome.tabs.query()` returning tab `url` and `title` to extensions without the `tabs` permission or host access, aligning with `tabs.get`. [#53354](https://github.com/electron/electron/pull/53354) (Also in [42](https://github.com/electron/electron/pull/53355), [43](https://github.com/electron/electron/pull/53356), [45](https://github.com/electron/electron/pull/53353)) * Fixed a renderer crash when an array with a throwing property getter is passed across `contextBridge`, and several main/utility-process crashes when option objects passed to Electron APIs contain throwing accessors or Proxy traps. [#53331](https://github.com/electron/electron/pull/53331) (Also in [42](https://github.com/electron/electron/pull/53329), [43](https://github.com/electron/electron/pull/53330)) * Fixed an intermittent crash at startup on Linux caused by a race between Pango and the main thread initializing fontconfig. [#53340](https://github.com/electron/electron/pull/53340) (Also in [43](https://github.com/electron/electron/pull/53339), [45](https://github.com/electron/electron/pull/53338)) * Fixed an issue where an exception thrown by a property getter on an object passed through `contextBridge` was swallowed instead of being thrown back to the caller. [#53335](https://github.com/electron/electron/pull/53335) (Also in [43](https://github.com/electron/electron/pull/53334), [45](https://github.com/electron/electron/pull/53297)) * Fixed main process crashes when navigating to `http://accessibility/` or `http://devtools/`, when an extension background page used `navigator.mediaDevices`, and when calling `SerialPort.forget()` for a disconnected device. [#53333](https://github.com/electron/electron/pull/53333) (Also in [43](https://github.com/electron/electron/pull/53332), [45](https://github.com/electron/electron/pull/53325)) * Fixed the PDF viewer failing to save an edited PDF with `NotAllowedError: Third party iframes are not allowed to show a file picker`. [#53328](https://github.com/electron/electron/pull/53328) (Also in [43](https://github.com/electron/electron/pull/53327), [45](https://github.com/electron/electron/pull/53326)) ### v44.1.0 — electron v44.1.0 - Date: 2026-08-31 - Version: v44.1.0 - Original notes: https://github.com/electron/electron/releases/tag/v44.1.0 - Permalink: https://whatsnew.fyi/product/electron/releases/v44.1.0 - Labels: Platforms: Desktop - **fixed** — Fixed fs.constants.O_DIRECTORY, O_NOFOLLOW and O_DIRECT holding x86 values on Linux arm64 and armv7l, which made opening a directory fail with EINVAL, and made require('trace_events') behave the same on cross-compiled builds as on native ones - **fixed** — Fixed webContents.executeJavaScriptInIsolatedWorld resolving with undefined when worldId was not an integer - **fixed** — Fixed webContents.print() honoring printBackground, duplexMode, and printer default duplex settings - **fixed** — Fixed a crash on Windows when V8 posted a delayed worker task during shutdown - **fixed** — Fixed a crash on macOS when a WebAuthn Touch ID prompt was requested while no locale resources were loaded - **fixed** — Fixed a crash on macOS when a notification's icon could not be attached; the notification is now shown without the icon - **fixed** — Fixed a crash when calling node:wasi functions in optimized code - **fixed** — Fixed a crash when calling utilityProcess.postMessage() after the utility process had exited - **fixed** — Fixed a regression where a window created with a custom title can show an empty title after using back/forward navigation - **fixed** — Fixed an issue where pages loaded in a detached WebContentsView wouldn't see the correct window size - **fixed** — Fixed crashes in sharedTexture, service-worker ipcRenderer and utilityProcess.fork() caused by object lifetime bugs - **fixed** — Fixed crashes in the main process when a webRequest.onBeforeRequest listener redirected a CORS preflight request, and when calling net.fetch() with a webRequest-permission extension loaded - **fixed** — Fixed crashes when a webContents or parent window is destroyed while other APIs still reference it - **fixed** — Fixed crashes when certain app event handlers call back into Electron synchronously - **fixed** — Fixed region-qualified --lang values such as de-DE loading no locale resources on macOS, which left localized strings empty and could crash WebAuthn Touch ID prompts - **fixed** — Fixed the GPU process being terminated in AppX/MSIX packaged apps on Windows when WebGPU fell back to SwiftShader - **fixed** — Fixed the tray icon not appearing on GNOME (and disappearing entirely on Wayland) since 44.0.0-beta.6 - **fixed** — Fixed windows native message boxes being dismissed by other applications using invalid button ID - **changed** — Page resources, fetch() calls and file:// loads in renderers no longer wait for the main process to be idle when no webRequest listeners or protocol interceptors are registered #### Release Notes for v44.1.0 ##### Fixes * Fixed `fs.constants.O_DIRECTORY`, `O_NOFOLLOW` and `O_DIRECT` holding x86 values on Linux arm64 and armv7l, which made opening a directory fail with `EINVAL`, and made `require('trace_events')` behave the same on cross-compiled builds as on native ones. [#53320](https://github.com/electron/electron/pull/53320) (Also in [42](https://github.com/electron/electron/pull/53318), [43](https://github.com/electron/electron/pull/53319), [45](https://github.com/electron/electron/pull/53321)) * Fixed `webContents.executeJavaScriptInIsolatedWorld` resolving with `undefined` when `worldId` was not an integer. [#53238](https://github.com/electron/electron/pull/53238) (Also in [43](https://github.com/electron/electron/pull/53237)) * Fixed `webContents.print()` honoring `printBackground`, `duplexMode`, and printer default duplex settings. [#53159](https://github.com/electron/electron/pull/53159) (Also in [42](https://github.com/electron/electron/pull/53158), [43](https://github.com/electron/electron/pull/53160)) * Fixed a crash on Windows when V8 posted a delayed worker task during shutdown. [#53201](https://github.com/electron/electron/pull/53201) (Also in [42](https://github.com/electron/electron/pull/53014), [43](https://github.com/electron/electron/pull/53013)) * Fixed a crash on macOS when a WebAuthn Touch ID prompt was requested while no locale resources were loaded. [#53194](https://github.com/electron/electron/pull/53194) (Also in [43](https://github.com/electron/electron/pull/53195)) * Fixed a crash on macOS when a notification's icon could not be attached; the notification is now shown without the icon. [#53146](https://github.com/electron/electron/pull/53146) (Also in [42](https://github.com/electron/electron/pull/53148), [43](https://github.com/electron/electron/pull/53147)) * Fixed a crash when calling `node:wasi` functions in optimized code. [#53268](https://github.com/electron/electron/pull/53268) (Also in [42](https://github.com/electron/electron/pull/53267), [43](https://github.com/electron/electron/pull/53265), [45](https://github.com/electron/electron/pull/53266)) * Fixed a crash when calling `utilityProcess.postMessage()` after the utility process had exited. [#53300](https://github.com/electron/electron/pull/53300) (Also in [43](https://github.com/electron/electron/pull/53301), [45](https://github.com/electron/electron/pull/53299)) * Fixed a regression where a window created with a custom title can show an empty title after using back/forward navigation. [#53218](https://github.com/electron/electron/pull/53218) (Also in [42](https://github.com/electron/electron/pull/53217), [43](https://github.com/electron/electron/pull/53219)) * Fixed an issue where pages loaded in a detached `WebContentsView` wouldn't see the correct window size. [#53153](https://github.com/electron/electron/pull/53153) (Also in [42](https://github.com/electron/electron/pull/53151), [43](https://github.com/electron/electron/pull/53152)) * Fixed crashes in sharedTexture, service-worker ipcRenderer and utilityProcess.fork() caused by object lifetime bugs. [#53279](https://github.com/electron/electron/pull/53279) (Also in [43](https://github.com/electron/electron/pull/53278), [45](https://github.com/electron/electron/pull/53280)) * Fixed crashes in the main process when a `webRequest.onBeforeRequest` listener redirected a CORS preflight request, and when calling `net.fetch()` with a `webRequest`-permission extension loaded. [#53303](https://github.com/electron/electron/pull/53303) (Also in [43](https://github.com/electron/electron/pull/53304), [45](https://github.com/electron/electron/pull/53302)) * Fixed crashes when a webContents or parent window is destroyed while other APIs still reference it. [#53287](https://github.com/electron/electron/pull/53287) (Also in [43](https:// _[Truncated at 4000 characters — full notes: https://github.com/electron/electron/releases/tag/v44.1.0]_ ### v44.0.0 — electron v44.0.0 - Date: 2026-08-25 - Version: v44.0.0 - Original notes: https://github.com/electron/electron/releases/tag/v44.0.0 - Permalink: https://whatsnew.fyi/product/electron/releases/v44.0.0 - Labels: Platforms: Desktop - **removed** — Removed support for the Unity desktop environment on Linux - **added** — Added `select-client-certificate` event support for `net.request` and `net.fetch` to allow applications to select a certificate to present when servers request a client certificate - **removed** — Removed support for macOS 12 (Monterey); macOS 13 (Ventura) or later is now required - **changed** — ANGLE is now statically linked into the Electron binary on all platforms; the `libEGL` and `libGLESv2` libraries are no longer shipped in the distribution - **changed** — `net.request` now rejects requests where `Sec-Fetch-Dest` is `document`, `frame`, `iframe`, or `fencedframe` unless `Sec-Fetch-Mode` is also set to `navigate` - **removed** — Removed 32-bit builds (Windows ia32 and Linux armv7l); Electron is now published only for 64-bit platforms - **removed** — The `clipboard` module is no longer exposed to renderer processes and is now aligned with the W3C Clipboard API - **removed** — Removed the `openAsHidden` option from `app.setLoginItemSettings()` and the `openAsHidden`, `wasOpenedAsHidden`, and `restoreState` fields from the return value of `app.getLoginItemSettings()` - **added** — Added `Notification.remove()`, `removeAll()`, and `removeGroup()` static methods for macOS - **added** — Added `available` to `process.getSystemMemoryInfo()` on Linux - **added** — Added `net.WebSocket`, a WHATWG-compatible WebSocket client for the main process that routes through Chromium's network stack - **added** — Added `webContents.setZoomMode(mode)`, `webContents.getZoomMode()`, and `webContents.zoomMode` for per-WebContents zoom control - **added** — Added `webFrameMain.printToPDF()` to allow printing individual frames to PDF from the main process - **added** — Added a Save/Restore Window State API for cross-platform use - **added** — Added a `badge` property to `MenuItem` on macOS 14+ for showing a count or custom text badge next to a menu item's label - **added** — Added support for `win.setOpacity(opacity)` on Linux - **added** — Added `webContents.caretBrowsingEnabled` for toggling caret browsing in a WebContents - **changed** — Frameless windows on Linux now use system-themed titlebar icons for Window Controls Overlay - **added** — Frameless windows on Linux now have rounded corners by default; rounded corners can be disabled on all platforms by setting `roundedCorners: false` - **added** — Restored `app.setBadgeCount` and `win.setProgressBar` for Linux with support for any dock or taskbar implementing the LauncherEntry D-Bus API #### Release Notes for v44.0.0 ##### Stack Upgrades * Chromium `152.0.7977.54` * [New in 152](https://developer.chrome.com/blog/new-in-chrome-152/) * [New in 151](https://developer.chrome.com/blog/new-in-chrome-151/) * Node `v24.18.1` * [Node 24.18.1 blog post](https://nodejs.org/en/blog/release/v24.18.1/) * [Node 24.18.0 blog post](https://nodejs.org/en/blog/release/v24.18.0/) * V8 `15.2` ##### Breaking Changes * Removed support for the Unity desktop environment on Linux. [#51649](https://github.com/electron/electron/pull/51649) * Added `select-client-certificate` event support for `net.request` and `net.fetch`; requests to servers requesting a client certificate no longer fail with `ERR_SSL_CLIENT_AUTH_CERT_NEEDED`, and applications can now select a certificate to present. [#52397](https://github.com/electron/electron/pull/52397) * macOS 12 (Monterey) is no longer supported by [Chromium](https://chromium-review.googlesource.com/c/chromium/src/+/7907086). Older versions of Electron will continue to run on Monterey, but macOS 13 (Ventura) or later will be required to run Electron v44.0.0 and higher. [#51967](https://github.com/electron/electron/pull/51967) * ANGLE is now [statically linked](https://issues.chromium.org/issues/40268378) into the Electron binary on all platforms, matching upstream Chromium. The `libEGL.(so|dylib|dll)` and `libGLESv2.(so|dylib|dll)` libraries are no longer shipped in the distribution. [#52288](https://github.com/electron/electron/pull/52288) * `net.request` now rejects requests where `Sec-Fetch-Dest` is `document`, `frame`, `iframe`, or `fencedframe` unless `Sec-Fetch-Mode` is also set to `navigate`. [#52216](https://github.com/electron/electron/pull/52216) * Removed 32-bit builds (Windows ia32 and Linux armv7l). Electron is now published only for 64-bit (x64 and arm64) platforms. [#52326](https://github.com/electron/electron/pull/52326) * The `clipboard` module is now aligned with the W3C Clipboard API and is no longer exposed to renderer processes. [#52508](https://github.com/electron/electron/pull/52508) * Removed the `openAsHidden` option from `app.setLoginItemSettings()` and the `openAsHidden`, `wasOpenedAsHidden` and `restoreState` fields from the return value of `app.getLoginItemSettings()`. These only worked on macOS 12 and below, which are no longer supported. [#52667](https://github.com/electron/electron/pull/52667) See the [Breaking Changes](https://github.com/electron/electron/blob/main/docs/breaking-changes.md) doc for more details about these changes. ##### Features * Added `Notification.remove()`, `removeAll()`, and `removeGroup()` static methods for macOS. [#51182](https://github.com/electron/electron/pull/51182) (Also in [42](https://github.com/electron/electron/pull/51691), [43](https://github.com/electron/electron/pull/51690)) * Added `available` to `process.getSystemMemoryInfo()` on Linux, exposing `proc/meminfo` MemAvailable. [#52380](https://github.com/electron/electron/pull/52380) (Also in [42](https://github.com/electron/electron/pull/52378), [43](https://github.com/electron/electron/pull/52379)) * Added `net.WebSocket`, a WHATWG-compatible WebSocket client for the main process that routes through Chromium's network stack. [#51593](https://github.com/electron/electron/pull/51593) (Also in [42](https://github.com/electron/electron/pull/52345), [43](https://github.com/electron/electron/pull/52344)) * Added `webContents.setZoomMode(mode)`, `webContents.getZoomMode()`, and `webContents.zoomMode` for per-WebContents zoom control. [#49962](https://github.com/electron/electron/pull/49962) * Added `webFrameMain.printToPDF()` to allow printing individual frames to PDF from the main process. [#52625](https://github.com/electron/electron/pull/52625) (Also in [42](https://github.com/electron/electron/pull/52626), [43](https://github.com/electron/electron/pull/52627)) * Added a Save/Res _[Truncated at 4000 characters — full notes: https://github.com/electron/electron/releases/tag/v44.0.0]_