git: 11724f3a279b - main - devel/electron44: Update to 44.7.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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.