git: 6d42f1e2f558 - main - devel/electron43: Update to 43.5.0

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Tue, 01 Sep 2026 09:30:23 UTC
The branch main has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6d42f1e2f5586cb2169b96a8cf3b7deafbaa64f4

commit 6d42f1e2f5586cb2169b96a8cf3b7deafbaa64f4
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2026-09-01 09:29:13 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2026-09-01 09:30:15 +0000

    devel/electron43: Update to 43.5.0
    
    Changelog: https://github.com/electron/electron/releases/tag/v43.5.0
    
    Reported by:    GitHub (watch releases)
---
 devel/electron43/Makefile                          | 18 ++++++---
 devel/electron43/Makefile.version                  |  2 +-
 devel/electron43/distinfo                          | 30 +++++++-------
 .../fixtures/api/session-bus-lost/package.json     |  4 ++
 .../apps/remote-debugging-emulation/package.json   |  4 ++
 ...tch-chrome_browser_process__singleton__posix.cc |  4 +-
 ...t_render__widget__host__view__event__handler.cc |  4 +-
 devel/electron43/files/patch-electron_BUILD.gn     | 14 +++----
 ...-electron_shell_app_electron__main__delegate.cc | 25 ++++++++----
 .../files/patch-electron_shell_app_node__main.cc   |  8 ++--
 ...lectron_shell_browser_api_electron__api__app.cc | 16 ++++----
 ...hell_browser_api_electron__api__base__window.cc |  8 ++--
 ...shell_browser_api_electron__api__base__window.h |  4 +-
 ...ell_browser_api_electron__api__web__contents.cc | 16 ++++----
 ...hell_browser_api_electron__api__web__contents.h |  4 +-
 .../files/patch-electron_shell_browser_browser.cc  |  4 +-
 .../files/patch-electron_shell_browser_browser.h   |  4 +-
 ...shell_browser_electron__browser__main__parts.cc | 37 +++++++++--------
 .../patch-electron_shell_browser_native__window.cc |  4 +-
 ...-electron_shell_browser_native__window__views.h | 10 ++---
 ..._shell_browser_ui_inspectable__web__contents.cc |  4 +-
 ...ll_common_api_electron__api__shared__texture.cc |  8 ++--
 ..._shell_common_gin__converters_osr__converter.cc |  4 +-
 .../patch-electron_shell_common_node__bindings.cc  |  4 +-
 ...-electron_shell_common_node__bindings__linux.cc | 15 +++----
 .../files/patch-electron_spec_api-app-spec.ts      | 47 +++++++++++++---------
 .../patch-electron_spec_api-browser-window-spec.ts | 20 ++++-----
 .../files/patch-electron_spec_api-protocol-spec.ts |  4 +-
 ...patch-electron_spec_api-utility-process-spec.ts |  6 +--
 .../patch-electron_spec_api-web-contents-spec.ts   |  6 +--
 .../files/patch-electron_spec_chromium-spec.ts     |  8 ++--
 .../files/patch-electron_spec_node-spec.ts         |  4 +-
 ...sions_browser_api_messaging_message__service.cc |  4 +-
 ..._command__buffer_service_gles2__cmd__decoder.cc |  4 +-
 ...mmand__buffer_service_shared__context__state.cc |  8 ++--
 .../files/patch-gpu_ipc_service_gpu__init.cc       | 10 ++---
 36 files changed, 205 insertions(+), 171 deletions(-)

diff --git a/devel/electron43/Makefile b/devel/electron43/Makefile
index 2ed848aa6e50..accdb241351b 100644
--- a/devel/electron43/Makefile
+++ b/devel/electron43/Makefile
@@ -4,7 +4,7 @@ DISTVERSION=	${ELECTRON_VER}
 PULSEMV=	16
 PULSEV=		${PULSEMV}.1
 CATEGORIES=	devel
-MASTER_SITES=	https://github.com/tagattie/FreeBSD-Electron/releases/download/v43.4.0/:chromium \
+MASTER_SITES=	https://github.com/tagattie/FreeBSD-Electron/releases/download/v43.5.0/:chromium \
 		https://freedesktop.org/software/pulseaudio/releases/:pulseaudio
 PKGNAMESUFFIX=	${ELECTRON_VER_MAJOR}
 DISTFILES=	chromium-${CHROMIUM_VER}${EXTRACT_SUFX}.0:chromium \
@@ -226,9 +226,9 @@ SNDIO_VARS=		GN_ARGS+=use_sndio=true
 SNDIO_VARS_OFF=		GN_ARGS+=use_sndio=false
 
 # See ${WRKSRC}/electron/DEPS for CHROMIUM_VER
-CHROMIUM_VER=			150.0.7871.224
+CHROMIUM_VER=			150.0.7871.250
 # See ${WRKSRC}/electron/DEPS for NODE_VER
-NODE_VER=			24.18.1
+NODE_VER=			24.19.0
 # See ${WRKSRC}/electron/DEPS for NAN_VER
 NAN_VER=			675cefebca42410733da8a454c8d9391fcebfbc2
 # See ${WRKSRC}/electron/DEPS for SQUIRREL_MAC_VER
@@ -346,8 +346,16 @@ post-extract:
 
 pre-patch:
 	${SH} ${FILESDIR}/apply-electron-patches.sh ${WRKSRC}
-	# ${FIND} ${WRKSRC} -type f -name '*.orig' -print -delete
-	# ${FIND} ${WRKSRC} -type f -name '*~' -print -delete
+.ifdef MAINTAINER_MODE
+	${FIND} ${WRKSRC} -type f -name '*.orig' -print -delete
+	${FIND} ${WRKSRC} -type f -name '*~' -print -delete
+.endif
+
+.ifndef MAINTAINER_MODE
+post-patch:
+	@${REINPLACE_CMD} -e 's|/usr/bin/dbus-daemon|${LOCALBASE}/bin/dbus-daemon|' \
+		${WRKSRC}/electron/spec/api-app-spec.ts
+.endif
 
 pre-configure:
 	# We used to remove bundled libraries to be sure that chromium uses
diff --git a/devel/electron43/Makefile.version b/devel/electron43/Makefile.version
index dcae2ad6f0b0..3f1625584a1f 100644
--- a/devel/electron43/Makefile.version
+++ b/devel/electron43/Makefile.version
@@ -1,2 +1,2 @@
-ELECTRON_VER=		43.4.1
+ELECTRON_VER=		43.5.0
 ELECTRON_VER_MAJOR=	${ELECTRON_VER:C/\..*//}
diff --git a/devel/electron43/distinfo b/devel/electron43/distinfo
index ba97ceff340f..5d8d1b59b147 100644
--- a/devel/electron43/distinfo
+++ b/devel/electron43/distinfo
@@ -1,10 +1,10 @@
-TIMESTAMP = 1787262291
-SHA256 (electron/chromium-150.0.7871.224.tar.xz.0) = d0341a640489da4f74e3999b4d5d305a20e0cfb9d17cac83164ccf8aa9e3f626
-SIZE (electron/chromium-150.0.7871.224.tar.xz.0) = 2000000000
-SHA256 (electron/chromium-150.0.7871.224.tar.xz.1) = b42aa0c118175230fb550322a26e273e482703823709b152910ee68ac9543b7c
-SIZE (electron/chromium-150.0.7871.224.tar.xz.1) = 2000000000
-SHA256 (electron/chromium-150.0.7871.224.tar.xz.2) = 80d3e90610a60354f8b1c5c0cffa85159373546c4aa41199d5ca2ebec085edfb
-SIZE (electron/chromium-150.0.7871.224.tar.xz.2) = 896181616
+TIMESTAMP = 1788183284
+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
+SIZE (electron/chromium-150.0.7871.250.tar.xz.1) = 2000000000
+SHA256 (electron/chromium-150.0.7871.250.tar.xz.2) = 1c1554757c0d4a21721db8d990d995d03080908724a7bde091255c40807eb9f7
+SIZE (electron/chromium-150.0.7871.250.tar.xz.2) = 895887844
 SHA256 (electron/pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92
 SIZE (electron/pulseaudio-16.1.tar.gz) = 2763111
 SHA256 (electron/rust/crates/ahash-0.8.12.crate) = 5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75
@@ -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.4.1-node-modules-arm64.tar.xz) = 6a1a0c39a5b18dcdad561b23b15847660e7b51b3be476595e93256c0f91e017a
-SIZE (electron/electron43-43.4.1-node-modules-arm64.tar.xz) = 62711992
-SHA256 (electron/electron43-43.4.1-node-modules-x64.tar.xz) = f57cf602ff06507d38ed76d09e2ee24c350472f99e451bbfb4bc2b5d2c69c8c0
-SIZE (electron/electron43-43.4.1-node-modules-x64.tar.xz) = 71098213
-SHA256 (electron/electron-electron-v43.4.1_GH0.tar.gz) = e4ca9c47f0be673e593677342614be00dc8dbda9b3f89e99af0ad1f59a185929
-SIZE (electron/electron-electron-v43.4.1_GH0.tar.gz) = 19503916
-SHA256 (electron/nodejs-node-v24.18.1_GH0.tar.gz) = bb8065bf6b8b4a2da85dba16c1f69c0a3ad90c0481b33f1ab4c82e3d2bcc8c77
-SIZE (electron/nodejs-node-v24.18.1_GH0.tar.gz) = 127539215
+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/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/spec/fixtures/api/session-bus-lost/package.json b/devel/electron43/files/packagejsons/spec/fixtures/api/session-bus-lost/package.json
new file mode 100644
index 000000000000..b2ead513c071
--- /dev/null
+++ b/devel/electron43/files/packagejsons/spec/fixtures/api/session-bus-lost/package.json
@@ -0,0 +1,4 @@
+{
+  "name": "session-bus-lost",
+  "main": "main.js"
+}
diff --git a/devel/electron43/files/packagejsons/spec/fixtures/apps/remote-debugging-emulation/package.json b/devel/electron43/files/packagejsons/spec/fixtures/apps/remote-debugging-emulation/package.json
new file mode 100644
index 000000000000..734fa7ffacb5
--- /dev/null
+++ b/devel/electron43/files/packagejsons/spec/fixtures/apps/remote-debugging-emulation/package.json
@@ -0,0 +1,4 @@
+{
+  "name": "remote-debugging-emulation",
+  "main": "main.js"
+}
diff --git a/devel/electron43/files/patch-chrome_browser_process__singleton__posix.cc b/devel/electron43/files/patch-chrome_browser_process__singleton__posix.cc
index 98d9b7d3277d..74d006c4fd26 100644
--- a/devel/electron43/files/patch-chrome_browser_process__singleton__posix.cc
+++ b/devel/electron43/files/patch-chrome_browser_process__singleton__posix.cc
@@ -1,6 +1,6 @@
---- chrome/browser/process_singleton_posix.cc.orig	2026-07-07 05:57:55 UTC
+--- chrome/browser/process_singleton_posix.cc.orig	2026-08-31 13:40:08 UTC
 +++ chrome/browser/process_singleton_posix.cc
-@@ -371,7 +371,7 @@ bool DisplayProfileInUseError(const base::FilePath& lo
+@@ -391,7 +391,7 @@ bool DisplayProfileInUseError(const base::FilePath& lo
    if (g_disable_prompt)
      return g_user_opted_unlock_in_use_profile;
  
diff --git a/devel/electron43/files/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc b/devel/electron43/files/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc
index a5452195a837..81f46b0bc048 100644
--- a/devel/electron43/files/patch-content_browser_renderer__host_render__widget__host__view__event__handler.cc
+++ b/devel/electron43/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-07-27 18:15:13 UTC
+--- content/browser/renderer_host/render_widget_host_view_event_handler.cc.orig	2026-08-31 13:40:09 UTC
 +++ content/browser/renderer_host/render_widget_host_view_event_handler.cc
-@@ -629,7 +629,7 @@ bool RenderWidgetHostViewEventHandler::CanRendererHand
+@@ -630,7 +630,7 @@ bool RenderWidgetHostViewEventHandler::CanRendererHand
    if (event->type() == ui::EventType::kMouseExited) {
      if (mouse_locked || selection_popup)
        return false;
diff --git a/devel/electron43/files/patch-electron_BUILD.gn b/devel/electron43/files/patch-electron_BUILD.gn
index 53aa72fa874d..29eaa08ef399 100644
--- a/devel/electron43/files/patch-electron_BUILD.gn
+++ b/devel/electron43/files/patch-electron_BUILD.gn
@@ -1,6 +1,6 @@
---- electron/BUILD.gn.orig	2026-08-10 18:14:50 UTC
+--- electron/BUILD.gn.orig	2026-08-31 00:54:38 UTC
 +++ electron/BUILD.gn
-@@ -628,7 +628,7 @@ source_set("electron_lib") {
+@@ -629,7 +629,7 @@ source_set("electron_lib") {
      defines += [ "GDK_DISABLE_DEPRECATION_WARNINGS" ]
    }
  
@@ -9,7 +9,7 @@
      deps += [
        "//components/crash/core/app",
        "//components/crash/core/browser",
-@@ -742,6 +742,12 @@ source_set("electron_lib") {
+@@ -743,6 +743,12 @@ source_set("electron_lib") {
        cflags_objcc = [ "-fobjc-weak" ]
      }
    }
@@ -22,7 +22,7 @@
    if (is_linux) {
      libs = [ "xshmfence" ]
      deps += [
-@@ -1524,7 +1530,7 @@ if (is_mac) {
+@@ -1547,7 +1553,7 @@ if (is_mac) {
        ":electron_lib",
        ":electron_win32_resources",
        ":packed_resources",
@@ -31,7 +31,7 @@
        "//content:sandbox_helper_win",
        "//electron/buildflags",
        "//third_party/electron_node:libnode",
-@@ -1551,7 +1557,7 @@ if (is_mac) {
+@@ -1574,7 +1580,7 @@ if (is_mac) {
        public_deps = [ "//tools/v8_context_snapshot" ]
      }
  
@@ -40,7 +40,7 @@
        data_deps += [ "//components/crash/core/app:chrome_crashpad_handler" ]
      }
  
-@@ -1618,7 +1624,7 @@ if (is_mac) {
+@@ -1641,7 +1647,7 @@ if (is_mac) {
          configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
        }
  
@@ -49,7 +49,7 @@
          deps += [ "//sandbox/linux:chrome_sandbox" ]
        }
      }
-@@ -1739,7 +1745,9 @@ dist_zip("electron_dist_zip") {
+@@ -1762,7 +1768,9 @@ dist_zip("electron_dist_zip") {
        ]
      }
  
diff --git a/devel/electron43/files/patch-electron_shell_app_electron__main__delegate.cc b/devel/electron43/files/patch-electron_shell_app_electron__main__delegate.cc
index bafdc398acd2..5145dfcd3632 100644
--- a/devel/electron43/files/patch-electron_shell_app_electron__main__delegate.cc
+++ b/devel/electron43/files/patch-electron_shell_app_electron__main__delegate.cc
@@ -1,4 +1,4 @@
---- electron/shell/app/electron_main_delegate.cc.orig	2026-06-29 20:35:15 UTC
+--- electron/shell/app/electron_main_delegate.cc.orig	2026-08-31 00:54:38 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"
- #include "v8/include/v8-wasm-trap-handler-posix.h"
-@@ -78,7 +78,7 @@
+@@ -79,7 +79,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"
-@@ -218,7 +218,7 @@ std::optional<int> ElectronMainDelegate::BasicStartupC
+@@ -219,7 +219,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 --"
-@@ -268,7 +268,7 @@ void ElectronMainDelegate::PreSandboxStartup() {
+@@ -269,7 +269,7 @@ void ElectronMainDelegate::PreSandboxStartup() {
        /* is_preinit = */ IsBrowserProcess() || IsZygoteProcess());
  #endif
  
@@ -36,7 +36,7 @@
    crash_reporter::InitializeCrashKeys();
  #endif
  
-@@ -303,7 +303,7 @@ void ElectronMainDelegate::PreSandboxStartup() {
+@@ -304,7 +304,7 @@ void ElectronMainDelegate::PreSandboxStartup() {
    }
  #endif
  
@@ -45,7 +45,7 @@
    crash_keys::SetCrashKeysFromCommandLine(*command_line);
    crash_keys::SetPlatformCrashKey();
  #endif
-@@ -322,7 +322,7 @@ void ElectronMainDelegate::PreSandboxStartup() {
+@@ -323,7 +323,7 @@ void ElectronMainDelegate::PreSandboxStartup() {
  #if BUILDFLAG(IS_OZONE)
      // Initialize Ozone platform and add required feature flags as per
      // platform's properties.
@@ -54,7 +54,16 @@
      ui::SetOzonePlatformForLinuxIfNeeded(*command_line);
  #endif
      ui::OzonePlatform::PreSandboxStartup();
-@@ -352,7 +352,7 @@ std::optional<int> ElectronMainDelegate::PreBrowserMai
+@@ -353,7 +353,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();
+@@ -361,7 +361,7 @@ std::optional<int> ElectronMainDelegate::PreBrowserMai
  #if BUILDFLAG(IS_MAC)
    RegisterAtomCrApp();
  #endif
diff --git a/devel/electron43/files/patch-electron_shell_app_node__main.cc b/devel/electron43/files/patch-electron_shell_app_node__main.cc
index 563edfc85c2b..069b9cf7cf00 100644
--- a/devel/electron43/files/patch-electron_shell_app_node__main.cc
+++ b/devel/electron43/files/patch-electron_shell_app_node__main.cc
@@ -1,6 +1,6 @@
---- electron/shell/app/node_main.cc.orig	2026-06-29 20:35:15 UTC
+--- electron/shell/app/node_main.cc.orig	2026-08-31 00:54:38 UTC
 +++ electron/shell/app/node_main.cc
-@@ -53,7 +53,7 @@
+@@ -54,7 +54,7 @@
  #include "shell/common/mac/codesign_util.h"
  #endif
  
@@ -9,7 +9,7 @@
  #include "components/crash/core/app/crashpad.h"  // nogncheck
  #include "shell/app/electron_crash_reporter_client.h"
  #include "shell/common/crash_keys.h"
-@@ -105,14 +105,14 @@ bool UnsetHijackableEnvs(base::Environment* env) {
+@@ -106,14 +106,14 @@ bool UnsetHijackableEnvs(base::Environment* env) {
  }
  #endif
  
@@ -26,7 +26,7 @@
    electron::crash_keys::GetCrashKeys(&keys);
  #endif
    return gin::ConvertToV8(isolate, keys);
-@@ -294,7 +294,7 @@ int NodeMain() {
+@@ -329,7 +329,7 @@ int NodeMain() {
        // Setup process.crashReporter in child node processes
        auto reporter = gin_helper::Dictionary::CreateEmpty(isolate);
        reporter.SetMethod("getParameters", &GetParameters);
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 1db605fdd14c..75a999058121 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,6 +1,6 @@
---- electron/shell/browser/api/electron_api_app.cc.orig	2026-07-21 15:33:01 UTC
+--- electron/shell/browser/api/electron_api_app.cc.orig	2026-08-31 00:54:38 UTC
 +++ electron/shell/browser/api/electron_api_app.cc
-@@ -109,7 +109,7 @@
+@@ -110,7 +110,7 @@
  #include "ui/base/resource/resource_bundle.h"
  #endif
  
@@ -9,7 +9,7 @@
  #include "base/nix/scoped_xdg_activation_token_injector.h"
  #include "base/nix/xdg_util.h"
  #endif
-@@ -437,7 +437,7 @@ bool NotificationCallbackWrapper(
+@@ -438,7 +438,7 @@ bool NotificationCallbackWrapper(
      base::CommandLine cmd,
      const base::FilePath& cwd,
      const std::vector<uint8_t> additional_data) {
@@ -18,7 +18,7 @@
    // Set the global activation token sent as a command line switch by another
    // electron app instance. This also removes the switch after use to prevent
    // any side effects of leaving it in the command line after this point.
-@@ -622,7 +622,7 @@ void App::OnFinishLaunching(base::DictValue launch_inf
+@@ -623,7 +623,7 @@ void App::OnFinishLaunching(base::DictValue launch_inf
  }
  
  void App::OnFinishLaunching(base::DictValue launch_info) {
@@ -27,7 +27,7 @@
    // Set the application name for audio streams shown in external
    // applications. Only affects pulseaudio currently.
    media::AudioManager::SetGlobalAppName(Browser::Get()->GetName());
-@@ -971,7 +971,7 @@ void App::SetDesktopName(const std::string& desktop_na
+@@ -972,7 +972,7 @@ void App::SetDesktopName(const std::string& desktop_na
  }
  
  void App::SetDesktopName(const std::string& desktop_name) {
@@ -36,7 +36,7 @@
    auto env = base::Environment::Create();
    env->SetVar("CHROME_DESKTOP", desktop_name);
  #endif
-@@ -1073,7 +1073,7 @@ bool App::RequestSingleInstanceLock(gin::Arguments* ar
+@@ -1074,7 +1074,7 @@ bool App::RequestSingleInstanceLock(gin::Arguments* ar
        base::BindRepeating(NotificationCallbackWrapper, cb));
  #endif
  
@@ -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.
-@@ -1468,7 +1468,7 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics
+@@ -1469,7 +1469,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);
-@@ -1975,7 +1975,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
+@@ -1973,7 +1973,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__base__window.cc b/devel/electron43/files/patch-electron_shell_browser_api_electron__api__base__window.cc
index 92f23ad6371f..c199e54bf752 100644
--- a/devel/electron43/files/patch-electron_shell_browser_api_electron__api__base__window.cc
+++ b/devel/electron43/files/patch-electron_shell_browser_api_electron__api__base__window.cc
@@ -1,4 +1,4 @@
---- electron/shell/browser/api/electron_api_base_window.cc.orig	2026-06-29 20:35:15 UTC
+--- electron/shell/browser/api/electron_api_base_window.cc.orig	2026-08-31 00:54:38 UTC
 +++ electron/shell/browser/api/electron_api_base_window.cc
 @@ -43,7 +43,7 @@
  #include "shell/browser/ui/views/win_frame_view.h"
@@ -9,7 +9,7 @@
  #include "shell/browser/ui/views/electron_frame_view_linux.h"
  #include "ui/gfx/image/image_skia.h"
  #endif
-@@ -1043,7 +1043,7 @@ void BaseWindow::SetIconImpl(v8::Isolate* isolate,
+@@ -1063,7 +1063,7 @@ void BaseWindow::SetIconImpl(v8::Isolate* isolate,
    static_cast<NativeWindowViews*>(window_.get())
        ->SetIcon(native_image->GetHICON(GetSystemMetrics(SM_CXSMICON)),
                  native_image->GetHICON(GetSystemMetrics(SM_CXICON)));
@@ -18,7 +18,7 @@
    static_cast<NativeWindowViews*>(window_.get())
        ->SetIcon(native_image->image().AsImageSkia());
  #endif
-@@ -1144,7 +1144,7 @@ v8::Local<v8::Value> BaseWindow::GetAccentColor() cons
+@@ -1164,7 +1164,7 @@ v8::Local<v8::Value> BaseWindow::GetAccentColor() cons
  }
  #endif
  
@@ -27,7 +27,7 @@
  void BaseWindow::SetTitleBarOverlay(const gin_helper::Dictionary& options,
                                      gin::Arguments* args) {
    static_cast<NativeWindowViews*>(window_.get())
-@@ -1326,7 +1326,7 @@ void BaseWindow::BuildPrototype(v8::Isolate* isolate,
+@@ -1346,7 +1346,7 @@ void BaseWindow::BuildPrototype(v8::Isolate* isolate,
        .SetMethod("setThumbnailToolTip", &BaseWindow::SetThumbnailToolTip)
        .SetMethod("setAppDetails", &BaseWindow::SetAppDetails)
  #endif
diff --git a/devel/electron43/files/patch-electron_shell_browser_api_electron__api__base__window.h b/devel/electron43/files/patch-electron_shell_browser_api_electron__api__base__window.h
index 0892dc19e2ba..b90c4b1bef97 100644
--- a/devel/electron43/files/patch-electron_shell_browser_api_electron__api__base__window.h
+++ b/devel/electron43/files/patch-electron_shell_browser_api_electron__api__base__window.h
@@ -1,6 +1,6 @@
---- electron/shell/browser/api/electron_api_base_window.h.orig	2026-05-08 13:54:01 UTC
+--- electron/shell/browser/api/electron_api_base_window.h.orig	2026-08-31 00:54:38 UTC
 +++ electron/shell/browser/api/electron_api_base_window.h
-@@ -263,7 +263,7 @@ class BaseWindow : public gin_helper::TrackableObject<
+@@ -265,7 +265,7 @@ class BaseWindow : public gin_helper::TrackableObject<
    v8::Local<v8::Value> GetAccentColor() const;
  #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 f44b0eee4437..8d96a73bab67 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-18 19:28:27 UTC
+--- 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
-@@ -183,11 +183,11 @@
+@@ -182,11 +182,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
-@@ -217,7 +217,7 @@
+@@ -216,7 +216,7 @@
  #include "content/public/browser/plugin_service.h"
  #endif
  
@@ -23,7 +23,7 @@
  #include "chrome/browser/hang_monitor/hang_crash_dump.h"  // nogncheck
  #endif
  
-@@ -638,7 +638,7 @@ std::optional<base::TimeDelta> GetCursorBlinkInterval(
+@@ -639,7 +639,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)
-@@ -1035,7 +1035,7 @@ void WebContents::InitWithSessionAndOptions(
+@@ -1036,7 +1036,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));
-@@ -3112,13 +3112,13 @@ void WebContents::ForcefullyCrashRenderer() {
+@@ -3103,13 +3103,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);
-@@ -3751,7 +3751,7 @@ void WebContents::Focus() {
+@@ -3746,7 +3746,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
-@@ -4650,7 +4650,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() {
+@@ -4645,7 +4645,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 2c9a4791069e..b49ef1771b3b 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-18 19:28:27 UTC
+--- 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
-@@ -767,7 +767,7 @@ class WebContents final : public ExclusiveAccessContex
+@@ -773,7 +773,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_browser.cc b/devel/electron43/files/patch-electron_shell_browser_browser.cc
index b733f02916c0..390702b99fbf 100644
--- a/devel/electron43/files/patch-electron_shell_browser_browser.cc
+++ b/devel/electron43/files/patch-electron_shell_browser_browser.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/browser.cc.orig	2026-08-18 19:28:27 UTC
+--- electron/shell/browser/browser.cc.orig	2026-08-31 00:54:38 UTC
 +++ electron/shell/browser/browser.cc
-@@ -98,7 +98,7 @@ bool Browser::IsValidProtocolScheme(const std::string&
+@@ -105,7 +105,7 @@ bool Browser::IsValidProtocolScheme(const std::string&
    return true;
  }
  
diff --git a/devel/electron43/files/patch-electron_shell_browser_browser.h b/devel/electron43/files/patch-electron_shell_browser_browser.h
index cdb67742fcce..a5e60f29afa6 100644
--- a/devel/electron43/files/patch-electron_shell_browser_browser.h
+++ b/devel/electron43/files/patch-electron_shell_browser_browser.h
@@ -1,6 +1,6 @@
---- electron/shell/browser/browser.h.orig	2026-08-10 18:14:50 UTC
+--- electron/shell/browser/browser.h.orig	2026-08-31 00:54:38 UTC
 +++ electron/shell/browser/browser.h
-@@ -296,10 +296,10 @@ class Browser : private WindowListObserver {
+@@ -295,10 +295,10 @@ class Browser : private WindowListObserver {
    PCWSTR GetAppUserModelID();
  #endif  // BUILDFLAG(IS_WIN)
  
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 68112374157f..2e86308ddb6f 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-10 18:14:50 UTC
+--- electron/shell/browser/electron_browser_main_parts.cc.orig	2026-08-31 00:54:38 UTC
 +++ electron/shell/browser/electron_browser_main_parts.cc
 @@ -81,7 +81,7 @@
  #include "ui/wm/core/wm_state.h"
@@ -8,17 +8,17 @@
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
  #include "base/environment.h"
  #include "chrome/browser/ui/views/dark_mode_manager_linux.h"
- #include "device/bluetooth/bluetooth_adapter_factory.h"
-@@ -138,7 +138,7 @@ namespace {
+ #include "components/dbus/thread_linux/dbus_thread_linux.h"
+@@ -139,7 +139,7 @@ namespace {
  
  namespace {
  
 -#if BUILDFLAG(IS_LINUX)
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
- class LinuxUiGetterImpl : public ui::LinuxUiGetter {
-  public:
-   LinuxUiGetterImpl() = default;
-@@ -326,7 +326,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
+ // 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() {
    // happen before the ResourceBundle is loaded
    if (locale.empty())
      l10n_util::OverrideLocaleWithCocoaLocale();
@@ -27,7 +27,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
-@@ -355,7 +355,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
+@@ -385,7 +385,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
    ElectronBrowserClient::SetApplicationLocale(app_locale);
    fake_browser_process_->SetApplicationLocale(app_locale);
  
@@ -36,16 +36,16 @@
    // Reset to the original LC_ALL since we should not be changing it.
    if (!locale.empty()) {
      if (lc_all)
-@@ -411,7 +411,7 @@ void ElectronBrowserMainParts::ToolkitInitialized() {
+@@ -441,7 +441,7 @@ void ElectronBrowserMainParts::ToolkitInitialized() {
  }
  
  void ElectronBrowserMainParts::ToolkitInitialized() {
 -#if BUILDFLAG(IS_LINUX)
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
-   auto* linux_ui = ui::GetDefaultLinuxUi();
-   CHECK(linux_ui);
-   linux_ui_getter_ = std::make_unique<LinuxUiGetterImpl>();
-@@ -522,10 +522,10 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo
+   // 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
  }
  
  void ElectronBrowserMainParts::PostCreateMainMessageLoop() {
@@ -55,12 +55,11 @@
  #endif
 -#if BUILDFLAG(IS_LINUX)
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
-   // The display server connection is gone (X IO error / compositor lost):
-   // exit like Chrome's SessionEnding(), with an off-thread watchdog that
-   // crashes us if exiting hangs on the dead display connection.
-@@ -545,9 +545,13 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo
-       std::move(shutdown_cb),
+   ui::OzonePlatform::GetInstance()->PostCreateMainMessageLoop(
+       base::BindOnce(&ExitOnSessionLoss),
        content::GetUIThreadTaskRunner({content::BrowserTaskType::kUserInput}));
+   dbus_thread_linux::SetDisconnectedCallback(
+       base::BindRepeating(&ExitOnSessionLoss));
  
 +#if BUILDFLAG(IS_LINUX)
    if (!bluez::BluezDBusManager::IsInitialized())
@@ -72,7 +71,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.
-@@ -644,7 +648,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun(
+@@ -671,7 +675,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun(
    fake_browser_process_->PostMainMessageLoopRun();
    content::DevToolsAgentHost::StopRemoteDebuggingPipeHandler();
  
diff --git a/devel/electron43/files/patch-electron_shell_browser_native__window.cc b/devel/electron43/files/patch-electron_shell_browser_native__window.cc
index fab2874ddaf6..3c1b38a15bf9 100644
--- a/devel/electron43/files/patch-electron_shell_browser_native__window.cc
+++ b/devel/electron43/files/patch-electron_shell_browser_native__window.cc
@@ -1,4 +1,4 @@
---- electron/shell/browser/native_window.cc.orig	2026-08-18 19:28:27 UTC
+--- electron/shell/browser/native_window.cc.orig	2026-08-31 00:54:38 UTC
 +++ electron/shell/browser/native_window.cc
 @@ -33,7 +33,7 @@
  
@@ -9,7 +9,7 @@
  #include "shell/browser/ui/views/electron_frame_view_linux.h"
  #endif
  
-@@ -184,7 +184,7 @@ void NativeWindow::InitFromOptions(const gin_helper::D
+@@ -185,7 +185,7 @@ void NativeWindow::InitFromOptions(const gin_helper::D
    } else if (bool center; options.Get(options::kCenter, &center) && center) {
      Center();
    }
diff --git a/devel/electron43/files/patch-electron_shell_browser_native__window__views.h b/devel/electron43/files/patch-electron_shell_browser_native__window__views.h
index a05778367b11..68b914c5635b 100644
--- a/devel/electron43/files/patch-electron_shell_browser_native__window__views.h
+++ b/devel/electron43/files/patch-electron_shell_browser_native__window__views.h
@@ -1,4 +1,4 @@
---- electron/shell/browser/native_window_views.h.orig	2026-06-29 20:35:15 UTC
+--- electron/shell/browser/native_window_views.h.orig	2026-08-31 00:54:38 UTC
 +++ electron/shell/browser/native_window_views.h
 @@ -30,7 +30,7 @@ class Arguments;
  class Arguments;
@@ -15,10 +15,10 @@
  
 -#if BUILDFLAG(IS_LINUX)
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
- class NativeFrameViewLinux;
  class GlobalMenuBarX11;
  #endif
-@@ -187,7 +187,7 @@ class NativeWindowViews : public NativeWindow,
+ 
+@@ -186,7 +186,7 @@ class NativeWindowViews : public NativeWindow,
                      LPARAM l_param,
                      LRESULT* result);
    void SetIcon(HICON small_icon, HICON app_icon);
@@ -27,7 +27,7 @@
    void SetIcon(const gfx::ImageSkia& icon);
  #endif
  
-@@ -209,7 +209,7 @@ class NativeWindowViews : public NativeWindow,
+@@ -208,7 +208,7 @@ class NativeWindowViews : public NativeWindow,
      return overlay_symbol_color_;
    }
  
@@ -36,7 +36,7 @@
    views::FrameViewLinux* GetFrameViewLinux() const;
  #endif
  
-@@ -290,7 +290,7 @@ class NativeWindowViews : public NativeWindow,
+@@ -289,7 +289,7 @@ class NativeWindowViews : public NativeWindow,
    // events from resizing the window.
    extensions::SizeConstraints old_size_constraints_;
  
diff --git a/devel/electron43/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc b/devel/electron43/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
index bd184eeefa6f..736c5cba38b5 100644
--- a/devel/electron43/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
+++ b/devel/electron43/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/ui/inspectable_web_contents.cc.orig	2026-06-29 04:13:24 UTC
+--- electron/shell/browser/ui/inspectable_web_contents.cc.orig	2026-08-31 00:54:38 UTC
 +++ electron/shell/browser/ui/inspectable_web_contents.cc
-@@ -593,7 +593,7 @@ void InspectableWebContents::LoadCompleted() {
+@@ -597,7 +597,7 @@ void InspectableWebContents::LoadCompleted() {
            dock_state_ = "right";
          }
        }
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 97881136ad5e..9b7699e5998d 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-18 19:28:27 UTC
+--- 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
 @@ -27,7 +27,7 @@
  #include "third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h"  // nogncheck
@@ -9,7 +9,7 @@
  #include "base/posix/eintr_wrapper.h"
  #include "base/strings/string_number_conversions.h"
  #endif
-@@ -584,7 +584,7 @@ struct ImportSharedTextureInfo {
+@@ -591,7 +591,7 @@ struct ImportSharedTextureInfo {
    // On macOS, it is an IOSurfaceRef, this must be a valid IOSurface at the
    // current process.
    uintptr_t io_surface = 0;
@@ -18,7 +18,7 @@
    // On Linux, to be implemented.
    std::vector<ImportSharedTextureInfoPlane> planes;
    uint64_t modifier = gfx::NativePixmapHandle::kNoModifier;
-@@ -654,7 +654,7 @@ struct Converter<ImportSharedTextureInfo> {
+@@ -661,7 +661,7 @@ struct Converter<ImportSharedTextureInfo> {
      GetNativeHandle("ntHandle", &out->nt_handle);
  #elif BUILDFLAG(IS_APPLE)
      GetNativeHandle("ioSurface", &out->io_surface);
@@ -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);
-@@ -730,7 +730,7 @@ v8::Local<v8::Value> ImportSharedTexture(v8::Isolate* 
+@@ -737,7 +737,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_shell_common_gin__converters_osr__converter.cc b/devel/electron43/files/patch-electron_shell_common_gin__converters_osr__converter.cc
index f0a74e42cbd7..f916b35e2147 100644
--- a/devel/electron43/files/patch-electron_shell_common_gin__converters_osr__converter.cc
+++ b/devel/electron43/files/patch-electron_shell_common_gin__converters_osr__converter.cc
@@ -1,4 +1,4 @@
---- electron/shell/common/gin_converters/osr_converter.cc.orig	2026-06-29 20:35:15 UTC
+--- electron/shell/common/gin_converters/osr_converter.cc.orig	2026-08-31 00:54:38 UTC
 +++ electron/shell/common/gin_converters/osr_converter.cc
 @@ -12,7 +12,7 @@
  
@@ -9,7 +9,7 @@
  #include "base/strings/string_number_conversions.h"
  #endif
  #include "shell/common/gin_converters/gfx_converter.h"
-@@ -134,7 +134,7 @@ v8::Local<v8::Value> Converter<electron::OffscreenShar
+@@ -131,7 +131,7 @@ v8::Local<v8::Value> Converter<electron::OffscreenShar
        electron::Buffer::Copy(
            isolate, base::byte_span_from_ref(val.shared_texture_handle))
            .ToLocalChecked());
diff --git a/devel/electron43/files/patch-electron_shell_common_node__bindings.cc b/devel/electron43/files/patch-electron_shell_common_node__bindings.cc
index 1f670faa17bf..3f674c8cffc5 100644
--- a/devel/electron43/files/patch-electron_shell_common_node__bindings.cc
+++ b/devel/electron43/files/patch-electron_shell_common_node__bindings.cc
@@ -1,4 +1,4 @@
---- electron/shell/common/node_bindings.cc.orig	2026-08-18 19:28:27 UTC
+--- electron/shell/common/node_bindings.cc.orig	2026-08-31 00:54:38 UTC
 +++ electron/shell/common/node_bindings.cc
 @@ -55,7 +55,7 @@
  #include "third_party/electron_node/src/node_snapshot_builder.h"
@@ -27,7 +27,7 @@
    // TryGetCurrent() instead of GetCurrent() to avoid FATAL if no isolate.
    v8::Isolate* isolate = v8::Isolate::TryGetCurrent();
    electron::v8_oom::RecordErrorDetails(isolate, location, details);
-@@ -679,7 +679,7 @@ void NodeBindings::Initialize(v8::Isolate* const isola
+@@ -653,7 +653,7 @@ void NodeBindings::Initialize(v8::Isolate* const isola
    TRACE_EVENT0("electron", "NodeBindings::Initialize");
    // Open node's error reporting system for browser process.
  
diff --git a/devel/electron43/files/patch-electron_shell_common_node__bindings__linux.cc b/devel/electron43/files/patch-electron_shell_common_node__bindings__linux.cc
index 0dabd6390a8d..d1ede4732926 100644
--- a/devel/electron43/files/patch-electron_shell_common_node__bindings__linux.cc
+++ b/devel/electron43/files/patch-electron_shell_common_node__bindings__linux.cc
@@ -1,6 +1,6 @@
---- electron/shell/common/node_bindings_linux.cc.orig	2023-10-20 08:29:17 UTC
+--- electron/shell/common/node_bindings_linux.cc.orig	2026-08-31 00:54:38 UTC
 +++ electron/shell/common/node_bindings_linux.cc
-@@ -4,12 +4,25 @@
+@@ -4,13 +4,26 @@
  
  #include "shell/common/node_bindings_linux.h"
  
@@ -16,17 +16,18 @@
  
  namespace electron {
  
- NodeBindingsLinux::NodeBindingsLinux(BrowserEnvironment browser_env)
+ NodeBindingsLinux::NodeBindingsLinux(BrowserEnvironment browser_env,
+                                      uv_loop_t* loop)
 +#if !defined(OS_BSD)
-     : NodeBindings(browser_env), epoll_(epoll_create(1)) {
+     : NodeBindings(browser_env, loop), epoll_(epoll_create(1)) {
 +#else
-+    : NodeBindings(browser_env) {
++    : NodeBindings(browser_env, loop) {
 +#endif
 +#if !defined(OS_BSD)
    auto* const event_loop = uv_loop();
  
    int backend_fd = uv_backend_fd(event_loop);
-@@ -17,11 +30,13 @@ NodeBindingsLinux::NodeBindingsLinux(BrowserEnvironmen
+@@ -18,11 +31,13 @@ NodeBindingsLinux::NodeBindingsLinux(BrowserEnvironmen
    ev.events = EPOLLIN;
    ev.data.fd = backend_fd;
    epoll_ctl(epoll_, EPOLL_CTL_ADD, backend_fd, &ev);
@@ -40,7 +41,7 @@
    int timeout = uv_backend_timeout(event_loop);
  
    // Wait for new libuv events.
-@@ -30,6 +45,26 @@ void NodeBindingsLinux::PollEvents() {
+@@ -31,6 +46,26 @@ void NodeBindingsLinux::PollEvents() {
      struct epoll_event ev;
      r = epoll_wait(epoll_, &ev, 1, timeout);
    } while (r == -1 && errno == EINTR);
diff --git a/devel/electron43/files/patch-electron_spec_api-app-spec.ts b/devel/electron43/files/patch-electron_spec_api-app-spec.ts
index 93cff2521196..65a98ac4bfbc 100644
--- a/devel/electron43/files/patch-electron_spec_api-app-spec.ts
+++ b/devel/electron43/files/patch-electron_spec_api-app-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec/api-app-spec.ts.orig	2026-08-18 19:28:27 UTC
+--- electron/spec/api-app-spec.ts.orig	2026-08-31 00:54:38 UTC
 +++ electron/spec/api-app-spec.ts
 @@ -124,7 +124,7 @@ describe('app module', () => {
      });
@@ -23,7 +23,16 @@
        const languages = app.getPreferredSystemLanguages();
        if (languages.length) {
          expect(languages).to.not.include('C');
-@@ -257,7 +257,7 @@ describe('app module', () => {
+@@ -199,7 +199,7 @@ describe('app module', () => {
+     });
+   });
+ 
+-  ifdescribe(process.platform === 'linux' && fs.existsSync('/usr/bin/dbus-daemon'))(
++  ifdescribe((process.platform === 'linux' || process.platform === 'freebsd') && fs.existsSync('/usr/bin/dbus-daemon'))(
+     'when a D-Bus bus goes away',
+     () => {
+       it('exits cleanly instead of crashing', async () => {
+@@ -290,7 +290,7 @@ describe('app module', () => {
        }
      });
  
@@ -32,7 +41,7 @@
        const electronPath = process.execPath;
        const appPath = path.join(fixturesPath, 'api', 'singleton');
        appProcess = cp.spawn(electronPath, [appPath]);
-@@ -441,7 +441,7 @@ describe('app module', () => {
+@@ -488,7 +488,7 @@ describe('app module', () => {
    });
  
    // GitHub Actions macOS-13 runners used for x64 seem to have a problem with this test.
@@ -41,7 +50,7 @@
      const tempFiles = [
        path.join(fixturesPath, 'foo.txt'),
        path.join(fixturesPath, 'bar.txt'),
-@@ -570,7 +570,7 @@ describe('app module', () => {
+@@ -617,7 +617,7 @@ describe('app module', () => {
    //   let w = null
  
    //   before(function () {
@@ -50,7 +59,7 @@
    //       this.skip()
    //     }
    //   })
-@@ -683,7 +683,7 @@ describe('app module', () => {
+@@ -730,7 +730,7 @@ describe('app module', () => {
  
    describe('app.badgeCount', () => {
      const platformIsNotSupported =
@@ -59,7 +68,7 @@
  
      const expectedBadgeCount = 42;
  
-@@ -730,7 +730,7 @@ describe('app module', () => {
+@@ -777,7 +777,7 @@ describe('app module', () => {
    });
  
    ifdescribe(
@@ -68,7 +77,7 @@
    )('app.get/setLoginItemSettings API', function () {
      const isMac = process.platform === 'darwin';
      const isWin = process.platform === 'win32';
-@@ -1157,7 +1157,7 @@ describe('app module', () => {
+@@ -1204,7 +1204,7 @@ describe('app module', () => {
      });
    });
  
@@ -77,7 +86,7 @@
      it('is mutable', () => {
        const values = [false, true, false];
        const setters: Array<(arg: boolean) => void> = [
-@@ -1427,7 +1427,7 @@ describe('app module', () => {
+@@ -1474,7 +1474,7 @@ describe('app module', () => {
      });
    });
  
@@ -86,7 +95,7 @@
      let w: BrowserWindow;
  
      before(function () {
-@@ -1570,7 +1570,7 @@ describe('app module', () => {
+@@ -1617,7 +1617,7 @@ describe('app module', () => {
  
    describe('getApplicationNameForProtocol()', () => {
      // TODO: Linux CI doesn't have registered http & https handlers
@@ -95,7 +104,7 @@
        'returns application names for common protocols',
        function () {
          // We can't expect particular app names here, but these protocols should
-@@ -1587,7 +1587,7 @@ describe('app module', () => {
+@@ -1634,7 +1634,7 @@ describe('app module', () => {
        expect(app.getApplicationNameForProtocol('bogus-protocol://')).to.equal('');
      });
  
@@ -104,7 +113,7 @@
        const desktopFileId = 'mock-browser.desktop';
        const mockDisplayName = 'Mock Browser';
        const mockScheme = 'mockproto';
-@@ -1637,7 +1637,7 @@ describe('app module', () => {
+@@ -1684,7 +1684,7 @@ describe('app module', () => {
      let xdgBinDir: string;
  
      before(() => {
@@ -113,7 +122,7 @@
          return;
        }
  
-@@ -1654,7 +1654,7 @@ describe('app module', () => {
+@@ -1701,7 +1701,7 @@ describe('app module', () => {
      });
  
      after(() => {
*** 364 LINES SKIPPED ***