git: 11724f3a279b - main - devel/electron44: Update to 44.7.0

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Fri, 09 Oct 2026 04:56:07 UTC
The branch main has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=11724f3a279b25e621d5d9254460139a150a4230

commit 11724f3a279b25e621d5d9254460139a150a4230
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2026-10-09 04:54:10 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2026-10-09 04:55:45 +0000

    devel/electron44: Update to 44.7.0
    
    Changelog:
    - https://github.com/electron/electron/releases/tag/v44.6.0
    - https://github.com/electron/electron/releases/tag/v44.7.0
    
    Reported by:    GitHub (watch releases)
---
 devel/electron44/Makefile                          |  8 +++--
 devel/electron44/Makefile.version                  |  2 +-
 devel/electron44/distinfo                          | 20 ++++++-----
 .../fixtures/native-addon/mouse-input/package.json | 10 ++++++
 .../files/packagejsons/spec/package.json           |  1 +
 devel/electron44/files/packagejsons/yarn.lock      |  7 ++++
 ...me__file__system__access__permission__context.h |  4 +--
 ...wser_renderer__host_render__view__host__impl.cc |  4 +--
 ...t_render__widget__host__view__event__handler.cc |  4 +--
 .../electron44/files/patch-electron_filenames.gni  |  4 +--
 ...-electron_shell_app_electron__main__delegate.cc | 25 +++++---------
 .../files/patch-electron_spec_api-app.spec.ts      | 38 ++++++++++----------
 ..._api-browser-window-ignore-mouse-events.spec.ts | 16 +++++++++
 .../patch-electron_spec_api-browser-window.spec.ts | 40 +++++++++++-----------
 .../files/patch-electron_spec_api-net.spec.ts      |  4 +--
 .../files/patch-electron_spec_api-shell.spec.ts    |  6 ++--
 .../patch-electron_spec_api-web-contents.spec.ts   |  4 +--
 devel/electron44/files/patch-net_BUILD.gn          | 14 ++++----
 .../files/patch-pdf_pdfium_pdfium__engine.cc       |  4 +--
 ...blink_renderer_core_exported_web__view__impl.cc |  8 ++---
 devel/electron44/files/patch-ui_gfx_font__util.cc  |  8 ++---
 21 files changed, 131 insertions(+), 100 deletions(-)

diff --git a/devel/electron44/Makefile b/devel/electron44/Makefile
index a25167cb5ecf..f1f0e46fcf4f 100644
--- a/devel/electron44/Makefile
+++ b/devel/electron44/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	electron
 DISTVERSIONPREFIX=	v
 DISTVERSION=	${ELECTRON_VER}
-PORTREVISION=	2
 PULSEMV=	16
 PULSEV=		${PULSEMV}.1
 CATEGORIES=	devel
@@ -91,6 +90,7 @@ GH_TUPLE=	electron:electron:${DISTVERSIONFULL}:electron \
 		Squirrel:Squirrel.Mac:${SQUIRREL_MAC_VER}:squirrel_mac \
 		ReactiveCocoa:ReactiveObjC:${REACTIVEOBJC_VER}:reactiveobjc \
 		Mantle:Mantle:${MANTLE_VER}:mantle \
+		sparkle-project:Sparkle:${SPARKLE_VER}:sparkle \
 		EngFlow:reclient-configs:${ENGFLOW_RECLIENT_CONFIGS_VER}:reclient_configs \
 		rollup:rollup:v${ROLLUP_VER}:rollup
 USE_GL=		gbm gl glesv2
@@ -242,11 +242,13 @@ NODE_VER=			24.21.0
 # See ${WRKSRC}/electron/DEPS for NAN_VER
 NAN_VER=			675cefebca42410733da8a454c8d9391fcebfbc2
 # See ${WRKSRC}/electron/DEPS for SQUIRREL_MAC_VER
-SQUIRREL_MAC_VER=		8d808803bc89ec0e2aa1450474856dfee3b00c6b
+SQUIRREL_MAC_VER=		fffea30e4a339a7f7d69a3391314b72548d209bd
 # See ${WRKSRC}/electron/DEPS for REACTIVEOBJC_VER
 REACTIVEOBJC_VER=		74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76
 # See ${WRKSRC}/electron/DEPS for MANTLE_VER
 MANTLE_VER=			2a8e2123a3931038179ee06105c9e6ec336b12ea
+# See ${WRKSRC}/electron/DEPS for SPARKLE_VER
+SPARKLE_VER=			79bc9e872948e47877e76f194cb0c8e0412b0b90
 # See ${WRKSRC}/electron/DEPS for ENGFLOW_RECLIENT_CONFIGS_VER
 ENGFLOW_RECLIENT_CONFIGS_VER=	955335c30a752e9ef7bff375baab5e0819b6c00d
 # See ${WRKSRC}/third_party/devtools-frontend/src/node_modules/rollup/package.json
@@ -337,6 +339,8 @@ post-extract:
 		${WRKSRC}/third_party/squirrel.mac/vendor/ReactiveObjC
 	${MV} ${WRKDIR}/${GH_PROJECT_mantle}-${MANTLE_VER} \
 		${WRKSRC}/third_party/squirrel.mac/vendor/Mantle
+	${MV} ${WRKDIR}/${GH_PROJECT_sparkle}-${SPARKLE_VER} \
+		${WRKSRC}/third_party/squirrel.mac/vendor/Sparkle
 	${MV} ${WRKDIR}/${GH_PROJECT_reclient_configs}-${ENGFLOW_RECLIENT_CONFIGS_VER} \
 		${WRKSRC}/third_party/engflow-reclient-configs
 	${MV} ${WRKDIR}/${GH_PROJECT_rollup}-${ROLLUP_VER} \
diff --git a/devel/electron44/Makefile.version b/devel/electron44/Makefile.version
index cbb66772218f..ee8e746e1086 100644
--- a/devel/electron44/Makefile.version
+++ b/devel/electron44/Makefile.version
@@ -1,2 +1,2 @@
-ELECTRON_VER=		44.5.1
+ELECTRON_VER=		44.7.0
 ELECTRON_VER_MAJOR=	${ELECTRON_VER:C/\..*//}
diff --git a/devel/electron44/distinfo b/devel/electron44/distinfo
index 416a89ac4f74..b6916d238c53 100644
--- a/devel/electron44/distinfo
+++ b/devel/electron44/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1790926262
+TIMESTAMP = 1791457709
 SHA256 (electron/chromium-152.0.7977.130.tar.xz.0) = 42a48cd19ce2b96ff5ec89469f8e900720ff6ea62cdac01a5a386dd136b66f9b
 SIZE (electron/chromium-152.0.7977.130.tar.xz.0) = 2000000000
 SHA256 (electron/chromium-152.0.7977.130.tar.xz.1) = 4fe0c299ecc9806c89e7843a63ddafef896a745592906b39a583777ed18d7078
@@ -421,22 +421,24 @@ SHA256 (electron/rust/crates/zmij-1.0.21.crate) = b8848ee67ecc8aedbaf3e4122217af
 SIZE (electron/rust/crates/zmij-1.0.21.crate) = 26665
 SHA256 (electron/yarn-4.18.0.tgz) = 1a1bc8f7767d284517803535e296f0bbac005274f9c85eeb20e7803220e4d50a
 SIZE (electron/yarn-4.18.0.tgz) = 1331218
-SHA256 (electron/electron44-44.5.1-node-modules-arm64.tar.xz) = 36ea9c14958bbad08704099825e4f622912e9ea2a8ad3678a4883f960db2e306
-SIZE (electron/electron44-44.5.1-node-modules-arm64.tar.xz) = 72567160
-SHA256 (electron/electron44-44.5.1-node-modules-x64.tar.xz) = 89d755a680f0104d2726af8c1d14c05a00e0d644b0b5c7de13aed2a435a1b7da
-SIZE (electron/electron44-44.5.1-node-modules-x64.tar.xz) = 93319829
-SHA256 (electron/electron-electron-v44.5.1_GH0.tar.gz) = 798e7647950ce10d6715892b5ee3c05af71d7f785dddb23d87c6f26f18b37363
-SIZE (electron/electron-electron-v44.5.1_GH0.tar.gz) = 20284163
+SHA256 (electron/electron44-44.7.0-node-modules-arm64.tar.xz) = 36ea9c14958bbad08704099825e4f622912e9ea2a8ad3678a4883f960db2e306
+SIZE (electron/electron44-44.7.0-node-modules-arm64.tar.xz) = 72567160
+SHA256 (electron/electron44-44.7.0-node-modules-x64.tar.xz) = 89d755a680f0104d2726af8c1d14c05a00e0d644b0b5c7de13aed2a435a1b7da
+SIZE (electron/electron44-44.7.0-node-modules-x64.tar.xz) = 93319829
+SHA256 (electron/electron-electron-v44.7.0_GH0.tar.gz) = 98ed707611d37be363a29ded8ebc7a9dde21ca8e15448f08f212e874142e1124
+SIZE (electron/electron-electron-v44.7.0_GH0.tar.gz) = 20530785
 SHA256 (electron/nodejs-node-v24.21.0_GH0.tar.gz) = a00e45375fe01977235ddb81ab6ac12f2f90161077cfbc2f77b8aaea4f75f8f9
 SIZE (electron/nodejs-node-v24.21.0_GH0.tar.gz) = 129712318
 SHA256 (electron/nodejs-nan-675cefebca42410733da8a454c8d9391fcebfbc2_GH0.tar.gz) = 3983c68f19ed75dd37dc228eab385093ae2533132730f253f0c3d19ff10788e3
 SIZE (electron/nodejs-nan-675cefebca42410733da8a454c8d9391fcebfbc2_GH0.tar.gz) = 111323
-SHA256 (electron/Squirrel-Squirrel.Mac-8d808803bc89ec0e2aa1450474856dfee3b00c6b_GH0.tar.gz) = 491eeab2f15db32f018bc972e1ee6dc11aad503aec4d8c404b797d2f12280494
-SIZE (electron/Squirrel-Squirrel.Mac-8d808803bc89ec0e2aa1450474856dfee3b00c6b_GH0.tar.gz) = 2120611
+SHA256 (electron/Squirrel-Squirrel.Mac-fffea30e4a339a7f7d69a3391314b72548d209bd_GH0.tar.gz) = 2ff12ef316f27fc73e24ed2ee80c1e9b4ec5065aba2dbb14a1a979335152e92e
+SIZE (electron/Squirrel-Squirrel.Mac-fffea30e4a339a7f7d69a3391314b72548d209bd_GH0.tar.gz) = 2140370
 SHA256 (electron/ReactiveCocoa-ReactiveObjC-74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76_GH0.tar.gz) = 88e65f116c7a06fccedb43970fba63080a57a4e5dc29147d2cdfe1ee58dd0546
 SIZE (electron/ReactiveCocoa-ReactiveObjC-74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76_GH0.tar.gz) = 1136238
 SHA256 (electron/Mantle-Mantle-2a8e2123a3931038179ee06105c9e6ec336b12ea_GH0.tar.gz) = 9a6d683612d72c3d15e26a46451866ac01989665c0e2b74c61d28a78b6820f19
 SIZE (electron/Mantle-Mantle-2a8e2123a3931038179ee06105c9e6ec336b12ea_GH0.tar.gz) = 81605
+SHA256 (electron/sparkle-project-Sparkle-79bc9e872948e47877e76f194cb0c8e0412b0b90_GH0.tar.gz) = e2d6ef050b9cf1d9ea2e5fbb6c26e91954619c79224787adbf483e758043eaa5
+SIZE (electron/sparkle-project-Sparkle-79bc9e872948e47877e76f194cb0c8e0412b0b90_GH0.tar.gz) = 15364053
 SHA256 (electron/EngFlow-reclient-configs-955335c30a752e9ef7bff375baab5e0819b6c00d_GH0.tar.gz) = c148f76220fc41a89ffeaf370c2cc175577be184688b12aa6fec5f8ac6c714c4
 SIZE (electron/EngFlow-reclient-configs-955335c30a752e9ef7bff375baab5e0819b6c00d_GH0.tar.gz) = 13014
 SHA256 (electron/rollup-rollup-v4.60.4_GH0.tar.gz) = c129324ecef83a1c4d829c8b876751c72a6fa2dfe707f32f0b55c311cf29ee91
diff --git a/devel/electron44/files/packagejsons/spec/fixtures/native-addon/mouse-input/package.json b/devel/electron44/files/packagejsons/spec/fixtures/native-addon/mouse-input/package.json
new file mode 100644
index 000000000000..da204fb5c6c5
--- /dev/null
+++ b/devel/electron44/files/packagejsons/spec/fixtures/native-addon/mouse-input/package.json
@@ -0,0 +1,10 @@
+{
+  "name": "@electron-ci/mouse-input",
+  "version": "0.0.1",
+  "main": "./lib/index.js",
+  "private": true,
+  "licenses": "MIT",
+  "scripts": {
+    "install": "node-gyp configure && node-gyp build"
+  }
+}
diff --git a/devel/electron44/files/packagejsons/spec/package.json b/devel/electron44/files/packagejsons/spec/package.json
index fb61f8575c16..e736e4fa6f2f 100644
--- a/devel/electron44/files/packagejsons/spec/package.json
+++ b/devel/electron44/files/packagejsons/spec/package.json
@@ -12,6 +12,7 @@
     "@electron-ci/echo": "*",
     "@electron-ci/external-ab": "*",
     "@electron-ci/is-valid-window": "*",
+    "@electron-ci/mouse-input": "*",
     "@electron-ci/object-wrap": "*",
     "@electron-ci/osr-gpu": "*",
     "@electron-ci/uv-dlopen": "*",
diff --git a/devel/electron44/files/packagejsons/yarn.lock b/devel/electron44/files/packagejsons/yarn.lock
index 73a50adb4618..9e0a77dadb1d 100644
--- a/devel/electron44/files/packagejsons/yarn.lock
+++ b/devel/electron44/files/packagejsons/yarn.lock
@@ -446,6 +446,12 @@ __metadata:
   languageName: unknown
   linkType: soft
 
+"@electron-ci/mouse-input@npm:*, @electron-ci/mouse-input@workspace:spec/fixtures/native-addon/mouse-input":
+  version: 0.0.0-use.local
+  resolution: "@electron-ci/mouse-input@workspace:spec/fixtures/native-addon/mouse-input"
+  languageName: unknown
+  linkType: soft
+
 "@electron-ci/object-wrap@npm:*, @electron-ci/object-wrap@workspace:spec/fixtures/native-addon/object-wrap":
   version: 0.0.0-use.local
   resolution: "@electron-ci/object-wrap@workspace:spec/fixtures/native-addon/object-wrap"
@@ -3791,6 +3797,7 @@ __metadata:
     "@electron-ci/echo": "npm:*"
     "@electron-ci/external-ab": "npm:*"
     "@electron-ci/is-valid-window": "npm:*"
+    "@electron-ci/mouse-input": "npm:*"
     "@electron-ci/object-wrap": "npm:*"
     "@electron-ci/osr-gpu": "npm:*"
     "@electron-ci/uv-dlopen": "npm:*"
diff --git a/devel/electron44/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.h b/devel/electron44/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.h
index 5a36adbdc44a..cbaddb8d2aa3 100644
--- a/devel/electron44/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.h
+++ b/devel/electron44/files/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.h
@@ -1,6 +1,6 @@
---- chrome/browser/file_system_access/chrome_file_system_access_permission_context.h.orig	2026-09-01 23:50:56 UTC
+--- chrome/browser/file_system_access/chrome_file_system_access_permission_context.h.orig	2026-10-08 11:14:31 UTC
 +++ chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
-@@ -602,7 +602,7 @@ class ChromeFileSystemAccessPermissionContext
+@@ -648,7 +648,7 @@ class ChromeFileSystemAccessPermissionContext
              FILE_PATH_LITERAL("Library/Mobile Documents/com~apple~CloudDocs"),
              BlockType::kDontBlockChildren),
    #endif
diff --git a/devel/electron44/files/patch-content_browser_renderer__host_render__view__host__impl.cc b/devel/electron44/files/patch-content_browser_renderer__host_render__view__host__impl.cc
index bc5a3eccc52b..004e40c6f137 100644
--- a/devel/electron44/files/patch-content_browser_renderer__host_render__view__host__impl.cc
+++ b/devel/electron44/files/patch-content_browser_renderer__host_render__view__host__impl.cc
@@ -1,6 +1,6 @@
---- content/browser/renderer_host/render_view_host_impl.cc.orig	2026-09-01 23:50:56 UTC
+--- content/browser/renderer_host/render_view_host_impl.cc.orig	2026-10-08 11:14:31 UTC
 +++ content/browser/renderer_host/render_view_host_impl.cc
-@@ -265,7 +265,7 @@ void RenderViewHostImpl::GetPlatformSpecificPrefs(
+@@ -266,7 +266,7 @@ void RenderViewHostImpl::GetPlatformSpecificPrefs(
    GetFontInfo(gfx::win::SystemFont::kStatus, &prefs->status_font_family_name,
                &prefs->status_font_height);
  
diff --git a/devel/electron44/files/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc b/devel/electron44/files/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc
index 4c80c6292287..5825f4b5718b 100644
--- a/devel/electron44/files/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc
+++ b/devel/electron44/files/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc
@@ -1,6 +1,6 @@
---- content/browser/renderer_host/render_widget_host_view_event_handler.cc.orig	2026-08-24 20:59:34 UTC
+--- content/browser/renderer_host/render_widget_host_view_event_handler.cc.orig	2026-10-08 11:14:31 UTC
 +++ content/browser/renderer_host/render_widget_host_view_event_handler.cc
-@@ -631,7 +631,7 @@ bool RenderWidgetHostViewEventHandler::CanRendererHand
+@@ -639,7 +639,7 @@ bool RenderWidgetHostViewEventHandler::CanRendererHand
    if (event->type() == ui::EventType::kMouseExited) {
      if (mouse_locked || selection_popup)
        return false;
diff --git a/devel/electron44/files/patch-electron_filenames.gni b/devel/electron44/files/patch-electron_filenames.gni
index 7e17733ecba8..f1e375a24015 100644
--- a/devel/electron44/files/patch-electron_filenames.gni
+++ b/devel/electron44/files/patch-electron_filenames.gni
@@ -1,6 +1,6 @@
---- electron/filenames.gni.orig	2026-09-29 23:27:57 UTC
+--- electron/filenames.gni.orig	2026-10-07 16:24:25 UTC
 +++ electron/filenames.gni
-@@ -252,8 +252,8 @@ filenames = {
+@@ -250,8 +250,8 @@ filenames = {
      "shell/app/command_line_args.h",
      "shell/app/electron_content_client.cc",
      "shell/app/electron_content_client.h",
diff --git a/devel/electron44/files/patch-electron_shell_app_electron__main__delegate.cc b/devel/electron44/files/patch-electron_shell_app_electron__main__delegate.cc
index 76368f69ce63..ca38f8f2e63d 100644
--- a/devel/electron44/files/patch-electron_shell_app_electron__main__delegate.cc
+++ b/devel/electron44/files/patch-electron_shell_app_electron__main__delegate.cc
@@ -1,4 +1,4 @@
---- electron/shell/app/electron_main_delegate.cc.orig	2026-08-31 00:54:19 UTC
+--- electron/shell/app/electron_main_delegate.cc.orig	2026-10-07 16:24:25 UTC
 +++ electron/shell/app/electron_main_delegate.cc
 @@ -67,7 +67,7 @@
  #include "chrome/child/v8_crashpad_support_win.h"
@@ -7,9 +7,9 @@
 -#if BUILDFLAG(IS_LINUX)
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
  #include "base/nix/xdg_util.h"
- #include "ui/gfx/linux/fontconfig_util.h"
  #include "ui/linux/display_server_utils.h"
-@@ -79,7 +79,7 @@
+ #include "v8/include/v8-wasm-trap-handler-posix.h"
+@@ -78,7 +78,7 @@
  #include "ui/ozone/public/ozone_platform.h"
  #endif  // BUILDFLAG(IS_OZONE)
  
@@ -18,7 +18,7 @@
  #include "components/crash/core/app/crash_switches.h"  // nogncheck
  #include "components/crash/core/app/crashpad.h"        // nogncheck
  #include "components/crash/core/common/crash_key.h"
-@@ -222,7 +222,7 @@ std::optional<int> ElectronMainDelegate::BasicStartupC
+@@ -221,7 +221,7 @@ std::optional<int> ElectronMainDelegate::BasicStartupC
      base::win::PinUser32();
  #endif
  
@@ -27,7 +27,7 @@
    // Check for --no-sandbox parameter when running as root.
    if (getuid() == 0 && IsSandboxEnabled(command_line))
      LOG(FATAL) << "Running as root without --"
-@@ -272,7 +272,7 @@ void ElectronMainDelegate::PreSandboxStartup() {
+@@ -271,7 +271,7 @@ void ElectronMainDelegate::PreSandboxStartup() {
        /* is_preinit = */ IsBrowserProcess() || IsZygoteProcess());
  #endif
  
@@ -36,7 +36,7 @@
    crash_reporter::InitializeCrashKeys();
  #endif
  
-@@ -307,7 +307,7 @@ void ElectronMainDelegate::PreSandboxStartup() {
+@@ -306,7 +306,7 @@ void ElectronMainDelegate::PreSandboxStartup() {
    }
  #endif
  
@@ -45,7 +45,7 @@
    crash_keys::SetCrashKeysFromCommandLine(*command_line);
    crash_keys::SetPlatformCrashKey();
  #endif
-@@ -326,7 +326,7 @@ void ElectronMainDelegate::PreSandboxStartup() {
+@@ -325,7 +325,7 @@ void ElectronMainDelegate::PreSandboxStartup() {
  #if BUILDFLAG(IS_OZONE)
      // Initialize Ozone platform and add required feature flags as per
      // platform's properties.
@@ -54,16 +54,7 @@
      ui::SetOzonePlatformForLinuxIfNeeded(*command_line);
  #endif
      ui::OzonePlatform::PreSandboxStartup();
-@@ -356,7 +356,7 @@ std::optional<int> ElectronMainDelegate::PreBrowserMai
-   InitializeFeatureList();
-   // Initialize mojo core as soon as we have a valid feature list
-   content::InitializeMojoCore();
--#if BUILDFLAG(IS_LINUX)
-+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
-   // Queued before the browser ThreadPool starts, so FontConfig loads in
-   // parallel with toolkit initialization instead of on first use.
-   gfx::InitializeGlobalFontConfigAsync();
-@@ -364,7 +364,7 @@ std::optional<int> ElectronMainDelegate::PreBrowserMai
+@@ -358,7 +358,7 @@ std::optional<int> ElectronMainDelegate::PreBrowserMai
  #if BUILDFLAG(IS_MAC)
    RegisterAtomCrApp();
  #endif
diff --git a/devel/electron44/files/patch-electron_spec_api-app.spec.ts b/devel/electron44/files/patch-electron_spec_api-app.spec.ts
index 397e73d29b46..483f51bee773 100644
--- a/devel/electron44/files/patch-electron_spec_api-app.spec.ts
+++ b/devel/electron44/files/patch-electron_spec_api-app.spec.ts
@@ -1,4 +1,4 @@
---- electron/spec/api-app.spec.ts.orig	2026-09-29 23:27:57 UTC
+--- electron/spec/api-app.spec.ts.orig	2026-10-07 16:24:25 UTC
 +++ electron/spec/api-app.spec.ts
 @@ -126,7 +126,7 @@ describe('app module', () => {
      });
@@ -41,7 +41,7 @@
        const electronPath = process.execPath;
        const appPath = path.join(fixturesPath, 'api', 'singleton');
        appProcess = cp.spawn(electronPath, [appPath]);
-@@ -490,7 +490,7 @@ describe('app module', () => {
+@@ -512,7 +512,7 @@ describe('app module', () => {
    });
  
    // GitHub Actions macOS-13 runners used for x64 seem to have a problem with this test.
@@ -50,7 +50,7 @@
      const tempFiles = [
        path.join(fixturesPath, 'foo.txt'),
        path.join(fixturesPath, 'bar.txt'),
-@@ -626,7 +626,7 @@ describe('app module', () => {
+@@ -648,7 +648,7 @@ describe('app module', () => {
    //   let w = null
  
    //   before(function () {
@@ -59,7 +59,7 @@
    //       this.skip()
    //     }
    //   })
-@@ -738,7 +738,7 @@ describe('app module', () => {
+@@ -760,7 +760,7 @@ describe('app module', () => {
    });
  
    describe('app.badgeCount', () => {
@@ -68,7 +68,7 @@
  
      const expectedBadgeCount = 42;
  
-@@ -771,7 +771,7 @@ describe('app module', () => {
+@@ -793,7 +793,7 @@ describe('app module', () => {
    });
  
    ifdescribe(
@@ -77,7 +77,7 @@
    )('app.get/setLoginItemSettings API', function () {
      const isMac = process.platform === 'darwin';
      const isWin = process.platform === 'win32';
-@@ -1115,7 +1115,7 @@ describe('app module', () => {
+@@ -1137,7 +1137,7 @@ describe('app module', () => {
      });
    });
  
@@ -86,7 +86,7 @@
      // These tests toggle a process-wide AXMode. Turn it back off so the rest of
      // the suite doesn't run with renderer accessibility enabled.
      afterEach(() => {
-@@ -1391,7 +1391,7 @@ describe('app module', () => {
+@@ -1413,7 +1413,7 @@ describe('app module', () => {
      });
    });
  
@@ -95,7 +95,7 @@
      let w: BrowserWindow;
  
      before(function () {
-@@ -1534,7 +1534,7 @@ describe('app module', () => {
+@@ -1556,7 +1556,7 @@ describe('app module', () => {
  
    describe('getApplicationNameForProtocol()', () => {
      // TODO: Linux CI doesn't have registered http & https handlers
@@ -104,7 +104,7 @@
        'returns application names for common protocols',
        function () {
          // We can't expect particular app names here, but these protocols should
-@@ -1551,7 +1551,7 @@ describe('app module', () => {
+@@ -1573,7 +1573,7 @@ describe('app module', () => {
        expect(app.getApplicationNameForProtocol('bogus-protocol://')).to.equal('');
      });
  
@@ -113,7 +113,7 @@
        const desktopFileId = 'mock-browser.desktop';
        const mockDisplayName = 'Mock Browser';
        const mockScheme = 'mockproto';
-@@ -1601,7 +1601,7 @@ describe('app module', () => {
+@@ -1623,7 +1623,7 @@ describe('app module', () => {
      let xdgBinDir: string;
  
      before(() => {
@@ -122,7 +122,7 @@
          return;
        }
  
-@@ -1618,7 +1618,7 @@ describe('app module', () => {
+@@ -1640,7 +1640,7 @@ describe('app module', () => {
      });
  
      after(() => {
@@ -131,7 +131,7 @@
          fs.rmSync(xdgDir, { recursive: true, force: true });
        }
      });
-@@ -1630,7 +1630,7 @@ describe('app module', () => {
+@@ -1652,7 +1652,7 @@ describe('app module', () => {
      });
  
      it('returns resolved promise with appPath, displayName and icon', async function () {
@@ -140,7 +140,7 @@
          const appInfo = await spawnProtocolInfoWithXdgMock(`${mockScheme}://`, xdgDataHome, xdgConfigHome);
          expect(appInfo.name).to.equal(mockDisplayName);
          expect(appInfo.path).to.equal('/usr/bin/true');
-@@ -1644,7 +1644,7 @@ describe('app module', () => {
+@@ -1666,7 +1666,7 @@ describe('app module', () => {
        expect(appInfo.icon).not.to.be.undefined();
      });
  
@@ -149,7 +149,7 @@
        const pathLookupExecutable = 'mock-browser';
        const pathLookupExecutablePath = path.join(xdgBinDir, pathLookupExecutable);
        const pathLookupDisplayName = 'Mock Browser PATH';
-@@ -1678,7 +1678,7 @@ describe('app module', () => {
+@@ -1700,7 +1700,7 @@ describe('app module', () => {
      });
    });
  
@@ -158,7 +158,7 @@
      const protocol = 'electron-test-linux';
      const desktopFileId = 'electron-test.desktop';
      const protocolMimeType = `x-scheme-handler/${protocol}`;
-@@ -1795,7 +1795,7 @@ describe('app module', () => {
+@@ -1817,7 +1817,7 @@ describe('app module', () => {
    });
  
    // FIXME Get these specs running on Linux CI
@@ -167,7 +167,7 @@
      const iconPath = path.join(import.meta.dirname, 'fixtures/assets/icon.ico');
      const sizes = {
        small: 16,
-@@ -1877,7 +1877,7 @@ describe('app module', () => {
+@@ -1899,7 +1899,7 @@ describe('app module', () => {
            expect(entry.memory).to.have.property('privateBytes').that.is.greaterThan(0);
          }
  
@@ -176,7 +176,7 @@
            expect(entry.sandboxed).to.be.a('boolean');
          }
  
-@@ -1894,7 +1894,7 @@ describe('app module', () => {
+@@ -1916,7 +1916,7 @@ describe('app module', () => {
      });
    });
  
@@ -185,7 +185,7 @@
      const fixture = path.join(fixturesPath, 'apps', 'gdk-backend');
      const run = async (env: NodeJS.ProcessEnv) => {
        const child = cp.spawn(process.execPath, [fixture], { env, stdio: ['ignore', 'pipe', 'ignore'] });
-@@ -1991,7 +1991,7 @@ describe('app module', () => {
+@@ -2013,7 +2013,7 @@ describe('app module', () => {
          if (isGpuUnavailable(error as Error)) return this.skip();
          throw error;
        }
@@ -194,7 +194,7 @@
          // For linux and macOS complete info is same as basic info
          await verifyBasicGPUInfo(completeInfo);
          const basicInfo = await getGPUInfo('basic');
-@@ -2015,7 +2015,7 @@ describe('app module', () => {
+@@ -2037,7 +2037,7 @@ describe('app module', () => {
      });
    });
  
diff --git a/devel/electron44/files/patch-electron_spec_api-browser-window-ignore-mouse-events.spec.ts b/devel/electron44/files/patch-electron_spec_api-browser-window-ignore-mouse-events.spec.ts
new file mode 100644
index 000000000000..aba42c3c621b
--- /dev/null
+++ b/devel/electron44/files/patch-electron_spec_api-browser-window-ignore-mouse-events.spec.ts
@@ -0,0 +1,16 @@
+--- electron/spec/api-browser-window-ignore-mouse-events.spec.ts.orig	2026-10-08 11:20:01 UTC
++++ electron/spec/api-browser-window-ignore-mouse-events.spec.ts
+@@ -41,11 +41,11 @@ const hasRealInput =
+ // Nothing can inject input into a Wayland compositor from a client, so only
+ // X11 is covered on Linux.
+ const hasRealInput =
+-  process.platform === 'win32' || process.platform === 'darwin' || (process.platform === 'linux' && !isWayland);
++  process.platform === 'win32' || process.platform === 'darwin' || ((process.platform === 'linux' || process.platform === 'freebsd') && !isWayland);
+ // { forward: true } is macOS and Windows only.
+ const canForward = process.platform === 'win32' || process.platform === 'darwin';
+ // Only these can ask the OS which window it hit tests at a point.
+-const canHitTest = process.platform === 'win32' || process.platform === 'linux';
++const canHitTest = process.platform === 'win32' || process.platform === 'linux' || process.platform === 'freebsd';
+ 
+ // #target turns orange while hovered. Element.matches(':hover') is not usable
+ // here: it stays false while the (never focused) window is inactive even
diff --git a/devel/electron44/files/patch-electron_spec_api-browser-window.spec.ts b/devel/electron44/files/patch-electron_spec_api-browser-window.spec.ts
index dc0008094930..fd1b7343d135 100644
--- a/devel/electron44/files/patch-electron_spec_api-browser-window.spec.ts
+++ b/devel/electron44/files/patch-electron_spec_api-browser-window.spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-browser-window.spec.ts.orig	2026-09-29 23:27:57 UTC
+--- electron/spec/api-browser-window.spec.ts.orig	2026-10-07 16:24:25 UTC
 +++ electron/spec/api-browser-window.spec.ts
-@@ -117,7 +117,7 @@ describe('BrowserWindow module', () => {
+@@ -118,7 +118,7 @@ describe('BrowserWindow module', () => {
        }).not.to.throw();
      });
  
@@ -9,7 +9,7 @@
        const appPath = path.join(fixtures, 'apps', 'xwindow-icon');
        const appProcess = childProcess.spawn(process.execPath, [appPath]);
        await once(appProcess, 'exit');
-@@ -444,7 +444,7 @@ describe('BrowserWindow module', () => {
+@@ -445,7 +445,7 @@ describe('BrowserWindow module', () => {
      });
    });
  
@@ -18,7 +18,7 @@
      afterEach(closeAllWindows);
      it('can set content protection', async () => {
        const w = new BrowserWindow({ show: false });
-@@ -1529,7 +1529,7 @@ describe('BrowserWindow module', () => {
+@@ -1530,7 +1530,7 @@ describe('BrowserWindow module', () => {
  
      describe('BrowserWindow.minimize()', () => {
        // TODO(codebytere): Enable for Linux once maximize/minimize events work in CI.
@@ -27,7 +27,7 @@
          const minimize = once(w, 'minimize');
          w.minimize();
          await minimize;
-@@ -1546,7 +1546,7 @@ describe('BrowserWindow module', () => {
+@@ -1547,7 +1547,7 @@ describe('BrowserWindow module', () => {
        });
  
        // TODO(dsanders11): Enable for Linux once CI plays nice with these kinds of tests
@@ -36,7 +36,7 @@
          const maximize = once(w, 'maximize');
          const shown = once(w, 'show');
          w.maximize();
-@@ -1643,7 +1643,7 @@ describe('BrowserWindow module', () => {
+@@ -1644,7 +1644,7 @@ describe('BrowserWindow module', () => {
          }
        );
  
@@ -45,7 +45,7 @@
          const w1 = new BrowserWindow({ show: false });
          const w2 = new BrowserWindow({ show: false });
          const w3 = new BrowserWindow({ show: false });
-@@ -1748,7 +1748,7 @@ describe('BrowserWindow module', () => {
+@@ -1749,7 +1749,7 @@ describe('BrowserWindow module', () => {
          expect(w.isFocused()).to.equal(false);
        });
  
@@ -54,7 +54,7 @@
          const w1 = new BrowserWindow({ show: false });
          const w2 = new BrowserWindow({ show: false });
          const w3 = new BrowserWindow({ show: false });
-@@ -2302,7 +2302,7 @@ describe('BrowserWindow module', () => {
+@@ -2303,7 +2303,7 @@ describe('BrowserWindow module', () => {
          });
        });
  
@@ -63,7 +63,7 @@
          it('checks normal bounds when maximized', async () => {
            const bounds = w.getBounds();
            const maximize = once(w, 'maximize');
-@@ -2520,7 +2520,7 @@ describe('BrowserWindow module', () => {
+@@ -2521,7 +2521,7 @@ describe('BrowserWindow module', () => {
          });
        });
  
@@ -72,7 +72,7 @@
          it('checks normal bounds when minimized', async () => {
            const bounds = w.getBounds();
            const minimize = once(w, 'minimize');
-@@ -3873,7 +3873,7 @@ describe('BrowserWindow module', () => {
+@@ -3874,7 +3874,7 @@ describe('BrowserWindow module', () => {
        expect(overlayRectPreMax.height).to.equal(size);
  
        // 'maximize' event is not emitted on Linux in CI.
@@ -81,7 +81,7 @@
          const maximize = once(w, 'maximize');
          w.show();
          w.maximize();
-@@ -4055,7 +4055,7 @@ describe('BrowserWindow module', () => {
+@@ -4049,7 +4049,7 @@ describe('BrowserWindow module', () => {
          expect(preMaxHeight).to.equal(size);
  
          // 'maximize' event is not emitted on Linux in CI.
@@ -90,7 +90,7 @@
            const maximize = once(w, 'maximize');
            w.show();
            w.maximize();
-@@ -5243,7 +5243,7 @@ describe('BrowserWindow module', () => {
+@@ -5237,7 +5237,7 @@ describe('BrowserWindow module', () => {
          expect(test.nodeTimers).to.equal(true);
          expect(test.nodeUrl).to.equal(true);
  
@@ -99,7 +99,7 @@
            expect(test.creationTime).to.be.null('creation time');
            expect(test.systemMemoryInfo).to.be.null('system memory info');
          } else {
-@@ -5759,7 +5759,7 @@ describe('BrowserWindow module', () => {
+@@ -5753,7 +5753,7 @@ describe('BrowserWindow module', () => {
      });
    });
  
@@ -108,7 +108,7 @@
      afterEach(closeAllWindows);
      it('emits an event when window is maximized', async () => {
        const w = new BrowserWindow({ show: false });
-@@ -6035,7 +6035,7 @@ describe('BrowserWindow module', () => {
+@@ -6029,7 +6029,7 @@ describe('BrowserWindow module', () => {
      // TODO(zcbenz):
      // This test does not run on Linux CI. See:
      // https://github.com/electron/electron/issues/28699
@@ -117,7 +117,7 @@
        'should bring a minimized maximized window back to maximized state',
        async () => {
          const w = new BrowserWindow({});
-@@ -6053,7 +6053,7 @@ describe('BrowserWindow module', () => {
+@@ -6047,7 +6047,7 @@ describe('BrowserWindow module', () => {
        }
      );
  
@@ -126,7 +126,7 @@
        const w = new BrowserWindow({ show: false });
        w.show();
  
-@@ -6076,7 +6076,7 @@ describe('BrowserWindow module', () => {
+@@ -6070,7 +6070,7 @@ describe('BrowserWindow module', () => {
    });
  
    // TODO(dsanders11): Enable once maximize event works on Linux again on CI
@@ -135,7 +135,7 @@
      afterEach(closeAllWindows);
      it('should show the window if it is not currently shown', async () => {
        const w = new BrowserWindow({ show: false });
-@@ -6113,7 +6113,7 @@ describe('BrowserWindow module', () => {
+@@ -6107,7 +6107,7 @@ describe('BrowserWindow module', () => {
  
      // TODO(dsanders11): Enable once minimize event works on Linux again.
      //                   See https://github.com/electron/electron/issues/28699
@@ -144,7 +144,7 @@
        const w = new BrowserWindow();
        const minimize = once(w, 'minimize');
        w.minimize();
-@@ -6628,7 +6628,7 @@ describe('BrowserWindow module', () => {
+@@ -6622,7 +6622,7 @@ describe('BrowserWindow module', () => {
        });
  
        // On Linux there is no "resizable" property of a window.
@@ -153,7 +153,7 @@
          const w = new BrowserWindow({ show: false });
          expect(w.resizable).to.be.true('resizable');
  
-@@ -6869,7 +6869,7 @@ describe('BrowserWindow module', () => {
+@@ -6863,7 +6863,7 @@ describe('BrowserWindow module', () => {
      });
    });
  
@@ -162,7 +162,7 @@
      // Not implemented on Linux.
      afterEach(closeAllWindows);
  
-@@ -8232,7 +8232,7 @@ describe('BrowserWindow module', () => {
+@@ -8226,7 +8226,7 @@ describe('BrowserWindow module', () => {
    describe('"transparent" option', { tags: ['serial'] }, () => {
      afterEach(closeAllWindows);
  
diff --git a/devel/electron44/files/patch-electron_spec_api-net.spec.ts b/devel/electron44/files/patch-electron_spec_api-net.spec.ts
index eb11a0758c73..ebc533912664 100644
--- a/devel/electron44/files/patch-electron_spec_api-net.spec.ts
+++ b/devel/electron44/files/patch-electron_spec_api-net.spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-net.spec.ts.orig	2026-09-29 23:27:57 UTC
+--- electron/spec/api-net.spec.ts.orig	2026-10-07 16:24:25 UTC
 +++ electron/spec/api-net.spec.ts
-@@ -2104,7 +2104,7 @@ describe('net module', () => {
+@@ -2137,7 +2137,7 @@ describe('net module', () => {
    // The select-client-certificate event only fires when the platform cert
    // store yields at least one matching identity, which the test suite cannot
    // guarantee on Linux (NSS) without app.importCertificate.
diff --git a/devel/electron44/files/patch-electron_spec_api-shell.spec.ts b/devel/electron44/files/patch-electron_spec_api-shell.spec.ts
index 3fbbc8e0444e..673ead5a90ba 100644
--- a/devel/electron44/files/patch-electron_spec_api-shell.spec.ts
+++ b/devel/electron44/files/patch-electron_spec_api-shell.spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-shell.spec.ts.orig	2026-09-29 23:27:57 UTC
+--- electron/spec/api-shell.spec.ts.orig	2026-10-07 16:24:25 UTC
 +++ electron/spec/api-shell.spec.ts
-@@ -37,7 +37,7 @@ describe('shell module', () => {
+@@ -38,7 +38,7 @@ describe('shell module', () => {
  
      afterEach(async () => {
        // reset env vars to prevent side effects
@@ -9,7 +9,7 @@
          process.env.DE = envVars.de;
          process.env.BROWSER = envVars.browser;
          process.env.DISPLAY = envVars.display;
-@@ -54,6 +54,11 @@ describe('shell module', () => {
+@@ -55,6 +55,11 @@ describe('shell module', () => {
        let requestReceived: Promise<any>;
        if (process.platform === 'linux') {
          process.env.BROWSER = '/bin/true';
diff --git a/devel/electron44/files/patch-electron_spec_api-web-contents.spec.ts b/devel/electron44/files/patch-electron_spec_api-web-contents.spec.ts
index afb9cf1eab07..c00e59c1e6d1 100644
--- a/devel/electron44/files/patch-electron_spec_api-web-contents.spec.ts
+++ b/devel/electron44/files/patch-electron_spec_api-web-contents.spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-web-contents.spec.ts.orig	2026-09-29 23:27:57 UTC
+--- electron/spec/api-web-contents.spec.ts.orig	2026-10-07 16:24:25 UTC
 +++ electron/spec/api-web-contents.spec.ts
-@@ -1655,7 +1655,7 @@ describe('webContents module', () => {
+@@ -1652,7 +1652,7 @@ describe('webContents module', () => {
      // back to OpenFolder() which does a blocking DirectoryExists() on the UI
      // thread (pre-existing behavior). Workspace-gating is covered by the test
      // above.
diff --git a/devel/electron44/files/patch-net_BUILD.gn b/devel/electron44/files/patch-net_BUILD.gn
index 0c95b2ec4117..df030d557732 100644
--- a/devel/electron44/files/patch-net_BUILD.gn
+++ b/devel/electron44/files/patch-net_BUILD.gn
@@ -1,4 +1,4 @@
---- net/BUILD.gn.orig	2026-08-24 20:59:34 UTC
+--- net/BUILD.gn.orig	2026-10-08 11:14:31 UTC
 +++ net/BUILD.gn
 @@ -115,7 +115,7 @@ net_configs = [
    "//build/config/compiler:wexit_time_destructors",
@@ -29,7 +29,7 @@
    if (is_mac) {
      sources += [
        "base/network_notification_thread_mac.cc",
-@@ -1607,7 +1620,7 @@ component("net") {
+@@ -1608,7 +1621,7 @@ component("net") {
    }
  
    # Use getifaddrs() on POSIX platforms, except Linux.
@@ -38,7 +38,7 @@
      sources += [
        "base/network_interfaces_getifaddrs.cc",
        "base/network_interfaces_getifaddrs.h",
-@@ -2382,7 +2395,7 @@ static_library("test_support") {
+@@ -2383,7 +2396,7 @@ static_library("test_support") {
      ]
    }
  
@@ -47,7 +47,7 @@
      sources += [
        "base/address_tracker_linux_test_util.cc",
        "base/address_tracker_linux_test_util.h",
-@@ -3233,14 +3246,14 @@ target(_test_target_type, "net_unittests") {
+@@ -3235,14 +3248,14 @@ target(_test_target_type, "net_unittests") {
      ]
    }
  
@@ -64,7 +64,7 @@
      sources += [
        "base/address_tracker_linux_unittest.cc",
        "base/network_interfaces_linux_unittest.cc",
-@@ -3368,6 +3381,10 @@ target(_test_target_type, "net_unittests") {
+@@ -3371,6 +3384,10 @@ target(_test_target_type, "net_unittests") {
      ]
    }
  
@@ -75,7 +75,7 @@
    if (enable_websockets) {
      sources += [
        "server/http_connection_unittest.cc",
-@@ -3426,7 +3443,7 @@ target(_test_target_type, "net_unittests") {
+@@ -3429,7 +3446,7 @@ target(_test_target_type, "net_unittests") {
    ]
    data_deps = [ "//testing/buildbot/filters:net_unittests_filters" ]
  
@@ -84,7 +84,7 @@
      sources += [ "tools/quic/quic_simple_server_test.cc" ]
    }
  
-@@ -3559,7 +3576,7 @@ target(_test_target_type, "net_unittests") {
+@@ -3562,7 +3579,7 @@ target(_test_target_type, "net_unittests") {
    }
  
    # Use getifaddrs() on POSIX platforms, except Linux.
diff --git a/devel/electron44/files/patch-pdf_pdfium_pdfium__engine.cc b/devel/electron44/files/patch-pdf_pdfium_pdfium__engine.cc
index 8fdb2a7d2615..feaf1ca93bc0 100644
--- a/devel/electron44/files/patch-pdf_pdfium_pdfium__engine.cc
+++ b/devel/electron44/files/patch-pdf_pdfium_pdfium__engine.cc
@@ -1,4 +1,4 @@
---- pdf/pdfium/pdfium_engine.cc.orig	2026-08-24 20:59:34 UTC
+--- pdf/pdfium/pdfium_engine.cc.orig	2026-10-08 11:14:31 UTC
 +++ pdf/pdfium/pdfium_engine.cc
 @@ -133,7 +133,7 @@
  #include "ui/accessibility/ax_features.mojom-features.h"
@@ -9,7 +9,7 @@
  #include "pdf/pdfium/pdfium_font_linux.h"
  #endif
  
-@@ -806,7 +806,7 @@ void InitializeSDK(bool enable_v8,
+@@ -809,7 +809,7 @@ void InitializeSDK(bool enable_v8,
  
    FPDF_InitLibraryWithConfig(&config);
  
diff --git a/devel/electron44/files/patch-third__party_blink_renderer_core_exported_web__view__impl.cc b/devel/electron44/files/patch-third__party_blink_renderer_core_exported_web__view__impl.cc
index e7c1854cda10..7db7bde0d366 100644
--- a/devel/electron44/files/patch-third__party_blink_renderer_core_exported_web__view__impl.cc
+++ b/devel/electron44/files/patch-third__party_blink_renderer_core_exported_web__view__impl.cc
@@ -1,4 +1,4 @@
---- third_party/blink/renderer/core/exported/web_view_impl.cc.orig	2026-10-02 07:36:37 UTC
+--- third_party/blink/renderer/core/exported/web_view_impl.cc.orig	2026-10-08 11:14:31 UTC
 +++ third_party/blink/renderer/core/exported/web_view_impl.cc
 @@ -196,7 +196,7 @@
  #include "ui/base/ui_base_features.h"
@@ -27,7 +27,7 @@
  void UpdateUseOverlayScrollbar(bool use_overlay_scrollbar) {
    ui::NativeTheme::GetInstanceForWeb()->set_use_overlay_scrollbar(
        use_overlay_scrollbar);
-@@ -3686,7 +3686,7 @@ void WebViewImpl::UpdateFontRenderingFromRendererPrefs
+@@ -3699,7 +3699,7 @@ void WebViewImpl::UpdateFontRenderingFromRendererPrefs
        gfx::FontRenderParams::SUBPIXEL_RENDERING_NONE);
    WebFontRenderStyle::SetSubpixelPositioning(
        renderer_preferences_.use_subpixel_positioning);
@@ -36,7 +36,7 @@
    if (!renderer_preferences_.system_font_family_name.empty()) {
      WebFontRenderStyle::SetSystemFontFamily(blink::WebString::FromUtf8(
          renderer_preferences_.system_font_family_name));
-@@ -3826,7 +3826,7 @@ void WebViewImpl::UpdateRendererPreferences(
+@@ -3839,7 +3839,7 @@ void WebViewImpl::UpdateRendererPreferences(
        renderer_preferences_.selection_clipboard_buffer_available);
  #endif  // BUILDFLAG(IS_OZONE)
  
@@ -45,7 +45,7 @@
    GetSettings()->SetMiddleClickPasteAllowed(
        renderer_preferences_.middle_click_paste_allowed);
  #endif  // BUILDFLAG(IS_LINUX)
-@@ -3834,7 +3834,7 @@ void WebViewImpl::UpdateRendererPreferences(
+@@ -3847,7 +3847,7 @@ void WebViewImpl::UpdateRendererPreferences(
    SetExplicitlyAllowedPorts(
        renderer_preferences_.explicitly_allowed_network_ports);
  
diff --git a/devel/electron44/files/patch-ui_gfx_font__util.cc b/devel/electron44/files/patch-ui_gfx_font__util.cc
index 8154f3582594..d263e650f70a 100644
--- a/devel/electron44/files/patch-ui_gfx_font__util.cc
+++ b/devel/electron44/files/patch-ui_gfx_font__util.cc
@@ -1,4 +1,4 @@
---- ui/gfx/font_util.cc.orig	2026-03-13 16:54:03 UTC
+--- ui/gfx/font_util.cc.orig	2026-10-08 11:14:31 UTC
 +++ ui/gfx/font_util.cc
 @@ -7,7 +7,7 @@
  #include "build/build_config.h"
@@ -15,6 +15,6 @@
  
 -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
-   // Early initialize FontConfig.
-   InitializeGlobalFontConfigAsync();
- #endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+   // Ensures the config is created on this thread. It's generally safe to send
+   // concurrent match requests to fontconfig, but it's unsafe to send match
+   // requests concurrently to fontconfig initialization.