From 6fb6a35135e96022f0fba83688f520354ac745da Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 27 Oct 2025 15:25:20 -0500 Subject: [PATCH 01/16] docs: add Electron 39 blog post --- blog/electron-39-0.md | 103 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 blog/electron-39-0.md diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md new file mode 100644 index 000000000..672cea6cc --- /dev/null +++ b/blog/electron-39-0.md @@ -0,0 +1,103 @@ +--- +title: Electron 39.0.0 +date: 2025-10-28:00:00.000Z +authors: + - ckerr +slug: electron-39-0 +tags: [release] +--- + +Electron 39.0.0 has been released! It includes upgrades to Chromium 142.0.7444.52, V8 14.2, and Node 22.20.0. + +--- + +The Electron team is excited to announce the release of Electron 39.0.0! You can install it with npm via `npm install electron@latest` or download it from our [releases website](https://releases.electronjs.org/release?channel=stable). Continue reading for details about this release. + +If you have any feedback, please share it with us on [Bluesky](https://bsky.app/profile/electronjs.org) or [Mastodon](https://social.lfx.dev/@electronjs), or join our community [Discord](https://discord.com/invite/electronjs)! Bugs and feature requests can be reported in Electron's [issue tracker](https://github.com/electron/electron/issues). + +## Notable Changes + +### Stack Changes + +- Chromium `142.0.7444.52` + - [New in 142](https://developer.chrome.com/blog/new-in-chrome-142) + - [New in 141](https://developer.chrome.com/blog/new-in-chrome-141) +- Node `22.22.0` + - [v22.20.0 Announcement](https://nodejs.org/en/blog/release/v22.20.0) + - [v22.19.0 Announcement](https://nodejs.org/en/blog/release/v22.19.0) +- V8 `14.0` + - [V8 roll increment](https://chromium.googlesource.com/v8/v8.git/+/bb294624702efbb17691b642333f06bf5108e600) + +Electron 39 upgrades Chromium from `140.0.7339.41` to `142.0.7444.52`, Node.js from `22.18.0` to `v22.20.0`, and V8 from `14.0` to `14.2`. + +### ASAR Integrity graduates to stable + +A long-standing "experimental" feature -- ASAR integrity -- is now stable in Electron 39. When you enable this feature, it validates your packaged `app.asar` at runtime against a build-time hash to detect any tampering. If no hash is present or if there is a mismatch in the hashes, the app will forcefully terminate. + +See [this documentation](https://www.electronjs.org/docs/latest/tutorial/asar-integrity) for full information on how on the feature works, on how to use it in your application, and how to use it in Electron Forge and Electron Pacakger. + +In related news, [Electron Packager](https://github.com/electron/packager) v19 now enables ASAR by default. [#1841](https://github.com/electron/packager/pull/1841) + +### New Features and Improvements + +- Added `app.isHardwareAccelerationEnabled()`. [#48680](https://github.com/electron/electron/pull/48680) +- Added `RGBAF16` output format with scRGB HDR color space support to Offscreen Rendering. [#48504](https://github.com/electron/electron/pull/48504) +- Added `fileBacked` and `purgeable` fields to `process.getSystemMemoryInfo()` for macOS. [#47628](https://github.com/electron/electron/pull/47628) (Also in [37](https://github.com/electron/electron/pull/48143), [38](https://github.com/electron/electron/pull/48146)) +- Added `tray.{get|set}AutosaveName` to enable macOS tray icons to maintain position across launches. [#47838](https://github.com/electron/electron/pull/47838) (Also in [36](https://github.com/electron/electron/pull/48078), [37](https://github.com/electron/electron/pull/48076), [38](https://github.com/electron/electron/pull/48077)) +- Added `webFrameMain.fromFrameToken(processId, frameToken)` to get a `WebFrameMain` instance from its frame token. [#47850](https://github.com/electron/electron/pull/47850) (Also in [38](https://github.com/electron/electron/pull/47942)) +- Added methods to enable more granular accessibility support management. [#48625](https://github.com/electron/electron/pull/48625) +- Added support for `USBDevice.configurations`. [#47459](https://github.com/electron/electron/pull/47459) +- Added the ability to retrieve the system accent color on Linux using `systemPreferences.getAccentColor`. [#48628](https://github.com/electron/electron/pull/48628) +- Allowed for persisting File System API grant status within a given session. [#48326](https://github.com/electron/electron/pull/48326) (Also in [37](https://github.com/electron/electron/pull/48328), [38](https://github.com/electron/electron/pull/48327)) +- Internally switched to using `DIR_ASSETS` instead of `DIR_MODULE`/`DIR_EXE` to locate assets and resources, and added "assets" as a key that can be queried via `app.getPath`. [#47439](https://github.com/electron/electron/pull/47439) (Also in [37](https://github.com/electron/electron/pull/47951), [38](https://github.com/electron/electron/pull/47950)) +- Support dynamic ESM imports in non-context isolated preloads. [#48488](https://github.com/electron/electron/pull/48488) (Also in [37](https://github.com/electron/electron/pull/48487), [38](https://github.com/electron/electron/pull/48489)) +- Marked the [ASAR integrity](https://www.electronjs.org/docs/latest/tutorial/asar-integrity) feature as stable. It had previously been experimental. [#48434](https://github.com/electron/electron/pull/48434) + +### Breaking Changes + +#### Deprecated: `--host-rules` command line switch + +Chromium is deprecating the `--host-rules` switch. + +You should use `--host-resolver-rules` instead. + +#### Behavior Changed: window.open popups are always resizable + +Per current [WHATWG spec](https://html.spec.whatwg.org/multipage/nav-history-apis.html#dom-open-dev), the `window.open` API will now always create a resizable popup window. + +To restore previous behavior: + +```js +webContents.setWindowOpenHandler((details) => { + return { + action: 'allow', + overrideBrowserWindowOptions: { + resizable: details.features.includes('resizable=yes') + } + } +}) +``` + +#### Behavior Changed: shared texture OSR `paint` event data structure + +When using shared texture offscreen rendering feature, the `paint` event now emits a more structured object. +It moves the `sharedTextureHandle`, `planes`, `modifier` into a unified `handle` property. +See [here](https://www.electronjs.org/docs/latest/api/structures/offscreen-shared-texture) for more details. + +## End of Support for 36.x.y + +Electron 36.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. + +| E39 (Oct'25) | E40 (Jan'26) | E41 (Feb'26) | +| ------------ | ------------ | ------------ | +| 39.x.y | 40.x.y | 41.x.y | +| 38.x.y | 39.x.y | 40.x.y | +| 37.x.y | 38.x.y | 39.x.y | + +## What's Next + +In the short term, you can expect the team to continue to focus on keeping up with the development of the major components that make up Electron, including Chromium, Node, and V8. + +You can find [Electron's public timeline here](https://www.electronjs.org/docs/latest/tutorial/electron-timelines). + +More information about future changes can be found on the [Planned Breaking Changes](https://github.com/electron/electron/blob/main/docs/breaking-changes.md) page. From 59665663ef64357bc7960877f9794ae479b92a94 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Mon, 27 Oct 2025 17:09:08 -0500 Subject: [PATCH 02/16] chore: make prettier happy --- blog/electron-39-0.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index 672cea6cc..45cbf97d6 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -72,10 +72,10 @@ webContents.setWindowOpenHandler((details) => { return { action: 'allow', overrideBrowserWindowOptions: { - resizable: details.features.includes('resizable=yes') - } - } -}) + resizable: details.features.includes('resizable=yes'), + }, + }; +}); ``` #### Behavior Changed: shared texture OSR `paint` event data structure From 38218e24daa75c57f89797472d29991593b1e0d0 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Mon, 27 Oct 2025 15:15:30 -0700 Subject: [PATCH 03/16] use jsx style prop --- blog/electron-39-0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index 45cbf97d6..f57b1ad5a 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -42,15 +42,15 @@ In related news, [Electron Packager](https://github.com/electron/packager) v19 n - Added `app.isHardwareAccelerationEnabled()`. [#48680](https://github.com/electron/electron/pull/48680) - Added `RGBAF16` output format with scRGB HDR color space support to Offscreen Rendering. [#48504](https://github.com/electron/electron/pull/48504) -- Added `fileBacked` and `purgeable` fields to `process.getSystemMemoryInfo()` for macOS. [#47628](https://github.com/electron/electron/pull/47628) (Also in [37](https://github.com/electron/electron/pull/48143), [38](https://github.com/electron/electron/pull/48146)) -- Added `tray.{get|set}AutosaveName` to enable macOS tray icons to maintain position across launches. [#47838](https://github.com/electron/electron/pull/47838) (Also in [36](https://github.com/electron/electron/pull/48078), [37](https://github.com/electron/electron/pull/48076), [38](https://github.com/electron/electron/pull/48077)) -- Added `webFrameMain.fromFrameToken(processId, frameToken)` to get a `WebFrameMain` instance from its frame token. [#47850](https://github.com/electron/electron/pull/47850) (Also in [38](https://github.com/electron/electron/pull/47942)) +- Added `fileBacked` and `purgeable` fields to `process.getSystemMemoryInfo()` for macOS. [#47628](https://github.com/electron/electron/pull/47628) (Also in [37](https://github.com/electron/electron/pull/48143), [38](https://github.com/electron/electron/pull/48146)) +- Added `tray.{get|set}AutosaveName` to enable macOS tray icons to maintain position across launches. [#47838](https://github.com/electron/electron/pull/47838) (Also in [36](https://github.com/electron/electron/pull/48078), [37](https://github.com/electron/electron/pull/48076), [38](https://github.com/electron/electron/pull/48077)) +- Added `webFrameMain.fromFrameToken(processId, frameToken)` to get a `WebFrameMain` instance from its frame token. [#47850](https://github.com/electron/electron/pull/47850) (Also in [38](https://github.com/electron/electron/pull/47942)) - Added methods to enable more granular accessibility support management. [#48625](https://github.com/electron/electron/pull/48625) - Added support for `USBDevice.configurations`. [#47459](https://github.com/electron/electron/pull/47459) - Added the ability to retrieve the system accent color on Linux using `systemPreferences.getAccentColor`. [#48628](https://github.com/electron/electron/pull/48628) -- Allowed for persisting File System API grant status within a given session. [#48326](https://github.com/electron/electron/pull/48326) (Also in [37](https://github.com/electron/electron/pull/48328), [38](https://github.com/electron/electron/pull/48327)) -- Internally switched to using `DIR_ASSETS` instead of `DIR_MODULE`/`DIR_EXE` to locate assets and resources, and added "assets" as a key that can be queried via `app.getPath`. [#47439](https://github.com/electron/electron/pull/47439) (Also in [37](https://github.com/electron/electron/pull/47951), [38](https://github.com/electron/electron/pull/47950)) -- Support dynamic ESM imports in non-context isolated preloads. [#48488](https://github.com/electron/electron/pull/48488) (Also in [37](https://github.com/electron/electron/pull/48487), [38](https://github.com/electron/electron/pull/48489)) +- Allowed for persisting File System API grant status within a given session. [#48326](https://github.com/electron/electron/pull/48326) (Also in [37](https://github.com/electron/electron/pull/48328), [38](https://github.com/electron/electron/pull/48327)) +- Internally switched to using `DIR_ASSETS` instead of `DIR_MODULE`/`DIR_EXE` to locate assets and resources, and added "assets" as a key that can be queried via `app.getPath`. [#47439](https://github.com/electron/electron/pull/47439) (Also in [37](https://github.com/electron/electron/pull/47951), [38](https://github.com/electron/electron/pull/47950)) +- Support dynamic ESM imports in non-context isolated preloads. [#48488](https://github.com/electron/electron/pull/48488) (Also in [37](https://github.com/electron/electron/pull/48487), [38](https://github.com/electron/electron/pull/48489)) - Marked the [ASAR integrity](https://www.electronjs.org/docs/latest/tutorial/asar-integrity) feature as stable. It had previously been experimental. [#48434](https://github.com/electron/electron/pull/48434) ### Breaking Changes From 8e718c8b9906adc6631665836fc0007f3ba5b96d Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Mon, 27 Oct 2025 15:21:22 -0700 Subject: [PATCH 04/16] use `` --- blog/electron-39-0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index f57b1ad5a..7f10ea013 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -42,15 +42,15 @@ In related news, [Electron Packager](https://github.com/electron/packager) v19 n - Added `app.isHardwareAccelerationEnabled()`. [#48680](https://github.com/electron/electron/pull/48680) - Added `RGBAF16` output format with scRGB HDR color space support to Offscreen Rendering. [#48504](https://github.com/electron/electron/pull/48504) -- Added `fileBacked` and `purgeable` fields to `process.getSystemMemoryInfo()` for macOS. [#47628](https://github.com/electron/electron/pull/47628) (Also in [37](https://github.com/electron/electron/pull/48143), [38](https://github.com/electron/electron/pull/48146)) -- Added `tray.{get|set}AutosaveName` to enable macOS tray icons to maintain position across launches. [#47838](https://github.com/electron/electron/pull/47838) (Also in [36](https://github.com/electron/electron/pull/48078), [37](https://github.com/electron/electron/pull/48076), [38](https://github.com/electron/electron/pull/48077)) -- Added `webFrameMain.fromFrameToken(processId, frameToken)` to get a `WebFrameMain` instance from its frame token. [#47850](https://github.com/electron/electron/pull/47850) (Also in [38](https://github.com/electron/electron/pull/47942)) +- Added `fileBacked` and `purgeable` fields to `process.getSystemMemoryInfo()` for macOS. [#47628](https://github.com/electron/electron/pull/47628) (Also in [37](https://github.com/electron/electron/pull/48143), [38](https://github.com/electron/electron/pull/48146)) +- Added `tray.{get|set}AutosaveName` to enable macOS tray icons to maintain position across launches. [#47838](https://github.com/electron/electron/pull/47838) (Also in [36](https://github.com/electron/electron/pull/48078), [37](https://github.com/electron/electron/pull/48076), [38](https://github.com/electron/electron/pull/48077)) +- Added `webFrameMain.fromFrameToken(processId, frameToken)` to get a `WebFrameMain` instance from its frame token. [#47850](https://github.com/electron/electron/pull/47850) (Also in [38](https://github.com/electron/electron/pull/47942)) - Added methods to enable more granular accessibility support management. [#48625](https://github.com/electron/electron/pull/48625) - Added support for `USBDevice.configurations`. [#47459](https://github.com/electron/electron/pull/47459) - Added the ability to retrieve the system accent color on Linux using `systemPreferences.getAccentColor`. [#48628](https://github.com/electron/electron/pull/48628) -- Allowed for persisting File System API grant status within a given session. [#48326](https://github.com/electron/electron/pull/48326) (Also in [37](https://github.com/electron/electron/pull/48328), [38](https://github.com/electron/electron/pull/48327)) -- Internally switched to using `DIR_ASSETS` instead of `DIR_MODULE`/`DIR_EXE` to locate assets and resources, and added "assets" as a key that can be queried via `app.getPath`. [#47439](https://github.com/electron/electron/pull/47439) (Also in [37](https://github.com/electron/electron/pull/47951), [38](https://github.com/electron/electron/pull/47950)) -- Support dynamic ESM imports in non-context isolated preloads. [#48488](https://github.com/electron/electron/pull/48488) (Also in [37](https://github.com/electron/electron/pull/48487), [38](https://github.com/electron/electron/pull/48489)) +- Allowed for persisting File System API grant status within a given session. [#48326](https://github.com/electron/electron/pull/48326) (Also in [37](https://github.com/electron/electron/pull/48328), [38](https://github.com/electron/electron/pull/48327)) +- Internally switched to using `DIR_ASSETS` instead of `DIR_MODULE`/`DIR_EXE` to locate assets and resources, and added "assets" as a key that can be queried via `app.getPath`. [#47439](https://github.com/electron/electron/pull/47439) (Also in [37](https://github.com/electron/electron/pull/47951), [38](https://github.com/electron/electron/pull/47950)) +- Support dynamic ESM imports in non-context isolated preloads. [#48488](https://github.com/electron/electron/pull/48488) (Also in [37](https://github.com/electron/electron/pull/48487), [38](https://github.com/electron/electron/pull/48489)) - Marked the [ASAR integrity](https://www.electronjs.org/docs/latest/tutorial/asar-integrity) feature as stable. It had previously been experimental. [#48434](https://github.com/electron/electron/pull/48434) ### Breaking Changes From 180c5cf02e5c9812a11800ca67eb495c0f17c9d7 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 28 Oct 2025 09:14:37 -0500 Subject: [PATCH 05/16] empty commit From 7f785d35b55b631bd7f78216da2238044b63a6ef Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 28 Oct 2025 12:16:12 -0500 Subject: [PATCH 06/16] fix: invalid date format in metainfo --- blog/electron-39-0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index 7f10ea013..49fe8ac61 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -1,6 +1,6 @@ --- title: Electron 39.0.0 -date: 2025-10-28:00:00.000Z +date: 2025-10-28T00:00:00.000Z authors: - ckerr slug: electron-39-0 From 9a103ca9d9a5963a92a9198efcf1364bc264c119 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 29 Oct 2025 10:49:37 -0500 Subject: [PATCH 07/16] Update blog/electron-39-0.md Co-authored-by: Niklas Wenzel --- blog/electron-39-0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index 49fe8ac61..b2ba6da89 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -34,7 +34,7 @@ Electron 39 upgrades Chromium from `140.0.7339.41` to `142.0.7444.52`, Node.js f A long-standing "experimental" feature -- ASAR integrity -- is now stable in Electron 39. When you enable this feature, it validates your packaged `app.asar` at runtime against a build-time hash to detect any tampering. If no hash is present or if there is a mismatch in the hashes, the app will forcefully terminate. -See [this documentation](https://www.electronjs.org/docs/latest/tutorial/asar-integrity) for full information on how on the feature works, on how to use it in your application, and how to use it in Electron Forge and Electron Pacakger. +See [the ASAR integrity documentation](https://www.electronjs.org/docs/latest/tutorial/asar-integrity) for full information on how on the feature works, on how to use it in your application, and how to use it in Electron Forge and Electron Packager. In related news, [Electron Packager](https://github.com/electron/packager) v19 now enables ASAR by default. [#1841](https://github.com/electron/packager/pull/1841) From 5d4f0c8ecd60db452be7d4c6d1700c6d659906f1 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 29 Oct 2025 10:49:49 -0500 Subject: [PATCH 08/16] Update blog/electron-39-0.md Co-authored-by: Niklas Wenzel --- blog/electron-39-0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index b2ba6da89..05efb2b9a 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -42,7 +42,6 @@ In related news, [Electron Packager](https://github.com/electron/packager) v19 n - Added `app.isHardwareAccelerationEnabled()`. [#48680](https://github.com/electron/electron/pull/48680) - Added `RGBAF16` output format with scRGB HDR color space support to Offscreen Rendering. [#48504](https://github.com/electron/electron/pull/48504) -- Added `fileBacked` and `purgeable` fields to `process.getSystemMemoryInfo()` for macOS. [#47628](https://github.com/electron/electron/pull/47628) (Also in [37](https://github.com/electron/electron/pull/48143), [38](https://github.com/electron/electron/pull/48146)) - Added `tray.{get|set}AutosaveName` to enable macOS tray icons to maintain position across launches. [#47838](https://github.com/electron/electron/pull/47838) (Also in [36](https://github.com/electron/electron/pull/48078), [37](https://github.com/electron/electron/pull/48076), [38](https://github.com/electron/electron/pull/48077)) - Added `webFrameMain.fromFrameToken(processId, frameToken)` to get a `WebFrameMain` instance from its frame token. [#47850](https://github.com/electron/electron/pull/47850) (Also in [38](https://github.com/electron/electron/pull/47942)) - Added methods to enable more granular accessibility support management. [#48625](https://github.com/electron/electron/pull/48625) From fb75c0e84bd66eb5ebf4bd68dc8bb91988e43e82 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 29 Oct 2025 10:50:05 -0500 Subject: [PATCH 09/16] Update blog/electron-39-0.md Co-authored-by: Niklas Wenzel --- blog/electron-39-0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index 05efb2b9a..a37623b28 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -42,7 +42,6 @@ In related news, [Electron Packager](https://github.com/electron/packager) v19 n - Added `app.isHardwareAccelerationEnabled()`. [#48680](https://github.com/electron/electron/pull/48680) - Added `RGBAF16` output format with scRGB HDR color space support to Offscreen Rendering. [#48504](https://github.com/electron/electron/pull/48504) -- Added `tray.{get|set}AutosaveName` to enable macOS tray icons to maintain position across launches. [#47838](https://github.com/electron/electron/pull/47838) (Also in [36](https://github.com/electron/electron/pull/48078), [37](https://github.com/electron/electron/pull/48076), [38](https://github.com/electron/electron/pull/48077)) - Added `webFrameMain.fromFrameToken(processId, frameToken)` to get a `WebFrameMain` instance from its frame token. [#47850](https://github.com/electron/electron/pull/47850) (Also in [38](https://github.com/electron/electron/pull/47942)) - Added methods to enable more granular accessibility support management. [#48625](https://github.com/electron/electron/pull/48625) - Added support for `USBDevice.configurations`. [#47459](https://github.com/electron/electron/pull/47459) From 6fa9521493248228021a75b1d348938e455aee65 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 29 Oct 2025 10:50:14 -0500 Subject: [PATCH 10/16] Update blog/electron-39-0.md Co-authored-by: Niklas Wenzel --- blog/electron-39-0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index a37623b28..f6a873e9d 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -42,7 +42,6 @@ In related news, [Electron Packager](https://github.com/electron/packager) v19 n - Added `app.isHardwareAccelerationEnabled()`. [#48680](https://github.com/electron/electron/pull/48680) - Added `RGBAF16` output format with scRGB HDR color space support to Offscreen Rendering. [#48504](https://github.com/electron/electron/pull/48504) -- Added `webFrameMain.fromFrameToken(processId, frameToken)` to get a `WebFrameMain` instance from its frame token. [#47850](https://github.com/electron/electron/pull/47850) (Also in [38](https://github.com/electron/electron/pull/47942)) - Added methods to enable more granular accessibility support management. [#48625](https://github.com/electron/electron/pull/48625) - Added support for `USBDevice.configurations`. [#47459](https://github.com/electron/electron/pull/47459) - Added the ability to retrieve the system accent color on Linux using `systemPreferences.getAccentColor`. [#48628](https://github.com/electron/electron/pull/48628) From 3231ae9f818bff00cdbadf3c5c551fe4733da321 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 29 Oct 2025 10:50:23 -0500 Subject: [PATCH 11/16] Update blog/electron-39-0.md Co-authored-by: Niklas Wenzel --- blog/electron-39-0.md | 1 - 1 file changed, 1 deletion(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index f6a873e9d..8cffe8776 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -46,7 +46,6 @@ In related news, [Electron Packager](https://github.com/electron/packager) v19 n - Added support for `USBDevice.configurations`. [#47459](https://github.com/electron/electron/pull/47459) - Added the ability to retrieve the system accent color on Linux using `systemPreferences.getAccentColor`. [#48628](https://github.com/electron/electron/pull/48628) - Allowed for persisting File System API grant status within a given session. [#48326](https://github.com/electron/electron/pull/48326) (Also in [37](https://github.com/electron/electron/pull/48328), [38](https://github.com/electron/electron/pull/48327)) -- Internally switched to using `DIR_ASSETS` instead of `DIR_MODULE`/`DIR_EXE` to locate assets and resources, and added "assets" as a key that can be queried via `app.getPath`. [#47439](https://github.com/electron/electron/pull/47439) (Also in [37](https://github.com/electron/electron/pull/47951), [38](https://github.com/electron/electron/pull/47950)) - Support dynamic ESM imports in non-context isolated preloads. [#48488](https://github.com/electron/electron/pull/48488) (Also in [37](https://github.com/electron/electron/pull/48487), [38](https://github.com/electron/electron/pull/48489)) - Marked the [ASAR integrity](https://www.electronjs.org/docs/latest/tutorial/asar-integrity) feature as stable. It had previously been experimental. [#48434](https://github.com/electron/electron/pull/48434) From 30d3750c84445ba867e7cbe1a0ab002298585df9 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 29 Oct 2025 10:50:34 -0500 Subject: [PATCH 12/16] Update blog/electron-39-0.md Co-authored-by: Niklas Wenzel --- blog/electron-39-0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index 8cffe8776..4e87455ba 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -76,7 +76,7 @@ webContents.setWindowOpenHandler((details) => { #### Behavior Changed: shared texture OSR `paint` event data structure -When using shared texture offscreen rendering feature, the `paint` event now emits a more structured object. +When using the shared texture offscreen rendering feature, the `paint` event now emits a more structured object. It moves the `sharedTextureHandle`, `planes`, `modifier` into a unified `handle` property. See [here](https://www.electronjs.org/docs/latest/api/structures/offscreen-shared-texture) for more details. From 63234da51bda8cce28ab47d71b766bd45c9e8c3a Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 29 Oct 2025 10:50:46 -0500 Subject: [PATCH 13/16] Update blog/electron-39-0.md Co-authored-by: Niklas Wenzel --- blog/electron-39-0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index 4e87455ba..90024a380 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -57,7 +57,7 @@ Chromium is deprecating the `--host-rules` switch. You should use `--host-resolver-rules` instead. -#### Behavior Changed: window.open popups are always resizable +#### Behavior Changed: `window.open` popups are always resizable Per current [WHATWG spec](https://html.spec.whatwg.org/multipage/nav-history-apis.html#dom-open-dev), the `window.open` API will now always create a resizable popup window. From 81e50d1c423a10e8c4f5067c2e56da6a78d93b3e Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 29 Oct 2025 10:50:54 -0500 Subject: [PATCH 14/16] Update blog/electron-39-0.md Co-authored-by: Niklas Wenzel --- blog/electron-39-0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index 90024a380..b79d310ed 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -78,7 +78,7 @@ webContents.setWindowOpenHandler((details) => { When using the shared texture offscreen rendering feature, the `paint` event now emits a more structured object. It moves the `sharedTextureHandle`, `planes`, `modifier` into a unified `handle` property. -See [here](https://www.electronjs.org/docs/latest/api/structures/offscreen-shared-texture) for more details. +See [the `OffscreenSharedTexture` documentation](https://www.electronjs.org/docs/latest/api/structures/offscreen-shared-texture) for more details. ## End of Support for 36.x.y From 5855fc976792e1305709cf698970d4ac27feeaaf Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 29 Oct 2025 12:07:04 -0500 Subject: [PATCH 15/16] fix: incorrect Node.js version listed --- blog/electron-39-0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index b79d310ed..4b7df6486 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -22,7 +22,7 @@ If you have any feedback, please share it with us on [Bluesky](https://bsky.app/ - Chromium `142.0.7444.52` - [New in 142](https://developer.chrome.com/blog/new-in-chrome-142) - [New in 141](https://developer.chrome.com/blog/new-in-chrome-141) -- Node `22.22.0` +- Node `22.20.0` - [v22.20.0 Announcement](https://nodejs.org/en/blog/release/v22.20.0) - [v22.19.0 Announcement](https://nodejs.org/en/blog/release/v22.19.0) - V8 `14.0` From 5f1786bd1d57ebe566a4e15f513bd63d16c8fba5 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 29 Oct 2025 12:10:31 -0500 Subject: [PATCH 16/16] fix: incorrect v8 version listed --- blog/electron-39-0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/electron-39-0.md b/blog/electron-39-0.md index 4b7df6486..794199d14 100644 --- a/blog/electron-39-0.md +++ b/blog/electron-39-0.md @@ -25,7 +25,7 @@ If you have any feedback, please share it with us on [Bluesky](https://bsky.app/ - Node `22.20.0` - [v22.20.0 Announcement](https://nodejs.org/en/blog/release/v22.20.0) - [v22.19.0 Announcement](https://nodejs.org/en/blog/release/v22.19.0) -- V8 `14.0` +- V8 `14.2` - [V8 roll increment](https://chromium.googlesource.com/v8/v8.git/+/bb294624702efbb17691b642333f06bf5108e600) Electron 39 upgrades Chromium from `140.0.7339.41` to `142.0.7444.52`, Node.js from `22.18.0` to `v22.20.0`, and V8 from `14.0` to `14.2`.