git: 0d40f183c67b - main - devel/electron43: Update to 43.6.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 04 Sep 2026 22:54:03 UTC
The branch main has been updated by tagattie:
URL: https://cgit.FreeBSD.org/ports/commit/?id=0d40f183c67b1c4b20a6fe4b40b866cff216bd42
commit 0d40f183c67b1c4b20a6fe4b40b866cff216bd42
Author: Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2026-09-04 22:52:50 +0000
Commit: Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2026-09-04 22:53:55 +0000
devel/electron43: Update to 43.6.0
Changelog:
- https://github.com/electron/electron/releases/tag/v43.5.1
- https://github.com/electron/electron/releases/tag/v43.6.0
Reported by: GitHub (watch releases)
---
devel/electron43/Makefile | 2 +-
devel/electron43/Makefile.version | 2 +-
devel/electron43/distinfo | 18 ++---
devel/electron43/files/packagejsons/package.json | 4 +-
.../fixtures/native-addon/object-wrap/package.json | 9 +++
.../files/packagejsons/spec/package.json | 1 +
devel/electron43/files/packagejsons/yarn.lock | 7 ++
.../files/patch-electron_script_spec-runner.js | 15 +++-
...lectron_shell_browser_api_electron__api__app.cc | 6 +-
...ell_browser_api_electron__api__web__contents.cc | 16 ++--
...hell_browser_api_electron__api__web__contents.h | 4 +-
...shell_browser_electron__browser__main__parts.cc | 94 +++++++++++++++++++---
..._shell_browser_electron__browser__main__parts.h | 10 +--
...ll_common_api_electron__api__shared__texture.cc | 4 +-
.../files/patch-electron_spec_api-menu-spec.ts | 4 +-
...patch-electron_spec_api-utility-process-spec.ts | 6 +-
.../patch-electron_spec_api-web-contents-spec.ts | 4 +-
.../files/patch-electron_spec_lib_spec-helpers.ts | 4 +-
18 files changed, 157 insertions(+), 53 deletions(-)
diff --git a/devel/electron43/Makefile b/devel/electron43/Makefile
index accdb241351b..9764f84b2b2d 100644
--- a/devel/electron43/Makefile
+++ b/devel/electron43/Makefile
@@ -228,7 +228,7 @@ SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false
# See ${WRKSRC}/electron/DEPS for CHROMIUM_VER
CHROMIUM_VER= 150.0.7871.250
# See ${WRKSRC}/electron/DEPS for NODE_VER
-NODE_VER= 24.19.0
+NODE_VER= 24.20.0
# See ${WRKSRC}/electron/DEPS for NAN_VER
NAN_VER= 675cefebca42410733da8a454c8d9391fcebfbc2
# See ${WRKSRC}/electron/DEPS for SQUIRREL_MAC_VER
diff --git a/devel/electron43/Makefile.version b/devel/electron43/Makefile.version
index 3f1625584a1f..7321b79239ae 100644
--- a/devel/electron43/Makefile.version
+++ b/devel/electron43/Makefile.version
@@ -1,2 +1,2 @@
-ELECTRON_VER= 43.5.0
+ELECTRON_VER= 43.6.0
ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//}
diff --git a/devel/electron43/distinfo b/devel/electron43/distinfo
index 5d8d1b59b147..5f4b96d46ffa 100644
--- a/devel/electron43/distinfo
+++ b/devel/electron43/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1788183284
+TIMESTAMP = 1788529272
SHA256 (electron/chromium-150.0.7871.250.tar.xz.0) = ff59b1687c8682c9f6138ae24f0e3b0239c035a585857debd902a5783ebed85c
SIZE (electron/chromium-150.0.7871.250.tar.xz.0) = 2000000000
SHA256 (electron/chromium-150.0.7871.250.tar.xz.1) = 44420b00bd86f06de3aa57e555df31c80102042ab214a94d0f090f1d64e80786
@@ -417,14 +417,14 @@ SHA256 (electron/rust/crates/zmij-1.0.21.crate) = b8848ee67ecc8aedbaf3e4122217af
SIZE (electron/rust/crates/zmij-1.0.21.crate) = 26665
SHA256 (electron/yarn-4.12.0.tgz) = bd58d06826ce9542c4cd904fe10bab7bc718ea2cc39a45d9fbd15f2edb45761c
SIZE (electron/yarn-4.12.0.tgz) = 1056794
-SHA256 (electron/electron43-43.5.0-node-modules-arm64.tar.xz) = 6a1a0c39a5b18dcdad561b23b15847660e7b51b3be476595e93256c0f91e017a
-SIZE (electron/electron43-43.5.0-node-modules-arm64.tar.xz) = 62711992
-SHA256 (electron/electron43-43.5.0-node-modules-x64.tar.xz) = f57cf602ff06507d38ed76d09e2ee24c350472f99e451bbfb4bc2b5d2c69c8c0
-SIZE (electron/electron43-43.5.0-node-modules-x64.tar.xz) = 71098213
-SHA256 (electron/electron-electron-v43.5.0_GH0.tar.gz) = c330d659335387e6f5f8c6164e01f09891bd273933fb495badc5cef9e4bd96e2
-SIZE (electron/electron-electron-v43.5.0_GH0.tar.gz) = 19737708
-SHA256 (electron/nodejs-node-v24.19.0_GH0.tar.gz) = f06a13587eab05e24972f39628559a942a495f7140b702ce87d79454e2925bb3
-SIZE (electron/nodejs-node-v24.19.0_GH0.tar.gz) = 127452601
+SHA256 (electron/electron43-43.6.0-node-modules-arm64.tar.xz) = 6a1a0c39a5b18dcdad561b23b15847660e7b51b3be476595e93256c0f91e017a
+SIZE (electron/electron43-43.6.0-node-modules-arm64.tar.xz) = 62711992
+SHA256 (electron/electron43-43.6.0-node-modules-x64.tar.xz) = f57cf602ff06507d38ed76d09e2ee24c350472f99e451bbfb4bc2b5d2c69c8c0
+SIZE (electron/electron43-43.6.0-node-modules-x64.tar.xz) = 71098213
+SHA256 (electron/electron-electron-v43.6.0_GH0.tar.gz) = 037e2b5afcd20f1f456755bcd8c6d60198e888b6f90efab3e54fcdd982405455
+SIZE (electron/electron-electron-v43.6.0_GH0.tar.gz) = 19808200
+SHA256 (electron/nodejs-node-v24.20.0_GH0.tar.gz) = d64f066a3e828f1fcc4d8cc063efd35465604923c16fc64f1e66145bef26ce50
+SIZE (electron/nodejs-node-v24.20.0_GH0.tar.gz) = 129491600
SHA256 (electron/nodejs-nan-675cefebca42410733da8a454c8d9391fcebfbc2_GH0.tar.gz) = 3983c68f19ed75dd37dc228eab385093ae2533132730f253f0c3d19ff10788e3
SIZE (electron/nodejs-nan-675cefebca42410733da8a454c8d9391fcebfbc2_GH0.tar.gz) = 111323
SHA256 (electron/Squirrel-Squirrel.Mac-0e5d146ba13101a1302d59ea6e6e0b3cace4ae38_GH0.tar.gz) = f4ebb40a8d85dbb7ef02aa0571b2f8e22182c6d73b6992484a53c90047779d01
diff --git a/devel/electron43/files/packagejsons/package.json b/devel/electron43/files/packagejsons/package.json
index e4ce0ab095b7..b04839eafd85 100644
--- a/devel/electron43/files/packagejsons/package.json
+++ b/devel/electron43/files/packagejsons/package.json
@@ -131,7 +131,9 @@
],
"DEPS": [
"node script/gen-hunspell-filenames.js",
- "node script/gen-libc++-filenames.js"
+ "node script/gen-libc++-filenames.js",
+ "node script/gen-siso-revision.js",
+ "git add build/siso_revision"
],
".github/workflows/pipeline-segment-electron-build.yml": [
"node script/copy-pipeline-segment-publish.js",
diff --git a/devel/electron43/files/packagejsons/spec/fixtures/native-addon/object-wrap/package.json b/devel/electron43/files/packagejsons/spec/fixtures/native-addon/object-wrap/package.json
new file mode 100644
index 000000000000..964bc2c37e9d
--- /dev/null
+++ b/devel/electron43/files/packagejsons/spec/fixtures/native-addon/object-wrap/package.json
@@ -0,0 +1,9 @@
+{
+ "name": "@electron-ci/object-wrap",
+ "version": "0.0.1",
+ "main": "./lib/object-wrap.js",
+ "electron:requiresElectronHeaders": true,
+ "scripts": {
+ "install": "node-gyp configure && node-gyp build"
+ }
+}
diff --git a/devel/electron43/files/packagejsons/spec/package.json b/devel/electron43/files/packagejsons/spec/package.json
index df8fe98835c4..12ec1036a125 100644
--- a/devel/electron43/files/packagejsons/spec/package.json
+++ b/devel/electron43/files/packagejsons/spec/package.json
@@ -11,6 +11,7 @@
"@electron-ci/echo": "*",
"@electron-ci/external-ab": "*",
"@electron-ci/is-valid-window": "*",
+ "@electron-ci/object-wrap": "*",
"@electron-ci/osr-gpu": "*",
"@electron-ci/uv-dlopen": "*",
"@electron/fuses": "^1.8.0",
diff --git a/devel/electron43/files/packagejsons/yarn.lock b/devel/electron43/files/packagejsons/yarn.lock
index be1d5c8c7f29..873dccc2d793 100644
--- a/devel/electron43/files/packagejsons/yarn.lock
+++ b/devel/electron43/files/packagejsons/yarn.lock
@@ -652,6 +652,12 @@ __metadata:
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"
+ languageName: unknown
+ linkType: soft
+
"@electron-ci/osr-gpu@npm:*, @electron-ci/osr-gpu@workspace:spec/fixtures/native-addon/osr-gpu":
version: 0.0.0-use.local
resolution: "@electron-ci/osr-gpu@workspace:spec/fixtures/native-addon/osr-gpu"
@@ -4445,6 +4451,7 @@ __metadata:
"@electron-ci/echo": "npm:*"
"@electron-ci/external-ab": "npm:*"
"@electron-ci/is-valid-window": "npm:*"
+ "@electron-ci/object-wrap": "npm:*"
"@electron-ci/osr-gpu": "npm:*"
"@electron-ci/uv-dlopen": "npm:*"
"@electron/fuses": "npm:^1.8.0"
diff --git a/devel/electron43/files/patch-electron_script_spec-runner.js b/devel/electron43/files/patch-electron_script_spec-runner.js
index 07151b7d7ce7..939319181d59 100644
--- a/devel/electron43/files/patch-electron_script_spec-runner.js
+++ b/devel/electron43/files/patch-electron_script_spec-runner.js
@@ -1,6 +1,6 @@
---- electron/script/spec-runner.js.orig 2026-07-21 15:33:01 UTC
+--- electron/script/spec-runner.js.orig 2026-09-04 00:15:46 UTC
+++ electron/script/spec-runner.js
-@@ -543,7 +543,7 @@ async function runTestUsingElectron(specDir, testName,
+@@ -554,7 +554,7 @@ async function runTestUsingElectron(specDir, testName,
);
}
const runnerArgs = [`electron/${specDir}`, ...argsToPass, ...additionalArgs];
@@ -9,7 +9,7 @@
runnerArgs.unshift(path.resolve(__dirname, 'dbus_mock.py'), exe);
exe = 'python3';
}
-@@ -614,7 +614,7 @@ async function installSpecModules(dir) {
+@@ -625,7 +625,7 @@ async function installSpecModules(dir) {
process.exit(1);
}
@@ -18,3 +18,12 @@
const { status: rebuildStatus } = childProcess.spawnSync('npm', ['rebuild', 'abstract-socket'], {
env,
cwd: dir,
+@@ -703,7 +703,7 @@ function getNativeAddonToolchainEnv() {
+ // the same GCC that rejects the headers, so nothing on that host can build
+ // the fixtures.
+ function getNativeAddonToolchainEnv() {
+- if (args.electronVersion || process.platform !== 'linux') {
++ if (args.electronVersion || (process.platform !== 'linux' && process.platform !== 'freebsd')) {
+ return {};
+ }
+ const outDir = utils.getOutDir();
diff --git a/devel/electron43/files/patch-electron_shell_browser_api_electron__api__app.cc b/devel/electron43/files/patch-electron_shell_browser_api_electron__api__app.cc
index 75a999058121..64fe09122aad 100644
--- a/devel/electron43/files/patch-electron_shell_browser_api_electron__api__app.cc
+++ b/devel/electron43/files/patch-electron_shell_browser_api_electron__api__app.cc
@@ -1,4 +1,4 @@
---- electron/shell/browser/api/electron_api_app.cc.orig 2026-08-31 00:54:38 UTC
+--- electron/shell/browser/api/electron_api_app.cc.orig 2026-09-04 00:15:46 UTC
+++ electron/shell/browser/api/electron_api_app.cc
@@ -110,7 +110,7 @@
#include "ui/base/resource/resource_bundle.h"
@@ -45,7 +45,7 @@
// Read the xdg-activation token and set it in the command line for the
// duration of the notification in order to ensure this is propagated to an
// already running electron app instance if it exists.
-@@ -1469,7 +1469,7 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics
+@@ -1470,7 +1470,7 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics
pid_dict.Set("name", process_metric.second->name);
}
@@ -54,7 +54,7 @@
auto memory_info = process_metric.second->GetMemoryInfo();
auto memory_dict = gin_helper::Dictionary::CreateEmpty(isolate);
-@@ -1973,7 +1973,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
+@@ -1974,7 +1974,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
.SetMethod("getJumpListSettings", &App::GetJumpListSettings)
.SetMethod("setJumpList", &App::SetJumpList)
#endif
diff --git a/devel/electron43/files/patch-electron_shell_browser_api_electron__api__web__contents.cc b/devel/electron43/files/patch-electron_shell_browser_api_electron__api__web__contents.cc
index 8d96a73bab67..8680582388be 100644
--- a/devel/electron43/files/patch-electron_shell_browser_api_electron__api__web__contents.cc
+++ b/devel/electron43/files/patch-electron_shell_browser_api_electron__api__web__contents.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/api/electron_api_web_contents.cc.orig 2026-08-31 00:54:38 UTC
+--- electron/shell/browser/api/electron_api_web_contents.cc.orig 2026-09-04 00:15:46 UTC
+++ electron/shell/browser/api/electron_api_web_contents.cc
-@@ -182,11 +182,11 @@
+@@ -184,11 +184,11 @@
#include "ui/base/cocoa/defaults_utils.h"
#endif
@@ -14,7 +14,7 @@
#include "ui/aura/window.h"
#include "ui/gfx/font_render_params.h"
#endif
-@@ -216,7 +216,7 @@
+@@ -218,7 +218,7 @@
#include "content/public/browser/plugin_service.h"
#endif
@@ -23,7 +23,7 @@
#include "chrome/browser/hang_monitor/hang_crash_dump.h" // nogncheck
#endif
-@@ -639,7 +639,7 @@ std::optional<base::TimeDelta> GetCursorBlinkInterval(
+@@ -653,7 +653,7 @@ std::optional<base::TimeDelta> GetCursorBlinkInterval(
ui::TextInsertionCaretBlinkPeriodFromDefaults());
if (system_value)
return *system_value;
@@ -32,7 +32,7 @@
if (auto* native_theme = ui::NativeTheme::GetInstanceForNativeUi())
return native_theme->caret_blink_interval();
#elif BUILDFLAG(IS_WIN)
-@@ -1036,7 +1036,7 @@ void WebContents::InitWithSessionAndOptions(
+@@ -1055,7 +1055,7 @@ void WebContents::InitWithSessionAndOptions(
accept_languages.pop_back();
prefs->accept_languages = accept_languages;
@@ -41,7 +41,7 @@
// Update font settings.
static const gfx::FontRenderParams params(
gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(), nullptr));
-@@ -3103,13 +3103,13 @@ void WebContents::ForcefullyCrashRenderer() {
+@@ -3170,13 +3170,13 @@ void WebContents::ForcefullyCrashRenderer() {
content::RenderProcessHost* rph = rwh->GetProcess();
if (rph) {
@@ -57,7 +57,7 @@
CrashDumpHungChildProcess(rph->GetProcess().Handle());
#endif
rph->Shutdown(content::RESULT_CODE_HUNG);
-@@ -3746,7 +3746,7 @@ void WebContents::Focus() {
+@@ -3813,7 +3813,7 @@ void WebContents::Focus() {
void WebContents::Focus() {
// Focusing on WebContents does not automatically focus the window on macOS
// and Linux, do it manually to match the behavior on Windows.
@@ -66,7 +66,7 @@
if (owner_window())
owner_window()->Focus(true);
#endif
-@@ -4645,7 +4645,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() {
+@@ -4712,7 +4712,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() {
}
#endif
diff --git a/devel/electron43/files/patch-electron_shell_browser_api_electron__api__web__contents.h b/devel/electron43/files/patch-electron_shell_browser_api_electron__api__web__contents.h
index b49ef1771b3b..4786b3fdd37e 100644
--- a/devel/electron43/files/patch-electron_shell_browser_api_electron__api__web__contents.h
+++ b/devel/electron43/files/patch-electron_shell_browser_api_electron__api__web__contents.h
@@ -1,6 +1,6 @@
---- electron/shell/browser/api/electron_api_web_contents.h.orig 2026-08-31 00:54:38 UTC
+--- electron/shell/browser/api/electron_api_web_contents.h.orig 2026-09-04 00:15:46 UTC
+++ electron/shell/browser/api/electron_api_web_contents.h
-@@ -773,7 +773,7 @@ class WebContents final : public ExclusiveAccessContex
+@@ -777,7 +777,7 @@ class WebContents final : public ExclusiveAccessContex
#if defined(TOOLKIT_VIEWS) && !BUILDFLAG(IS_MAC)
ui::ImageModel GetDevToolsWindowIcon() override;
#endif
diff --git a/devel/electron43/files/patch-electron_shell_browser_electron__browser__main__parts.cc b/devel/electron43/files/patch-electron_shell_browser_electron__browser__main__parts.cc
index 2e86308ddb6f..0b12aa639448 100644
--- a/devel/electron43/files/patch-electron_shell_browser_electron__browser__main__parts.cc
+++ b/devel/electron43/files/patch-electron_shell_browser_electron__browser__main__parts.cc
@@ -1,4 +1,4 @@
---- electron/shell/browser/electron_browser_main_parts.cc.orig 2026-08-31 00:54:38 UTC
+--- electron/shell/browser/electron_browser_main_parts.cc.orig 2026-09-04 00:15:46 UTC
+++ electron/shell/browser/electron_browser_main_parts.cc
@@ -81,7 +81,7 @@
#include "ui/wm/core/wm_state.h"
@@ -6,10 +6,10 @@
-#if BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include <dlfcn.h>
+
#include "base/environment.h"
- #include "chrome/browser/ui/views/dark_mode_manager_linux.h"
- #include "components/dbus/thread_linux/dbus_thread_linux.h"
-@@ -139,7 +139,7 @@ namespace {
+@@ -141,7 +141,7 @@ namespace {
namespace {
@@ -18,7 +18,66 @@
// The display server connection or the session bus is gone: exit like
// Chrome's SessionEnding(), with an off-thread watchdog that crashes us if
// exiting hangs on the dead connection.
-@@ -356,7 +356,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
+@@ -213,13 +213,17 @@ ElectronBrowserMainParts::ElectronBrowserMainParts()
+ self_ = this;
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ namespace {
+
+ // Resolved via dlsym: a direct reference would bind to Chromium's bundled
+ // FontConfig rather than the system copy GTK and Pango use.
+ void* SystemFontConfigSymbol(const char* name) {
++#if BUILDFLAG(IS_BSD)
++ void* lib = dlopen("libfontconfig.so", RTLD_NOW);
++#else
+ void* lib = dlopen("libfontconfig.so.1", RTLD_NOW);
++#endif
+ return lib ? dlsym(lib, name) : nullptr;
+ }
+
+@@ -250,10 +254,10 @@ std::vector<std::optional<std::string>> SnapshotFontCo
+ }
+
+ } // namespace
+-#endif // BUILDFLAG(IS_LINUX)
++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ ElectronBrowserMainParts::~ElectronBrowserMainParts() {
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ JoinSystemFontConfigInit();
+ #endif
+ }
+@@ -320,7 +324,7 @@ void ElectronBrowserMainParts::PostEarlyInitialization
+
+ node_bindings_->Initialize(isolate, context);
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Runs during Node.js environment creation and is joined before any app
+ // code can run, so nothing else touches FontConfig or the environment.
+ const auto fontconfig_env = SnapshotFontConfigEnv();
+@@ -356,7 +360,7 @@ void ElectronBrowserMainParts::PostEarlyInitialization
+ // Wrap the uv loop with global env.
+ node_bindings_->set_uv_env(node_env_.get());
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ JoinSystemFontConfigInit();
+ #endif
+
+@@ -366,7 +370,7 @@ void ElectronBrowserMainParts::PostEarlyInitialization
+ // Wait for app
+ node_bindings_->JoinAppCode();
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Reload if the app's main script changed the FontConfig environment.
+ if (fontconfig_env != SnapshotFontConfigEnv()) {
+ if (auto fc_reinit = reinterpret_cast<int (*)()>(
+@@ -426,7 +430,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
// happen before the ResourceBundle is loaded
if (locale.empty())
l10n_util::OverrideLocaleWithCocoaLocale();
@@ -27,7 +86,7 @@
// l10n_util::GetApplicationLocaleInternal uses g_get_language_names(),
// which keys off of getenv("LC_ALL").
// We must set this env first to make ui::ResourceBundle accept the custom
-@@ -385,7 +385,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
+@@ -455,7 +459,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
ElectronBrowserClient::SetApplicationLocale(app_locale);
fake_browser_process_->SetApplicationLocale(app_locale);
@@ -36,7 +95,7 @@
// Reset to the original LC_ALL since we should not be changing it.
if (!locale.empty()) {
if (lc_all)
-@@ -441,7 +441,7 @@ void ElectronBrowserMainParts::ToolkitInitialized() {
+@@ -511,7 +515,7 @@ void ElectronBrowserMainParts::ToolkitInitialized() {
}
void ElectronBrowserMainParts::ToolkitInitialized() {
@@ -45,7 +104,24 @@
// GTK3's gtk_init() probes the display for OpenGL and loads the GL driver
// into this process; nothing here uses GdkGLContext. GDK_GL is read once at
// init and only by GTK3 (GTK4 renders with GL itself and ignores it).
-@@ -562,19 +562,23 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo
+@@ -561,14 +565,14 @@ void ElectronBrowserMainParts::ToolkitInitialized() {
+ #endif
+ }
+
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ void ElectronBrowserMainParts::JoinSystemFontConfigInit() {
+ if (system_fontconfig_thread_.is_null())
+ return;
+ base::PlatformThread::Join(system_fontconfig_thread_);
+ system_fontconfig_thread_ = base::PlatformThreadHandle();
+ }
+-#endif // BUILDFLAG(IS_LINUX)
++#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+
+ int ElectronBrowserMainParts::PreMainMessageLoopRun() {
+ // Run user's main script before most things get initialized, so we can have
+@@ -641,19 +645,23 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo
}
void ElectronBrowserMainParts::PostCreateMainMessageLoop() {
@@ -71,7 +147,7 @@
// Set up crypt config. This needs to be done before anything starts the
// network service, as the raw encryption key needs to be shared with the
// network service for encrypted cookie storage.
-@@ -671,7 +675,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun(
+@@ -750,7 +758,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun(
fake_browser_process_->PostMainMessageLoopRun();
content::DevToolsAgentHost::StopRemoteDebuggingPipeHandler();
diff --git a/devel/electron43/files/patch-electron_shell_browser_electron__browser__main__parts.h b/devel/electron43/files/patch-electron_shell_browser_electron__browser__main__parts.h
index 59d29a3ceaf4..42c3f78be5cc 100644
--- a/devel/electron43/files/patch-electron_shell_browser_electron__browser__main__parts.h
+++ b/devel/electron43/files/patch-electron_shell_browser_electron__browser__main__parts.h
@@ -1,11 +1,11 @@
---- electron/shell/browser/electron_browser_main_parts.h.orig 2026-03-31 13:26:31 UTC
+--- electron/shell/browser/electron_browser_main_parts.h.orig 2026-09-04 00:15:46 UTC
+++ electron/shell/browser/electron_browser_main_parts.h
-@@ -143,7 +143,7 @@ class ElectronBrowserMainParts : public content::Brows
+@@ -144,7 +144,7 @@ class ElectronBrowserMainParts : public content::Brows
std::unique_ptr<display::Screen> screen_;
#endif
-#if BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
- std::unique_ptr<ui::DarkModeManagerLinux> dark_mode_manager_;
- std::unique_ptr<ui::LinuxUiGetter> linux_ui_getter_;
- #endif
+ void JoinSystemFontConfigInit();
+
+ base::PlatformThreadHandle system_fontconfig_thread_;
diff --git a/devel/electron43/files/patch-electron_shell_common_api_electron__api__shared__texture.cc b/devel/electron43/files/patch-electron_shell_common_api_electron__api__shared__texture.cc
index 9b7699e5998d..0e1f8f529d6b 100644
--- a/devel/electron43/files/patch-electron_shell_common_api_electron__api__shared__texture.cc
+++ b/devel/electron43/files/patch-electron_shell_common_api_electron__api__shared__texture.cc
@@ -1,4 +1,4 @@
---- electron/shell/common/api/electron_api_shared_texture.cc.orig 2026-08-31 00:54:38 UTC
+--- electron/shell/common/api/electron_api_shared_texture.cc.orig 2026-09-04 00:15:46 UTC
+++ electron/shell/common/api/electron_api_shared_texture.cc
@@ -27,7 +27,7 @@
#include "third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h" // nogncheck
@@ -27,7 +27,7 @@
v8::Local<v8::Object> native_pixmap;
if (shared_texture.Get("nativePixmap", &native_pixmap)) {
gin::Dictionary v8_native_pixmap(isolate, native_pixmap);
-@@ -737,7 +737,7 @@ v8::Local<v8::Value> ImportSharedTexture(v8::Isolate*
+@@ -741,7 +741,7 @@ v8::Local<v8::Value> ImportSharedTexture(v8::Isolate*
auto io_surface_scoped = base::apple::ScopedCFTypeRef<IOSurfaceRef>(
io_surface, base::scoped_policy::RETAIN);
gmb_handle = gfx::GpuMemoryBufferHandle(std::move(io_surface_scoped));
diff --git a/devel/electron43/files/patch-electron_spec_api-menu-spec.ts b/devel/electron43/files/patch-electron_spec_api-menu-spec.ts
index 5a21975ec2b2..018e581ed194 100644
--- a/devel/electron43/files/patch-electron_spec_api-menu-spec.ts
+++ b/devel/electron43/files/patch-electron_spec_api-menu-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-menu-spec.ts.orig 2026-06-09 06:05:33 UTC
+--- electron/spec/api-menu-spec.ts.orig 2026-09-04 00:15:46 UTC
+++ electron/spec/api-menu-spec.ts
-@@ -930,7 +930,7 @@ describe('Menu module', function () {
+@@ -955,7 +955,7 @@ describe('Menu module', function () {
// https://github.com/electron/electron/issues/35724
// Maximizing window is enough to trigger the bug
// FIXME(dsanders11): Test always passes on CI, even pre-fix
diff --git a/devel/electron43/files/patch-electron_spec_api-utility-process-spec.ts b/devel/electron43/files/patch-electron_spec_api-utility-process-spec.ts
index 440da341fe8e..91a25ac4695d 100644
--- a/devel/electron43/files/patch-electron_spec_api-utility-process-spec.ts
+++ b/devel/electron43/files/patch-electron_spec_api-utility-process-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-utility-process-spec.ts.orig 2026-08-31 00:54:38 UTC
+--- electron/spec/api-utility-process-spec.ts.orig 2026-09-04 00:15:46 UTC
+++ electron/spec/api-utility-process-spec.ts
-@@ -624,7 +624,7 @@ describe('utilityProcess module', () => {
+@@ -600,7 +600,7 @@ describe('utilityProcess module', () => {
expect(output).to.include(result);
});
@@ -9,7 +9,7 @@
const message = 'Message from utility process';
const child = utilityProcess.fork(path.join(fixturesPath, 'expose-main-process-module.js'));
await once(child, 'spawn');
-@@ -661,7 +661,7 @@ describe('utilityProcess module', () => {
+@@ -637,7 +637,7 @@ describe('utilityProcess module', () => {
await closeWindow(w);
});
diff --git a/devel/electron43/files/patch-electron_spec_api-web-contents-spec.ts b/devel/electron43/files/patch-electron_spec_api-web-contents-spec.ts
index ba6ef46d163c..52d167fbf237 100644
--- a/devel/electron43/files/patch-electron_spec_api-web-contents-spec.ts
+++ b/devel/electron43/files/patch-electron_spec_api-web-contents-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec/api-web-contents-spec.ts.orig 2026-08-31 00:54:38 UTC
+--- electron/spec/api-web-contents-spec.ts.orig 2026-09-04 00:15:46 UTC
+++ electron/spec/api-web-contents-spec.ts
@@ -1579,7 +1579,7 @@ describe('webContents module', () => {
// back to OpenFolder() which does a blocking DirectoryExists() on the UI
@@ -9,7 +9,7 @@
'reveals paths under a registered workspace folder without executing them',
async () => {
const w = new BrowserWindow({ show: false });
-@@ -3698,7 +3698,7 @@ describe('webContents module', () => {
+@@ -3965,7 +3965,7 @@ describe('webContents module', () => {
});
// TODO(codebytere): OOPIF printing is disabled on Linux at the moment due to crashes.
diff --git a/devel/electron43/files/patch-electron_spec_lib_spec-helpers.ts b/devel/electron43/files/patch-electron_spec_lib_spec-helpers.ts
index 571ecb14103e..37ff6a9ea1f6 100644
--- a/devel/electron43/files/patch-electron_spec_lib_spec-helpers.ts
+++ b/devel/electron43/files/patch-electron_spec_lib_spec-helpers.ts
@@ -1,6 +1,6 @@
---- electron/spec/lib/spec-helpers.ts.orig 2026-05-08 13:54:01 UTC
+--- electron/spec/lib/spec-helpers.ts.orig 2026-09-04 00:15:46 UTC
+++ electron/spec/lib/spec-helpers.ts
-@@ -27,7 +27,7 @@ export const isWayland =
+@@ -28,7 +28,7 @@ export const isWayland =
export const ifdescribe = (condition: boolean) => (condition ? describe : addOnly<SuiteFunction>(describe.skip));
export const isWayland =