Skip to content
verdict:

Electron 42.0.0

featured

note: no summary for this older release

We summarize recent releases. The original release notes for this version are below.

release-notesgithub.com/electron/electron · 218 lines
  1. # Release Notes for v42.0.0
  2. ## Stack Upgrades
  3. * Chromium `148.0.7778.96`
  4. * [New in 148](https://developer.chrome.com/blog/new-in-chrome-148/)
  5. * [New in 147](https://developer.chrome.com/blog/new-in-chrome-147/)
  6. * Node `v24.15.0`
  7. * [Node 24.15.0 blog post](https://nodejs.org/en/blog/release/v24.15.0/)
  8. * V8 `14.8`
  9. ## Breaking Changes
  10. ### Behavior Changed: macOS notifications now use `UNNotification` API
  11. Electron has migrated from the deprecated `NSUserNotification` API to the `UNNotification` API on macOS. The new API requires that an application be code-signed in order for notifications to be displayed. If an application is not code-signed, notifications will emit a `failed` event on the `Notification` object. [#47817](https://github.com/electron/electron/pull/47817)
  12. ### Behavior Changed: `electron` no longer downloads itself via `postinstall` script
  13. Previously, the `electron` npm package would download the Electron binary from the repository's GitHub Releases in the package's `postinstall` script. With recent supply chain security attacks against the npm ecosystem with `postinstall` scripts as a common attack vector, Electron will now download itself dynamically the first time that its main `bin` script is run (e.g. via `npx electron`). See [RFC #22](https://github.com/electron/rfcs/pull/22) for more context. [#49328](https://github.com/electron/electron/pull/49328)
  14. ### Behavior Changed: Offscreen rendering default device scale factor
  15. Previously, OSR used the primary display's device scale factor for rendering. Starting from Electron 42, the default changes to a constant value of `1.0` for more consistent output sizes. Use `webPreferences.offscreen.deviceScaleFactor` to specify a custom value. [#49683](https://github.com/electron/electron/pull/49683)
  16. ### Removed: `quotas` object from `Session.clearStorageData(options)`
  17. When calling `Session.clearStorageData(options)`, the `options.quotas` object is no longer supported because it has been removed from upstream Chromium.
  18. ### Removed: `ELECTRON_SKIP_BINARY_DOWNLOAD` environment variable
  19. This environment variable is no longer supported due to the new lazy download behavior. [#50459](https://github.com/electron/electron/pull/50459)
  20. ## Features
  21. ### Additions
  22. * Added `app.configureWebAuthn({ touchID: { keychainAccessGroup } })` to enable the WebAuthn Touch ID platform authenticator on macOS. Also introduces a `select-webauthn-account` session event for discoverable-credential selection. [#51411](https://github.com/electron/electron/pull/51411) (Also in 41)
  23. * Added `Notification.getHistory()` for macOS. [#51123](https://github.com/electron/electron/pull/51123)
  24. * Added `Notification.handleActivation(callback)` API on Windows to handle notification clicks, replies, and action buttons - including when the app is launched from a notification (cold start). [#49919](https://github.com/electron/electron/pull/49919)
  25. * Added `ELECTRON_INSTALL_PLATFORM` and `ELECTRON_INSTALL_ARCH` variables to install binaries from other platforms and architectures. [#49981](https://github.com/electron/electron/pull/49981)
  26. * Added `allowExtensions` privilege to `protocol.registerSchemesAsPrivileged()` to enable Chrome extensions on custom protocols. [#50530](https://github.com/electron/electron/pull/50530) <sup>(Also in [40](https://github.com/electron/electron/pull/50588), [41](https://github.com/electron/electron/pull/50529))</sup>
  27. * Added `app.isActive()` to check if the app is the active/foreground application (macOS only). [#49622](https://github.com/electron/electron/pull/49622)
  28. * Added `globalShortcut.setSuspended()` and `globalShortcut.isSuspended()` methods to temporarily suspend and resume global shortcut handling. [#50777](https://github.com/electron/electron/pull/50777)
  29. * Added `id` and `groupId` options to the Notification constructor on macOS. `id` allows custom identifiers for notifications, and `groupId` visually groups notifications together in Notification Center. [#50304](https://github.com/electron/electron/pull/50304)
  30. * Added `webContents.getOrCreateDevToolsTargetId()`. [#49733](https://github.com/electron/electron/pull/49733) <sup>(Also in [41](https://github.com/electron/electron/pull/50176))</sup>
  31. * Added a `disclaim` option to the UtilityProcess API to allow for TCC disclaiming on macOS. [#49128](https://github.com/electron/electron/pull/49128) <sup>(Also in [39](https://github.com/electron/electron/pull/49696), [40](https://github.com/electron/electron/pull/49695), [41](https://github.com/electron/electron/pull/49693))</sup>
  32. * Added a `reason` property to the Notification 'closed' event on Windows to allow developers to know the reason the Notification was dismissed. [#49913](https://github.com/electron/electron/pull/49913) <sup>(Also in [40](https://github.com/electron/electron/pull/50030), [41](https://github.com/electron/electron/pull/50029))</sup>
  33. * Added an `usePrinterDefaultPageSize` option to `webContents.print()` to allow using the printer's default page size. [#49523](https://github.com/electron/electron/pull/49523) <sup>(Also in [41](https://github.com/electron/electron/pull/49812))</sup>
  34. * Added animation functionality to `view.setBounds` and added `view.setBackgroundBlur`. [#48812](https://github.com/electron/electron/pull/48812)
  35. * Added id, groupId, and groupTitle support for Windows notifications. [#50895](https://github.com/electron/electron/pull/50895)
  36. * Added `nativeTheme.shouldDifferentiateWithoutColor` on macOS. [#50409](https://github.com/electron/electron/pull/50409) <sup>(Also in [41](https://github.com/electron/electron/pull/50408))</sup>
  37. * Added support for MSIX auto-updating. [#49230](https://github.com/electron/electron/pull/49230) <sup>(Also in [39](https://github.com/electron/electron/pull/49585), [40](https://github.com/electron/electron/pull/49587), [41](https://github.com/electron/electron/pull/49586))</sup>
  38. * Added support for `--experimental-transform-types`. [#49711](https://github.com/electron/electron/pull/49711) <sup>(Also in [39](https://github.com/electron/electron/pull/49881), [40](https://github.com/electron/electron/pull/49883), [41](https://github.com/electron/electron/pull/49882))</sup>
  39. * Added support for `long-animation-frame` script attribution (via `--enable-features=AlwaysLogLOAFURL`). [#49706](https://github.com/electron/electron/pull/49706) <sup>(Also in [39](https://github.com/electron/electron/pull/49771), [40](https://github.com/electron/electron/pull/49772), [41](https://github.com/electron/electron/pull/49773))</sup>
  40. * Added support for heap profiling in `contentTracing`. [#51162](https://github.com/electron/electron/pull/51162) (Also in 41)
  41. * Added support for importing shared textures using the nv16 pixel format. [#51187](https://github.com/electron/electron/pull/51187)
  42. * Added support for importing shared textures using the p010le 10-bit YUV pixel format. [#49272](https://github.com/electron/electron/pull/49272)
  43. * Added support for several more `safeStorage` backends via new asynchronous functionality in safeStorage. [#49054](https://github.com/electron/electron/pull/49054)
  44. * Added support for the `urgency` option in Notifications on Windows. [#50383](https://github.com/electron/electron/pull/50383) <sup>(Also in [41](https://github.com/electron/electron/pull/50382))</sup>
  45. * Added the ability to capture JS stack trace on renderer OOM. [#50911](https://github.com/electron/electron/pull/50911)
  46. * Added the ability to disable auto-focusing of WebContents on navigation using `webPreferences.focusOnNavigation`. [#49425](https://github.com/electron/electron/pull/49425) <sup>(Also in [40](https://github.com/electron/electron/pull/49512), [41](https://github.com/electron/electron/pull/49511))</sup>
  47. * Electron now downloads its binary into `node_modules` dynamically on first launch instead of running a `postinstall` script. Added the `install-electron` script to manually trigger the download as well. [#49328](https://github.com/electron/electron/pull/49328)
  48. * Enabled wasm trap handlers behind `WasmTrapHandlers` [fuse](https://www.electronjs.org/docs/latest/tutorial/fuses). [#48983](https://github.com/electron/electron/pull/48983) <sup>(Also in [41](https://github.com/electron/electron/pull/49839))</sup>
  49. * Extended actions support for Windows notifications to include buttons, select dropdowns, and replies. [#48132](https://github.com/electron/electron/pull/48132) <sup>(Also in [40](https://github.com/electron/electron/pull/49786), [41](https://github.com/electron/electron/pull/49787))</sup>
  50. * On Wayland (Linux), frameless windows now have GTK drop shadows and extended resize boundaries. To create fully frameless windows with no decorations, set `hasShadow: false` in the window constructor. [#49295](https://github.com/electron/electron/pull/49295) <sup>(Also in [41](https://github.com/electron/electron/pull/49885))</sup>
  51. * Replaced deprecated NSUserNotification with User Notifications. [#47817](https://github.com/electron/electron/pull/47817)
  52. ## Fixes
  53. * Added additional ASAR support to additional `fs` copy methods. [#50285](https://github.com/electron/electron/pull/50285) <sup>(Also in [39](https://github.com/electron/electron/pull/50284), [40](https://github.com/electron/electron/pull/50287), [41](https://github.com/electron/electron/pull/50286))</sup>
  54. * Added crash keys to diagnose power monitor shutdown crash on arm64 windows. [#51205](https://github.com/electron/electron/pull/51205)
  55. * Added missing `metadata` fields to `contentTracing` traces. [#51007](https://github.com/electron/electron/pull/51007) <sup>(Also in [41](https://github.com/electron/electron/pull/51021))</sup>
  56. * Added validation to protocol client methods to reject protocol names that do not conform to the RFC 3986 URI scheme grammar. [#50141](https://github.com/electron/electron/pull/50141) <sup>(Also in [38](https://github.com/electron/electron/pull/50157), [39](https://github.com/electron/electron/pull/50156), [40](https://github.com/electron/electron/pull/50158), [41](https://github.com/electron/electron/pull/50155))</sup>
  57. * Addressed upstream Chromium shift to enable `CoreAudio Tap API` for audio capture used in electron's `desktopCapturer` (macOS). [#49717](https://github.com/electron/electron/pull/49717) <sup>(Also in [39](https://github.com/electron/electron/pull/49740), [40](https://github.com/electron/electron/pull/49741), [41](https://github.com/electron/electron/pull/49739))</sup>
  58. * Allow dynamically updating menu item labels, sublabels, and icons. [#49678](https://github.com/electron/electron/pull/49678) <sup>(Also in [40](https://github.com/electron/electron/pull/49973), [41](https://github.com/electron/electron/pull/49972))</sup>
  59. * BrowserWindow now enforces min/max size constraints on window creation, even if they conflict with the requested width and height. [#50754](https://github.com/electron/electron/pull/50754) <sup>(Also in [41](https://github.com/electron/electron/pull/50753))</sup>
  60. * Changed the `kResizeThreshold` to trigger the resize on corners. [#51001](https://github.com/electron/electron/pull/51001) <sup>(Also in [41](https://github.com/electron/electron/pull/51002))</sup>
  61. * Fixed `AllowUniversalAccessFromFileURLs` not being properly constrained to `file:` origins in agent cluster key assignment. [#51404](https://github.com/electron/electron/pull/51404)
  62. * Fixed `corsEnabled: false` protocol handlers incorrectly working across protocols. [#51269](https://github.com/electron/electron/pull/51269) (Also in 39, 40, 41)
  63. * Fixed `printToPDF` queue not resetting after a rejection. [#51222](https://github.com/electron/electron/pull/51222) (Also in 40, 41)
  64. * Fixed `webContents.print()` not honoring `dpi` horizontal/vertical options. [#51354](https://github.com/electron/electron/pull/51354) (Also in 41)
  65. * Fixed Electron child process titles on Linux so they show their types (render, gpu, etc.) and complete command-line arguments and flags in `ps aux`. [#50533](https://github.com/electron/electron/pull/50533)
  66. * Fixed Fetch-intercepted requests using incorrect header client, which could cause request failures. [#51372](https://github.com/electron/electron/pull/51372) (Also in 41)
  67. * Fixed `fs.stat` on files inside asar archives returning `undefined` for `blksize` and `blocks` instead of numeric values. [#50877](https://github.com/electron/electron/pull/50877) <sup>(Also in [40](https://github.com/electron/electron/pull/50875), [41](https://github.com/electron/electron/pull/50876))</sup>
  68. * Fixed `globalShortcut` not working on Wayland with `GlobalShortcutsPortal` feature enabled. [#49842](https://github.com/electron/electron/pull/49842) <sup>(Also in [40](https://github.com/electron/electron/pull/49870), [41](https://github.com/electron/electron/pull/49871))</sup>
  69. * Fixed a bug that cause offscreen rendering doesn't have valid screen info and unable to get valid result of related media queries. Added `webPreference.offscreen.deviceScaleFactor` to allow user specify a value. [#48730](https://github.com/electron/electron/pull/48730) <sup>(Also in [40](https://github.com/electron/electron/pull/49681), [41](https://github.com/electron/electron/pull/50375))</sup>
  70. * Fixed a bug where Windows notification icons could fail to save because their temporary filenames contained invalid characters. [#50482](https://github.com/electron/electron/pull/50482) <sup>(Also in [40](https://github.com/electron/electron/pull/50484), [41](https://github.com/electron/electron/pull/50483))</sup>
  71. * Fixed a crash in `AutofillPopup` teardown. [#51317](https://github.com/electron/electron/pull/51317) (Also in 40, 41)
  72. * Fixed a crash in `clipboard.readImage()` when the clipboard contains malformed image data. [#50494](https://github.com/electron/electron/pull/50494) <sup>(Also in [39](https://github.com/electron/electron/pull/50493), [40](https://github.com/electron/electron/pull/50491), [41](https://github.com/electron/electron/pull/50492))</sup>
  73. * Fixed a crash that could occur when using the File System Access API. [#49578](https://github.com/electron/electron/pull/49578) <sup>(Also in [39](https://github.com/electron/electron/pull/49634), [40](https://github.com/electron/electron/pull/49635), [41](https://github.com/electron/electron/pull/49636))</sup>
  74. * Fixed a crash when calling `contentTracing` APIs before app is ready. [#51353](https://github.com/electron/electron/pull/51353) (Also in 41)
  75. * Fixed a crash when calling `contentTracing.getTraceBufferUsage()` while a trace session is active. [#50592](https://github.com/electron/electron/pull/50592) <sup>(Also in [39](https://github.com/electron/electron/pull/50595), [40](https://github.com/electron/electron/pull/50593), [41](https://github.com/electron/electron/pull/50594))</sup>
  76. * Fixed a crash when calling `webRequest.onBeforeSendHeaders` with invalid header names or values. [#51366](https://github.com/electron/electron/pull/51366) (Also in 40, 41)
  77. * Fixed a crash when calling an offscreen shared texture's `release()` after the texture object was garbage collected. [#50502](https://github.com/electron/electron/pull/50502) <sup>(Also in [39](https://github.com/electron/electron/pull/50499), [40](https://github.com/electron/electron/pull/50500), [41](https://github.com/electron/electron/pull/50501))</sup>
  78. * Fixed a crash when rendering PDFs when Site Isolation is disabled. [#50846](https://github.com/electron/electron/pull/50846) <sup>(Also in [41](https://github.com/electron/electron/pull/50845))</sup>
  79. * Fixed a crash caused by missing `MicrotasksScope` for worker exit emit in `ContextWillDestroy`. [#51350](https://github.com/electron/electron/pull/51350) (Also in 40, 41)
  80. * Fixed a crash when the `<permission>` element was used, by including permission element string resources in locale paks. [#51374](https://github.com/electron/electron/pull/51374) (Also in 41)
  81. * Fixed a macOS crash when creating a new tab from the tab overview. [#49917](https://github.com/electron/electron/pull/49917) <sup>(Also in [40](https://github.com/electron/electron/pull/49934), [41](https://github.com/electron/electron/pull/49933))</sup>
  82. * Fixed a memory leak where Menu items were not cleaned up after Menu.setApplicationMenu was called repeatedly. [#50832](https://github.com/electron/electron/pull/50832) <sup>(Also in [40](https://github.com/electron/electron/pull/50831), [41](https://github.com/electron/electron/pull/50830))</sup>
  83. * Fixed a potential crash when using `webContents.print()`. [#50853](https://github.com/electron/electron/pull/50853)
  84. * Fixed absent 'Electron Isolated Context' in the execution context dropdown in Dev Tools. [#51079](https://github.com/electron/electron/pull/51079) <sup>(Also in [41](https://github.com/electron/electron/pull/51078))</sup>
  85. * Fixed an accessibility issue where the AXMenuOpened event was not fired on menu creation. [#50504](https://github.com/electron/electron/pull/50504) <sup>(Also in [40](https://github.com/electron/electron/pull/50505), [41](https://github.com/electron/electron/pull/50506))</sup>
  86. * Fixed an application crash on MacOS where the menu observer was not being properly removed before garbage collection. [#49648](https://github.com/electron/electron/pull/49648) <sup>(Also in [40](https://github.com/electron/electron/pull/49657), [41](https://github.com/electron/electron/pull/49658))</sup>
  87. * Fixed an error with Windows release builds after MSIX merger. [#49613](https://github.com/electron/electron/pull/49613)
  88. * Fixed an intermittent `Invoke in DisallowJavascriptExecutionScope` crash on application quit when a `WebContents` (or other JS-emitting native object) is garbage-collected during shutdown. [#50695](https://github.com/electron/electron/pull/50695) <sup>(Also in [40](https://github.com/electron/electron/pull/50693), [41](https://github.com/electron/electron/pull/50694))</sup>
  89. * Fixed an issue in `chrome://accessibility`. [#49547](https://github.com/electron/electron/pull/49547) <sup>(Also in [39](https://github.com/electron/electron/pull/49559), [40](https://github.com/electron/electron/pull/49560), [41](https://github.com/electron/electron/pull/49561))</sup>
  90. * Fixed an issue on macOS where Universal Links were not delivered to `app.on('continue-activity')` on cold launch when `NSUserActivity.userInfo` was nil. [#49986](https://github.com/electron/electron/pull/49986) <sup>(Also in [39](https://github.com/electron/electron/pull/50004), [40](https://github.com/electron/electron/pull/50005), [41](https://github.com/electron/electron/pull/50006))</sup>
  91. * Fixed an issue on macOS where `show`/`hide` events and `WebContents` visibility state could be reported incorrectly when multiple `WebContentsView`s were attached to a window. [#50712](https://github.com/electron/electron/pull/50712) <sup>(Also in [40](https://github.com/electron/electron/pull/50713), [41](https://github.com/electron/electron/pull/50715))</sup>
  92. * Fixed an issue on macOS where calling `autoUpdater.quitAndInstall()` could fail if `checkForUpdates()` was called again after an update was already downloaded. [#50210](https://github.com/electron/electron/pull/50210) <sup>(Also in [39](https://github.com/electron/electron/pull/50215), [40](https://github.com/electron/electron/pull/50216), [41](https://github.com/electron/electron/pull/50217))</sup>
  93. * Fixed an issue that caused the RGBAF16 shared texture format to have a keyed mutex on Windows. [#49798](https://github.com/electron/electron/pull/49798) <sup>(Also in [41](https://github.com/electron/electron/pull/49876))</sup>
  94. * Fixed an issue where Chrome Devtools menus may not appear in certain embedded windows. [#49794](https://github.com/electron/electron/pull/49794) <sup>(Also in [39](https://github.com/electron/electron/pull/50136), [40](https://github.com/electron/electron/pull/50138), [41](https://github.com/electron/electron/pull/50137))</sup>
  95. * Fixed an issue where DevTools would re-attach to the window when opened after previously being detached. [#50815](https://github.com/electron/electron/pull/50815) <sup>(Also in [39](https://github.com/electron/electron/pull/50818), [40](https://github.com/electron/electron/pull/50817), [41](https://github.com/electron/electron/pull/50816))</sup>
  96. * Fixed an issue where `VideoFrame` objects returned through `contextBridge` had an incorrect prototype. [#49997](https://github.com/electron/electron/pull/49997) <sup>(Also in [39](https://github.com/electron/electron/pull/50021), [40](https://github.com/electron/electron/pull/50022), [41](https://github.com/electron/electron/pull/50023))</sup>
  97. * Fixed an issue where `additionalData` passed to `app.requestSingleInstanceLock` on Windows could be truncated or fail to deserialize in the primary instance's `second-instance` event. [#50119](https://github.com/electron/electron/pull/50119) <sup>(Also in [38](https://github.com/electron/electron/pull/50177), [39](https://github.com/electron/electron/pull/50174), [40](https://github.com/electron/electron/pull/50162), [41](https://github.com/electron/electron/pull/50154))</sup>
  98. * Fixed an issue where `net.fetch()` requests in the main process and utility processes would permanently fail with `net::ERR_FAILED` after the Network Service process crashed and restarted. [#49887](https://github.com/electron/electron/pull/49887)
  99. * Fixed an issue where `nodeIntegrationInWorker` didn't always work in AudioWorklet. [#51005](https://github.com/electron/electron/pull/51005) <sup>(Also in [40](https://github.com/electron/electron/pull/51004), [41](https://github.com/electron/electron/pull/51006))</sup>
  100. * Fixed an issue where `nodeIntegrationInWorker` overrides in `setWindowOpenHandler` were not honored for child windows sharing a renderer process with their opener. [#50122](https://github.com/electron/electron/pull/50122) <sup>(Also in [38](https://github.com/electron/electron/pull/50163), [39](https://github.com/electron/electron/pull/50468), [40](https://github.com/electron/electron/pull/50467), [41](https://github.com/electron/electron/pull/50134))</sup>
  101. * Fixed an issue where `screen.getCursorScreenPoint()` crashed on Wayland when it was called before a `BrowserWindow` had been created. [#50092](https://github.com/electron/electron/pull/50092) <sup>(Also in [39](https://github.com/electron/electron/pull/50106), [40](https://github.com/electron/electron/pull/50104), [41](https://github.com/electron/electron/pull/50105))</sup>
  102. * Fixed an issue where `setSimpleFullScreen` on macOS would exit when web content called `requestFullscreen()`. [#50987](https://github.com/electron/electron/pull/50987) <sup>(Also in [40](https://github.com/electron/electron/pull/50986), [41](https://github.com/electron/electron/pull/50985))</sup>
  103. * Fixed an issue where `shell.writeShortcutLink` was throwing `TypeError: Insufficient number of arguments` when called with just `[(path, options)]`. [#49476](https://github.com/electron/electron/pull/49476) <sup>(Also in [39](https://github.com/electron/electron/pull/49502), [40](https://github.com/electron/electron/pull/49501), [41](https://github.com/electron/electron/pull/49503))</sup>
  104. * Fixed an issue where alt+space triggered the system context menu even if an accelerator was registered for the hotkey combination. [#49619](https://github.com/electron/electron/pull/49619) <sup>(Also in [39](https://github.com/electron/electron/pull/49641), [40](https://github.com/electron/electron/pull/49640), [41](https://github.com/electron/electron/pull/49642))</sup>
  105. * Fixed an issue where an Electron auto-update job would occasionally fail if a macOS system update is pending. [#51111](https://github.com/electron/electron/pull/51111)
  106. * Fixed an issue where an Electron macOS update would not be applied if another app was previously blocking the macOS system update loop. [#51212](https://github.com/electron/electron/pull/51212) <sup>(Also in [40](https://github.com/electron/electron/pull/51211), [41](https://github.com/electron/electron/pull/51210))</sup>
  107. * Fixed an issue where an app shortcut may lose its icon after auto-updating on Windows. [#50517](https://github.com/electron/electron/pull/50517) <sup>(Also in [40](https://github.com/electron/electron/pull/50518), [41](https://github.com/electron/electron/pull/50519))</sup>
  108. * Fixed an issue where calling `setBounds` on a `WebContentsView` could trigger redundant `page-favicon-updated` events even when the favicon had not changed. [#49464](https://github.com/electron/electron/pull/49464) <sup>(Also in [39](https://github.com/electron/electron/pull/50086), [40](https://github.com/electron/electron/pull/50084), [41](https://github.com/electron/electron/pull/50085))</sup>
  109. * Fixed an issue where closing devtools immediately after focus caused a crash. [#51036](https://github.com/electron/electron/pull/51036) <sup>(Also in [41](https://github.com/electron/electron/pull/51037))</sup>
  110. * Fixed an issue where concurrent `getFileHandle` requests on the same path could stall indefinitely. [#50671](https://github.com/electron/electron/pull/50671) <sup>(Also in [40](https://github.com/electron/electron/pull/50672), [41](https://github.com/electron/electron/pull/50670))</sup>
  111. * Fixed an issue where cookie changed events weren't properly emitted in all cases. [#49103](https://github.com/electron/electron/pull/49103) <sup>(Also in [41](https://github.com/electron/electron/pull/49631))</sup>
  112. * Fixed an issue where custom options in `webContents.print()` did not prefill the print dialog on macOS. [#50643](https://github.com/electron/electron/pull/50643)
  113. * Fixed an issue where frameless windows had resize issues in Mac App Store builds. [#49780](https://github.com/electron/electron/pull/49780) <sup>(Also in [39](https://github.com/electron/electron/pull/49861), [40](https://github.com/electron/electron/pull/49856), [41](https://github.com/electron/electron/pull/49857))</sup>
  114. * Fixed an issue where invalid characters in custom protocol or webRequest response header values were not rejected. [#50123](https://github.com/electron/electron/pull/50123) <sup>(Also in [38](https://github.com/electron/electron/pull/50130), [39](https://github.com/electron/electron/pull/50129), [40](https://github.com/electron/electron/pull/50131), [41](https://github.com/electron/electron/pull/50132))</sup>
  115. * Fixed an issue where making a window fullscreen on Windows, minimizing it and then restoring it broke previous fullscreen state. [#49872](https://github.com/electron/electron/pull/49872) <sup>(Also in [40](https://github.com/electron/electron/pull/49892), [41](https://github.com/electron/electron/pull/49891))</sup>
  116. * Fixed an issue where malformed custom `toastXml` could cause a Notification crash. [#49947](https://github.com/electron/electron/pull/49947) <sup>(Also in [40](https://github.com/electron/electron/pull/49952), [41](https://github.com/electron/electron/pull/49953))</sup>
  117. * Fixed an issue where margins did not look as expected when printing in silent mode. [#50653](https://github.com/electron/electron/pull/50653) <sup>(Also in [41](https://github.com/electron/electron/pull/50652))</sup>
  118. * Fixed an issue where menu item accelerators stopped working after the item's enabled property was toggled on macOS. [#49553](https://github.com/electron/electron/pull/49553) <sup>(Also in [39](https://github.com/electron/electron/pull/49593), [40](https://github.com/electron/electron/pull/49592), [41](https://github.com/electron/electron/pull/49591))</sup>
  119. * Fixed an issue where menu item enabled state wasn't updated during key equivalent dispatch when the menu was closed on macOS. [#49875](https://github.com/electron/electron/pull/49875) <sup>(Also in [39](https://github.com/electron/electron/pull/49888), [40](https://github.com/electron/electron/pull/49889), [41](https://github.com/electron/electron/pull/49890))</sup>
  120. * Fixed an issue where native modules would either crash or not compile for MacOS 12. [#49697](https://github.com/electron/electron/pull/49697) <sup>(Also in [40](https://github.com/electron/electron/pull/49702), [41](https://github.com/electron/electron/pull/49703))</sup>
  121. * Fixed an issue where permission and device-chooser handlers received the top-level page origin instead of the requesting subframe's origin. [#50052](https://github.com/electron/electron/pull/50052) <sup>(Also in [38](https://github.com/electron/electron/pull/50151), [39](https://github.com/electron/electron/pull/50147), [40](https://github.com/electron/electron/pull/50149), [41](https://github.com/electron/electron/pull/50148))</sup>
  122. * Fixed an issue where role-based menu items were incorrectly returning `null` for their accelerator property. [#49558](https://github.com/electron/electron/pull/49558) <sup>(Also in [39](https://github.com/electron/electron/pull/49670), [40](https://github.com/electron/electron/pull/49669), [41](https://github.com/electron/electron/pull/49668))</sup>
  123. * Fixed an issue where saving edited PDF files would fail with a cross-origin SecurityError. [#51072](https://github.com/electron/electron/pull/51072) <sup>(Also in [41](https://github.com/electron/electron/pull/51073))</sup>
  124. * Fixed an issue where setting `zoomFactor` in `setWindowOpenHandler`'s `overrideBrowserWindowOptions` had no effect on windows opened via `window.open()`. [#49886](https://github.com/electron/electron/pull/49886) <sup>(Also in [39](https://github.com/electron/electron/pull/49910), [40](https://github.com/electron/electron/pull/49909), [41](https://github.com/electron/electron/pull/49911))</sup>
  125. * Fixed an issue where some DevTools functionality didn't work as expected. [#50274](https://github.com/electron/electron/pull/50274) <sup>(Also in [40](https://github.com/electron/electron/pull/50275), [41](https://github.com/electron/electron/pull/50276))</sup>
  126. * Fixed an issue where some `shell` functionality may not work on Linux if the target window is already open. [#49499](https://github.com/electron/electron/pull/49499) <sup>(Also in [41](https://github.com/electron/electron/pull/49594))</sup>
  127. * Fixed an issue where some packages weren't correctly filtered on macOS in dialogs. [#49444](https://github.com/electron/electron/pull/49444) <sup>(Also in [38](https://github.com/electron/electron/pull/49471), [39](https://github.com/electron/electron/pull/49472), [40](https://github.com/electron/electron/pull/49473), [41](https://github.com/electron/electron/pull/49470))</sup>
  128. * Fixed an issue where the Squirrel.Mac installer could resolve the target bundle path to different locations at different stages of an install. [#50765](https://github.com/electron/electron/pull/50765)
  129. * Fixed an issue where the `webContents.print()` callback may not fire correctly in some cases. [#50603](https://github.com/electron/electron/pull/50603) <sup>(Also in [41](https://github.com/electron/electron/pull/50604))</sup>
  130. * Fixed an issue where traffic light buttons would flash at position (0,0) when restoring a window with a custom `trafficLightPosition` from minimization on macOS. [#50183](https://github.com/electron/electron/pull/50183) <sup>(Also in [39](https://github.com/electron/electron/pull/50208), [40](https://github.com/electron/electron/pull/50207), [41](https://github.com/electron/electron/pull/50209))</sup>
  131. * Fixed an issue where webContents.print() would ignore pageSize / mediaSize when silent was true. [#50855](https://github.com/electron/electron/pull/50855) <sup>(Also in [41](https://github.com/electron/electron/pull/50856))</sup>
  132. * Fixed an issue whereby a duplicate "Toggle Full Screen" menu item appeared in the View menu on macOS. [#49074](https://github.com/electron/electron/pull/49074) <sup>(Also in [38](https://github.com/electron/electron/pull/49596), [39](https://github.com/electron/electron/pull/49597), [40](https://github.com/electron/electron/pull/49595), [41](https://github.com/electron/electron/pull/49598))</sup>
  133. * Fixed aspect ratio min/max size clamping to correctly account for extraSize on macOS. [#50836](https://github.com/electron/electron/pull/50836) <sup>(Also in [40](https://github.com/electron/electron/pull/50834), [41](https://github.com/electron/electron/pull/50835))</sup>
  134. * Fixed borders and smearing in transparent frameless/client frame windows on Linux. [#51430](https://github.com/electron/electron/pull/51430) (Also in 41)
  135. * Fixed bug that could occasionally cause browserWindow's `always-on-top-changed` event to fire with incorrect values. [#51133](https://github.com/electron/electron/pull/51133) <sup>(Also in [40](https://github.com/electron/electron/pull/51134), [41](https://github.com/electron/electron/pull/51135))</sup>
  136. * Fixed bug where opening a message box immediately upon closing a child window may cause the parent window to freeze on Windows. [#50078](https://github.com/electron/electron/pull/50078) <sup>(Also in [39](https://github.com/electron/electron/pull/50190), [40](https://github.com/electron/electron/pull/50189), [41](https://github.com/electron/electron/pull/50191))</sup>
  137. * Fixed build failure when printing is disabled. [#50056](https://github.com/electron/electron/pull/50056) <sup>(Also in [41](https://github.com/electron/electron/pull/50077))</sup>
  138. * Fixed certain DevTools extension panels not showing without a page reload. [#50640](https://github.com/electron/electron/pull/50640)
  139. * Fixed crash in platform_util::Beep() on Linux. [#49442](https://github.com/electron/electron/pull/49442) <sup>(Also in [39](https://github.com/electron/electron/pull/49484), [40](https://github.com/electron/electron/pull/49482), [41](https://github.com/electron/electron/pull/49483))</sup>
  140. * Fixed crash when `app.setPath('sessionData')` was called with a non-existent directory. [#50908](https://github.com/electron/electron/pull/50908) <sup>(Also in [41](https://github.com/electron/electron/pull/50958))</sup>
  141. * Fixed crash when handling JavaScript dialogs from windows opened with invalid or empty URLs. [#50398](https://github.com/electron/electron/pull/50398) <sup>(Also in [39](https://github.com/electron/electron/pull/50400), [40](https://github.com/electron/electron/pull/50401), [41](https://github.com/electron/electron/pull/50399))</sup>
  142. * Fixed CSS selector syntax in default app styles to properly apply animations to hero icons. [#49950](https://github.com/electron/electron/pull/49950) <sup>(Also in [41](https://github.com/electron/electron/pull/50033))</sup>
  143. * Fixed dependency issue that caused Squirrel.Mac updates to fail. [#49980](https://github.com/electron/electron/pull/49980)
  144. * Fixed dock menu items not respecting enabled and checked properties on macOS. [#49574](https://github.com/electron/electron/pull/49574) <sup>(Also in [38](https://github.com/electron/electron/pull/49627), [39](https://github.com/electron/electron/pull/49626), [40](https://github.com/electron/electron/pull/49624), [41](https://github.com/electron/electron/pull/49625))</sup>
  145. * Fixed draggable regions not updating position when DevTools is docked to the left or right in a frameless window. [#49822](https://github.com/electron/electron/pull/49822) <sup>(Also in [39](https://github.com/electron/electron/pull/49846), [40](https://github.com/electron/electron/pull/49847), [41](https://github.com/electron/electron/pull/49848))</sup>
  146. * Fixed draggable regions responding to clicks in hidden `WebContentsView`. [#51245](https://github.com/electron/electron/pull/51245) (Also in 40, 41)
  147. * Fixed duplicate mouse hooks stacking on Windows when `UnhookWindowsHookEx` fails in `SetForwardMouseMessages`. [#51418](https://github.com/electron/electron/pull/51418) (Also in 41)
  148. * Fixed improper focus tracking in BaseWindow on MacOS. [#50339](https://github.com/electron/electron/pull/50339) <sup>(Also in [39](https://github.com/electron/electron/pull/50338), [40](https://github.com/electron/electron/pull/50337), [41](https://github.com/electron/electron/pull/50340))</sup>
  149. * Fixed logic bug that rendered certain window types un-resizable on MAS builds. [#50356](https://github.com/electron/electron/pull/50356) <sup>(Also in [40](https://github.com/electron/electron/pull/50355), [41](https://github.com/electron/electron/pull/50354))</sup>
  150. * Fixed macOS text replacement not working on `contenteditable` elements. [#51344](https://github.com/electron/electron/pull/51344) (Also in 40, 41)
  151. * Fixed memory leak when setting icons on Linux/GTK. [#49863](https://github.com/electron/electron/pull/49863) <sup>(Also in [38](https://github.com/electron/electron/pull/49897), [39](https://github.com/electron/electron/pull/49896), [40](https://github.com/electron/electron/pull/49898), [41](https://github.com/electron/electron/pull/49895))</sup>
  152. * Fixed menu bar hiding after a call to `win.setFullScreen(false)` when not in fullscreen on Linux. [#45930](https://github.com/electron/electron/pull/45930) <sup>(Also in [39](https://github.com/electron/electron/pull/49995), [40](https://github.com/electron/electron/pull/49994), [41](https://github.com/electron/electron/pull/49996))</sup>
  153. * Fixed menus to correctly emit `menu-will-close` event when closed after any submenu has been open. [#49783](https://github.com/electron/electron/pull/49783) <sup>(Also in [40](https://github.com/electron/electron/pull/49963), [41](https://github.com/electron/electron/pull/49964))</sup>
  154. * Fixed native notification clicks not focusing the application window on Wayland. [#50669](https://github.com/electron/electron/pull/50669)
  155. * Fixed printing on Linux failing with "Invalid printer settings". [#50487](https://github.com/electron/electron/pull/50487) <sup>(Also in [41](https://github.com/electron/electron/pull/50486))</sup>
  156. * Fixed rendering glitches on macOS. [#49608](https://github.com/electron/electron/pull/49608) <sup>(Also in [40](https://github.com/electron/electron/pull/49609), [41](https://github.com/electron/electron/pull/49621))</sup>
  157. * Fixed resize hit targets for frameless windows on Windows. Resize targets now start at the side and bottom edges of the window and extend outward when `frame: false`, matching the behavior for windows with frames. [#50864](https://github.com/electron/electron/pull/50864) <sup>(Also in [41](https://github.com/electron/electron/pull/50863))</sup>
  158. * Fixed several issues with consistent window sizing and resizing on Linux when CSD is in use (e.g. on GNOME/Wayland) and added support for creating content-sized windows. [#49209](https://github.com/electron/electron/pull/49209) <sup>(Also in [41](https://github.com/electron/electron/pull/49835))</sup>
  159. * Fixed shutdown crash on windows when hidden titlebar is enabled. [#50042](https://github.com/electron/electron/pull/50042) <sup>(Also in [39](https://github.com/electron/electron/pull/50054), [40](https://github.com/electron/electron/pull/50053), [41](https://github.com/electron/electron/pull/50055))</sup>
  160. * Fixed shutdown crash on windows when power monitor notifications were subscribed. [#50893](https://github.com/electron/electron/pull/50893)
  161. * Fixed squirrel.mac stacked update behavior to old staged updates. [#49365](https://github.com/electron/electron/pull/49365) <sup>(Also in [39](https://github.com/electron/electron/pull/49637), [40](https://github.com/electron/electron/pull/49638), [41](https://github.com/electron/electron/pull/49639))</sup>
  162. * Fixed stable bounds on Windows when toggling `setResizable` for frameless windows. [#51296](https://github.com/electron/electron/pull/51296) (Also in 41)
  163. * Fixed startup crash when V8 sandbox is disabled. [#49210](https://github.com/electron/electron/pull/49210) <sup>(Also in [40](https://github.com/electron/electron/pull/49884), [41](https://github.com/electron/electron/pull/49504))</sup>
  164. * Fixed test scaffolding bug when running tests locally on Linux. [#51149](https://github.com/electron/electron/pull/51149) <sup>(Also in [40](https://github.com/electron/electron/pull/51151), [41](https://github.com/electron/electron/pull/51150))</sup>
  165. * Fixed the appearance of maximized windows on GNOME in Wayland, especially when non-default GTK themes like Breeze are set. [#50644](https://github.com/electron/electron/pull/50644) <sup>(Also in [41](https://github.com/electron/electron/pull/50645))</sup>
  166. * Fixed the crash keys being lost and the crash reporter hanging on macOS when many dynamic crash keys were registered. [#50839](https://github.com/electron/electron/pull/50839) <sup>(Also in [40](https://github.com/electron/electron/pull/50838), [41](https://github.com/electron/electron/pull/50837))</sup>
  167. * Fixed transparency being lost across `setResizable` toggles on Windows. [#51218](https://github.com/electron/electron/pull/51218) (Also in 41)
  168. * Fixed user resizing of transparent windows on win32 platform. [#50299](https://github.com/electron/electron/pull/50299) <sup>(Also in [39](https://github.com/electron/electron/pull/50300), [40](https://github.com/electron/electron/pull/50301), [41](https://github.com/electron/electron/pull/50298))</sup>
  169. * Fixed utilityProcess exit event reporting incorrect exit codes on Windows when the exit code has the high bit. [#50385](https://github.com/electron/electron/pull/50385) <sup>(Also in [40](https://github.com/electron/electron/pull/50387), [41](https://github.com/electron/electron/pull/50386))</sup>
  170. * Fixed webRequest handlers not being called for intercepted protocols and special net.fetch URLs. [#45915](https://github.com/electron/electron/pull/45915)
  171. * Fixed window freeze when failing to enter/exit fullscreen on macOS. [#50342](https://github.com/electron/electron/pull/50342) <sup>(Also in [39](https://github.com/electron/electron/pull/50341), [40](https://github.com/electron/electron/pull/50344), [41](https://github.com/electron/electron/pull/50343))</sup>
  172. * Fixed window insets not being removed on fullscreen windows on Windows. [#51331](https://github.com/electron/electron/pull/51331) (Also in 41)
  173. * Fixed window sizing on Linux when min/max size constraints are set or `resizable` is `false`. Windows no longer shrink below the requested max size or grow taller when resizability is disabled. [#49903](https://github.com/electron/electron/pull/49903) <sup>(Also in [41](https://github.com/electron/electron/pull/49971))</sup>
  174. * Fixed Windows notification toast action and reply events not dispatching from WinRT activation path. [#51330](https://github.com/electron/electron/pull/51330) (Also in 41)
  175. * Global shortcuts can now be registered more reliably on Wayland using the `globalShortcut` API. [#49988](https://github.com/electron/electron/pull/49988) <sup>(Also in [41](https://github.com/electron/electron/pull/50051))</sup>
  176. * Improved the appearance of shadows and borders on frameless windows on Wayland. [#50007](https://github.com/electron/electron/pull/50007) <sup>(Also in [41](https://github.com/electron/electron/pull/50213))</sup>
  177. * Moved Electron-specific help menu links to the default app only; unpackaged apps will no longer see these items in their default menu. [#50861](https://github.com/electron/electron/pull/50861) <sup>(Also in [40](https://github.com/electron/electron/pull/50860), [41](https://github.com/electron/electron/pull/50859))</sup>
  178. * Removed "representedObject is not a WeakPtrToElectronMenuModelAsNSObject" logging when interacting with macOS menus. [#50614](https://github.com/electron/electron/pull/50614) <sup>(Also in [41](https://github.com/electron/electron/pull/50613))</sup>
  179. ## Other Changes
  180. * Added support for using a proxy during yarn install. [#50351](https://github.com/electron/electron/pull/50351) <sup>(Also in [39](https://github.com/electron/electron/pull/50349), [40](https://github.com/electron/electron/pull/50352), [41](https://github.com/electron/electron/pull/50350))</sup>
  181. * Backported fix for 483569511. [#49788](https://github.com/electron/electron/pull/49788)
  182. * Bumped Chromium to 148.0.7778.40. [#51126](https://github.com/electron/electron/pull/51126)
  183. * Bumped Chromium to 148.0.7778.56. [#51299](https://github.com/electron/electron/pull/51299)
  184. * Enabled profile-guided optimization for V8 builtins in release builds, improving JavaScript builtin performance (Array, String, RegExp, etc.). [#50573](https://github.com/electron/electron/pull/50573) <sup>(Also in [40](https://github.com/electron/electron/pull/50575), [41](https://github.com/electron/electron/pull/50574))</sup>
  185. * Fixed `gn gen` failing to resolve `electron_version` when building from a `git worktree` checkout. [#51166](https://github.com/electron/electron/pull/51166) <sup>(Also in [39](https://github.com/electron/electron/pull/51163), [40](https://github.com/electron/electron/pull/51164), [41](https://github.com/electron/electron/pull/51165))</sup>
  186. * Fixed crash in platform_util::Beep() on Linux. [#49680](https://github.com/electron/electron/pull/49680) <sup>(Also in [40](https://github.com/electron/electron/pull/49864), [41](https://github.com/electron/electron/pull/49865))</sup>
  187. * Refactored `gin_helper::Promise` to be managed by cppgc. [#51405](https://github.com/electron/electron/pull/51405)
  188. * Refactored our MSIX updater code to use an upstream Chromium pattern and eliminates the need for special exception handling build flags. [#49645](https://github.com/electron/electron/pull/49645) <sup>(Also in [39](https://github.com/electron/electron/pull/49688), [40](https://github.com/electron/electron/pull/49687), [41](https://github.com/electron/electron/pull/49686))</sup>
  189. * Replaced ESLint with oxlint and added oxfmt for JS/TS formatting. [#51435](https://github.com/electron/electron/pull/51435)
  190. * Restricted npm tarball contents to an explicit allowlist. [#51308](https://github.com/electron/electron/pull/51308)
  191. * Security: backported fixes for CVE-2026-6358, CVE-2026-6359, CVE-2026-6360, CVE-2026-6310, CVE-2026-6312, CVE-2026-6313, CVE-2026-6314, CVE-2026-6316, CVE-2026-6361, CVE-2026-6362. [#51136](https://github.com/electron/electron/pull/51136)
  192. ## Documentation
  193. * Documentation changes: [#46926](https://github.com/electron/electron/pull/46926), [#49401](https://github.com/electron/electron/pull/49401), [#50292](https://github.com/electron/electron/pull/50292), [#50526](https://github.com/electron/electron/pull/50526), [#51368](https://github.com/electron/electron/pull/51368), [#51309](https://github.com/electron/electron/pull/51309), [#51423](https://github.com/electron/electron/pull/51423)
  194. ## Notices
  195. ### End of Support for 39.x.y
  196. Electron 39.x.y has reached end-of-support as per the project's [support policy](https://www.electronjs.org/docs/latest/tutorial/electron-timelines#version-support-policy). Developers and applications are encouraged to upgrade to a newer version of Electron.

view on githubimported 2026-09-28 via npm