git: 28a53ea7db90 - main - devel/electron43: Update to 43.4.0

Hiroki Tagato <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.ports
Message-ID <[email protected]>
The branch main has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=28a53ea7db900ad64eace1cfee7e5f930f63c244

commit 28a53ea7db900ad64eace1cfee7e5f930f63c244
Author:     Hiroki Tagato <[email protected]>
AuthorDate: 2026-08-17 22:56:29 +0000
Commit:     Hiroki Tagato <[email protected]>
CommitDate: 2026-08-17 22:58:01 +0000

    devel/electron43: Update to 43.4.0
    
    While here, prepare node modules archives for amd64 and aarch64
    separately.
    
    Changelog: https://github.com/electron/electron/releases/tag/v43.4.0
    
    Reported by:    GitHub (watch releases)
---
 devel/electron43/Makefile                          |  5 ++--
 devel/electron43/Makefile.version                  |  2 +-
 devel/electron43/distinfo                          | 24 ++++++++++--------
 devel/electron43/files/patch-electron_BUILD.gn     | 10 ++++----
 ...ell_browser_api_electron__api__web__contents.cc | 16 ++++++------
 .../files/patch-electron_shell_browser_browser.h   |  4 +--
 ...shell_browser_electron__browser__main__parts.cc | 28 +++++++++++++--------
 .../patch-electron_shell_common_node__bindings.cc  | 16 ++++++------
 ...h-electron_shell_common_v8__oom__diagnostics.cc | 19 ++++++++++++++
 ...ch-electron_shell_renderer_oom__stack__trace.cc | 29 ----------------------
 .../patch-electron_spec_api-media-handler-spec.ts  | 11 ++++++++
 .../patch-electron_spec_api-web-contents-spec.ts   |  4 +--
 .../patch-electron_spec_api-web-frame-main-spec.ts |  4 +--
 ..._command__buffer_service_gles2__cmd__decoder.cc |  4 +--
 .../files/patch-ui_base_cursor_cursor__factory.cc  |  8 +++---
 .../files/patch-ui_base_cursor_cursor__factory.h   |  6 ++---
 .../patch-ui_base_resource_resource__bundle.cc     |  4 +--
 .../files/patch-ui_base_x_x11__cursor__loader.cc   | 10 ++++----
 18 files changed, 108 insertions(+), 96 deletions(-)

diff --git a/devel/electron43/Makefile b/devel/electron43/Makefile
index 41235ba68ca2..2ed848aa6e50 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.3.0/:chromium \
+MASTER_SITES=	https://github.com/tagattie/FreeBSD-Electron/releases/download/v43.4.0/:chromium \
 		https://freedesktop.org/software/pulseaudio/releases/:pulseaudio
 PKGNAMESUFFIX=	${ELECTRON_VER_MAJOR}
 DISTFILES=	chromium-${CHROMIUM_VER}${EXTRACT_SUFX}.0:chromium \
@@ -90,6 +90,7 @@ USE_GNOME=	atk cairo gdkpixbuf gtk30 libxml2 libxslt pango
 USE_XORG=	x11 xcb xcomposite xcursor xdamage xext xfixes xi xrandr \
 		xrender xscrnsaver xtst
 USE_QT=		buildtools:build core:build widgets:build
+NPM_PREFETCH_ARCHS=	aarch64 amd64
 NPM_EXTRACT_WRKSRC=	${WRKDIR}/${PORTNAME}-${ELECTRON_VER}
 
 SHEBANG_FILES=	chrome/tools/build/linux/chrome-wrapper buildtools/linux64/clang-format
@@ -225,7 +226,7 @@ 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.212
+CHROMIUM_VER=			150.0.7871.224
 # See ${WRKSRC}/electron/DEPS for NODE_VER
 NODE_VER=			24.18.1
 # See ${WRKSRC}/electron/DEPS for NAN_VER
diff --git a/devel/electron43/Makefile.version b/devel/electron43/Makefile.version
index 0dfe118dc955..168f380d1768 100644
--- a/devel/electron43/Makefile.version
+++ b/devel/electron43/Makefile.version
@@ -1,2 +1,2 @@
-ELECTRON_VER=		43.3.0
+ELECTRON_VER=		43.4.0
 ELECTRON_VER_MAJOR=	${ELECTRON_VER:C/\..*//}
diff --git a/devel/electron43/distinfo b/devel/electron43/distinfo
index a804e6b44a68..578486ef84ec 100644
--- a/devel/electron43/distinfo
+++ b/devel/electron43/distinfo
@@ -1,10 +1,10 @@
-TIMESTAMP = 1786091655
-SHA256 (electron/chromium-150.0.7871.212.tar.xz.0) = ecc660ee6648fb04512cbc39d7b9e6c5cb28dfce8d89f474b9798dde8590fb05
-SIZE (electron/chromium-150.0.7871.212.tar.xz.0) = 2000000000
-SHA256 (electron/chromium-150.0.7871.212.tar.xz.1) = 25cd905644654d375a4681c119654847879b1200a7a41233d98bec65e348ca0c
-SIZE (electron/chromium-150.0.7871.212.tar.xz.1) = 2000000000
-SHA256 (electron/chromium-150.0.7871.212.tar.xz.2) = a197048fb1f8ea89f9dc16052c5675f8d8ad8c1a78179e510121a4b38e8d5b1f
-SIZE (electron/chromium-150.0.7871.212.tar.xz.2) = 895410072
+TIMESTAMP = 1786881705
+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
 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,10 +417,12 @@ 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.3.0-node-modules.tar.xz) = f57cf602ff06507d38ed76d09e2ee24c350472f99e451bbfb4bc2b5d2c69c8c0
-SIZE (electron/electron43-43.3.0-node-modules.tar.xz) = 71098213
-SHA256 (electron/electron-electron-v43.3.0_GH0.tar.gz) = 90e532030394caf10e2ad2578d50909ba4b5d7fa8540bda377b5f71809f1c4f2
-SIZE (electron/electron-electron-v43.3.0_GH0.tar.gz) = 19317619
+SHA256 (electron/electron43-43.4.0-node-modules-arm64.tar.xz) = 6a1a0c39a5b18dcdad561b23b15847660e7b51b3be476595e93256c0f91e017a
+SIZE (electron/electron43-43.4.0-node-modules-arm64.tar.xz) = 62711992
+SHA256 (electron/electron43-43.4.0-node-modules-x64.tar.xz) = f57cf602ff06507d38ed76d09e2ee24c350472f99e451bbfb4bc2b5d2c69c8c0
+SIZE (electron/electron43-43.4.0-node-modules-x64.tar.xz) = 71098213
+SHA256 (electron/electron-electron-v43.4.0_GH0.tar.gz) = 5463ef341310fdb10b61064c25f8cdebfcd2607ee17d50f67450d4f915bc814e
+SIZE (electron/electron-electron-v43.4.0_GH0.tar.gz) = 19394916
 SHA256 (electron/nodejs-node-v24.18.1_GH0.tar.gz) = bb8065bf6b8b4a2da85dba16c1f69c0a3ad90c0481b33f1ab4c82e3d2bcc8c77
 SIZE (electron/nodejs-node-v24.18.1_GH0.tar.gz) = 127539215
 SHA256 (electron/nodejs-nan-675cefebca42410733da8a454c8d9391fcebfbc2_GH0.tar.gz) = 3983c68f19ed75dd37dc228eab385093ae2533132730f253f0c3d19ff10788e3
diff --git a/devel/electron43/files/patch-electron_BUILD.gn b/devel/electron43/files/patch-electron_BUILD.gn
index c73485342f50..53aa72fa874d 100644
--- a/devel/electron43/files/patch-electron_BUILD.gn
+++ b/devel/electron43/files/patch-electron_BUILD.gn
@@ -1,4 +1,4 @@
---- electron/BUILD.gn.orig	2026-06-29 20:35:15 UTC
+--- electron/BUILD.gn.orig	2026-08-10 18:14:50 UTC
 +++ electron/BUILD.gn
 @@ -628,7 +628,7 @@ source_set("electron_lib") {
      defines += [ "GDK_DISABLE_DEPRECATION_WARNINGS" ]
@@ -22,7 +22,7 @@
    if (is_linux) {
      libs = [ "xshmfence" ]
      deps += [
-@@ -1522,7 +1528,7 @@ if (is_mac) {
+@@ -1524,7 +1530,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",
-@@ -1549,7 +1555,7 @@ if (is_mac) {
+@@ -1551,7 +1557,7 @@ if (is_mac) {
        public_deps = [ "//tools/v8_context_snapshot" ]
      }
  
@@ -40,7 +40,7 @@
        data_deps += [ "//components/crash/core/app:chrome_crashpad_handler" ]
      }
  
-@@ -1616,7 +1622,7 @@ if (is_mac) {
+@@ -1618,7 +1624,7 @@ if (is_mac) {
          configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
        }
  
@@ -49,7 +49,7 @@
          deps += [ "//sandbox/linux:chrome_sandbox" ]
        }
      }
-@@ -1737,7 +1743,9 @@ dist_zip("electron_dist_zip") {
+@@ -1739,7 +1745,9 @@ dist_zip("electron_dist_zip") {
        ]
      }
  
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 bffb1df7181a..87929cf8e90a 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-04 15:35:15 UTC
+--- electron/shell/browser/api/electron_api_web_contents.cc.orig	2026-08-10 18:14:50 UTC
 +++ electron/shell/browser/api/electron_api_web_contents.cc
-@@ -179,11 +179,11 @@
+@@ -178,11 +178,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
-@@ -215,7 +215,7 @@
+@@ -212,7 +212,7 @@
  #include "content/public/browser/plugin_service.h"
  #endif
  
@@ -23,7 +23,7 @@
  #include "chrome/browser/hang_monitor/hang_crash_dump.h"  // nogncheck
  #endif
  
-@@ -652,7 +652,7 @@ std::optional<base::TimeDelta> GetCursorBlinkInterval(
+@@ -633,7 +633,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)
-@@ -1037,7 +1037,7 @@ void WebContents::InitWithSessionAndOptions(
+@@ -1018,7 +1018,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));
-@@ -3043,13 +3043,13 @@ void WebContents::ForcefullyCrashRenderer() {
+@@ -3024,13 +3024,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);
-@@ -3759,7 +3759,7 @@ void WebContents::Focus() {
+@@ -3663,7 +3663,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
-@@ -4658,7 +4658,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() {
+@@ -4562,7 +4562,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() {
  }
  #endif
  
diff --git a/devel/electron43/files/patch-electron_shell_browser_browser.h b/devel/electron43/files/patch-electron_shell_browser_browser.h
index 7954b24702c7..cdb67742fcce 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-06-29 20:35:15 UTC
+--- electron/shell/browser/browser.h.orig	2026-08-10 18:14:50 UTC
 +++ electron/shell/browser/browser.h
-@@ -293,10 +293,10 @@ class Browser : private WindowListObserver {
+@@ -296,10 +296,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 57039b89eac6..68112374157f 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,6 +1,6 @@
---- electron/shell/browser/electron_browser_main_parts.cc.orig	2026-06-29 20:35:15 UTC
+--- electron/shell/browser/electron_browser_main_parts.cc.orig	2026-08-10 18:14:50 UTC
 +++ electron/shell/browser/electron_browser_main_parts.cc
-@@ -78,7 +78,7 @@
+@@ -81,7 +81,7 @@
  #include "ui/wm/core/wm_state.h"
  #endif
  
@@ -9,7 +9,7 @@
  #include "base/environment.h"
  #include "chrome/browser/ui/views/dark_mode_manager_linux.h"
  #include "device/bluetooth/bluetooth_adapter_factory.h"
-@@ -135,7 +135,7 @@ namespace {
+@@ -138,7 +138,7 @@ namespace {
  
  namespace {
  
@@ -18,7 +18,7 @@
  class LinuxUiGetterImpl : public ui::LinuxUiGetter {
   public:
    LinuxUiGetterImpl() = default;
-@@ -323,7 +323,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
+@@ -326,7 +326,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
-@@ -352,7 +352,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
+@@ -355,7 +355,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
    ElectronBrowserClient::SetApplicationLocale(app_locale);
    fake_browser_process_->SetApplicationLocale(app_locale);
  
@@ -36,7 +36,7 @@
    // Reset to the original LC_ALL since we should not be changing it.
    if (!locale.empty()) {
      if (lc_all)
-@@ -408,7 +408,7 @@ void ElectronBrowserMainParts::ToolkitInitialized() {
+@@ -411,7 +411,7 @@ void ElectronBrowserMainParts::ToolkitInitialized() {
  }
  
  void ElectronBrowserMainParts::ToolkitInitialized() {
@@ -45,7 +45,7 @@
    auto* linux_ui = ui::GetDefaultLinuxUi();
    CHECK(linux_ui);
    linux_ui_getter_ = std::make_unique<LinuxUiGetterImpl>();
-@@ -519,7 +519,7 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo
+@@ -522,10 +522,10 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo
  }
  
  void ElectronBrowserMainParts::PostCreateMainMessageLoop() {
@@ -53,18 +53,26 @@
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
    std::string app_name = electron::Browser::Get()->GetName();
  #endif
- #if BUILDFLAG(IS_LINUX)
-@@ -531,7 +531,9 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo
+-#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),
+       content::GetUIThreadTaskRunner({content::BrowserTaskType::kUserInput}));
  
++#if BUILDFLAG(IS_LINUX)
    if (!bluez::BluezDBusManager::IsInitialized())
      bluez::DBusBluezManagerWrapperLinux::Initialize();
 +#endif
++#endif
  
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
    // 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.
-@@ -628,7 +630,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun(
+@@ -644,7 +648,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun(
    fake_browser_process_->PostMainMessageLoopRun();
    content::DevToolsAgentHost::StopRemoteDebuggingPipeHandler();
  
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 08695bb6cd76..26bea8ad5803 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-06-29 20:35:15 UTC
+--- electron/shell/common/node_bindings.cc.orig	2026-08-10 18:14:50 UTC
 +++ electron/shell/common/node_bindings.cc
 @@ -55,7 +55,7 @@
  #include "third_party/electron_node/src/node_snapshot_builder.h"
@@ -7,9 +7,9 @@
 -#if !IS_MAS_BUILD()
 +#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD)
  #include "shell/common/crash_keys.h"
+ #include "shell/common/v8_oom_diagnostics.h"
  #endif
- 
-@@ -172,7 +172,7 @@ void V8FatalErrorCallback(const char* location, const 
+@@ -173,7 +173,7 @@ void V8FatalErrorCallback(const char* location, const 
  void V8FatalErrorCallback(const char* location, const char* message) {
    LOG(ERROR) << "Fatal error in V8: " << location << " " << message;
  
@@ -18,16 +18,16 @@
    electron::crash_keys::SetCrashKey("electron.v8-fatal.message", message);
    electron::crash_keys::SetCrashKey("electron.v8-fatal.location", location);
  #endif
-@@ -194,7 +194,7 @@ void V8OOMErrorCallback(const char* location, const v8
+@@ -195,7 +195,7 @@ void V8OOMErrorCallback(const char* location, const v8
      LOG(ERROR) << "OOM detail: " << details.detail;
    }
  
 -#if !IS_MAS_BUILD()
 +#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD)
-   electron::crash_keys::SetCrashKey("electron.v8-oom.is_heap_oom",
-                                     base::NumberToString(details.is_heap_oom));
-   if (location) {
-@@ -690,7 +690,7 @@ void NodeBindings::Initialize(v8::Isolate* const isola
+   // TryGetCurrent() instead of GetCurrent() to avoid FATAL if no isolate.
+   v8::Isolate* isolate = v8::Isolate::TryGetCurrent();
+   electron::v8_oom::RecordErrorDetails(isolate, location, details);
+@@ -668,7 +668,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_v8__oom__diagnostics.cc b/devel/electron43/files/patch-electron_shell_common_v8__oom__diagnostics.cc
new file mode 100644
index 000000000000..5635a5ffa328
--- /dev/null
+++ b/devel/electron43/files/patch-electron_shell_common_v8__oom__diagnostics.cc
@@ -0,0 +1,19 @@
+--- electron/shell/common/v8_oom_diagnostics.cc.orig	2026-08-16 12:17:14 UTC
++++ electron/shell/common/v8_oom_diagnostics.cc
+@@ -15,7 +15,7 @@ namespace electron::v8_oom {
+ 
+ namespace electron::v8_oom {
+ 
+-#if !IS_MAS_BUILD()
++#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD)
+ 
+ namespace {
+ 
+@@ -140,6 +140,6 @@ void RecordJsStack(v8::Isolate*, std::string_view) {}
+ void RecordErrorDetails(v8::Isolate*, const char*, const v8::OOMDetails&) {}
+ void RecordJsStack(v8::Isolate*, std::string_view) {}
+ 
+-#endif  // !IS_MAS_BUILD()
++#endif  // !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD)
+ 
+ }  // namespace electron::v8_oom
diff --git a/devel/electron43/files/patch-electron_shell_renderer_oom__stack__trace.cc b/devel/electron43/files/patch-electron_shell_renderer_oom__stack__trace.cc
deleted file mode 100644
index 66881557eb1c..000000000000
--- a/devel/electron43/files/patch-electron_shell_renderer_oom__stack__trace.cc
+++ /dev/null
@@ -1,29 +0,0 @@
---- electron/shell/renderer/oom_stack_trace.cc.orig	2026-05-12 21:06:23 UTC
-+++ electron/shell/renderer/oom_stack_trace.cc
-@@ -119,7 +119,7 @@ void CaptureStackOnInterrupt(v8::Isolate* isolate, voi
- 
-   std::string js_stack = FormatStackTrace(isolate, stack);
-   if (!js_stack.empty()) {
--#if !IS_MAS_BUILD()
-+#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD)
-     crash_keys::SetCrashKey("electron.v8-oom.stack", js_stack);
- #endif
-     LOG(ERROR) << "\n<--- JS stacktrace (captured at safe point) --->\n"
-@@ -150,7 +150,7 @@ size_t NearHeapLimitCallback(void* data,
-                                           stats.heap_size_limit() / 1048576.0);
-   LOG(ERROR) << "\n<--- Near heap limit --->\n" << heap_info;
- 
--#if !IS_MAS_BUILD()
-+#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD)
-   crash_keys::SetCrashKey("electron.v8-oom.stack",
-                           heap_info + " (stack pending)");
- 
-@@ -226,7 +226,7 @@ size_t NearHeapLimitCallback(void* data,
-   if (current_heap_limit >= kCageLimit - kHeapBump) {
-     // The bump will be clamped by V8 to the cage ceiling, leaving no
-     // headroom for the interrupt to fire. Record what we can now.
--#if !IS_MAS_BUILD()
-+#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD)
-     crash_keys::SetCrashKey("electron.v8-oom.stack",
-                             heap_info + " (at cage limit, stack unavailable)");
- #endif
diff --git a/devel/electron43/files/patch-electron_spec_api-media-handler-spec.ts b/devel/electron43/files/patch-electron_spec_api-media-handler-spec.ts
new file mode 100644
index 000000000000..34effe9a4101
--- /dev/null
+++ b/devel/electron43/files/patch-electron_spec_api-media-handler-spec.ts
@@ -0,0 +1,11 @@
+--- electron/spec/api-media-handler-spec.ts.orig	2026-08-16 12:18:52 UTC
++++ electron/spec/api-media-handler-spec.ts
+@@ -64,7 +64,7 @@ describe('setDisplayMediaRequestHandler', () => {
+ 
+   // Process-level loopback audio capture (restrictOwnAudio / loopbackWithoutChrome)
+   // is not supported on Linux audio backends (PulseAudio / PipeWire).
+-  ifit(process.platform !== 'linux')(
++  ifit(process.platform !== 'linux' && process.platform !== 'freebsd')(
+     'honors the restrictOwnAudio constraint when granted loopback audio',
+     async function () {
+       if ((await desktopCapturer.getSources({ types: ['screen'] })).length === 0) {
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 d400b97fe0e1..d00754e11ef9 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-07-21 15:33:01 UTC
+--- electron/spec/api-web-contents-spec.ts.orig	2026-08-10 18:14:50 UTC
 +++ electron/spec/api-web-contents-spec.ts
 @@ -1448,7 +1448,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 });
-@@ -3490,7 +3490,7 @@ describe('webContents module', () => {
+@@ -3454,7 +3454,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_api-web-frame-main-spec.ts b/devel/electron43/files/patch-electron_spec_api-web-frame-main-spec.ts
index 69bc56522617..a3644bf32eb2 100644
--- a/devel/electron43/files/patch-electron_spec_api-web-frame-main-spec.ts
+++ b/devel/electron43/files/patch-electron_spec_api-web-frame-main-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-web-frame-main-spec.ts.orig	2026-06-29 20:35:15 UTC
+--- electron/spec/api-web-frame-main-spec.ts.orig	2026-08-10 18:14:50 UTC
 +++ electron/spec/api-web-frame-main-spec.ts
-@@ -308,7 +308,7 @@ describe('webFrameMain module', () => {
+@@ -311,7 +311,7 @@ describe('webFrameMain module', () => {
      afterEach(closeAllWindows);
  
      // TODO(jkleinsc) fix this flaky test on linux
diff --git a/devel/electron43/files/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc b/devel/electron43/files/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc
index 63ec8bf3a4ad..0ec7db68a24f 100644
--- a/devel/electron43/files/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc
+++ b/devel/electron43/files/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc
@@ -1,6 +1,6 @@
---- gpu/command_buffer/service/gles2_cmd_decoder.cc.orig	2026-07-27 18:15:13 UTC
+--- gpu/command_buffer/service/gles2_cmd_decoder.cc.orig	2026-08-16 12:10:03 UTC
 +++ gpu/command_buffer/service/gles2_cmd_decoder.cc
-@@ -2999,7 +2999,7 @@ std::unique_ptr<GLES2Decoder> GLES2Decoder::Create(
+@@ -3011,7 +3011,7 @@ std::unique_ptr<GLES2Decoder> GLES2Decoder::Create(
    }
  
  // Allow linux to run fuzzers.
diff --git a/devel/electron43/files/patch-ui_base_cursor_cursor__factory.cc b/devel/electron43/files/patch-ui_base_cursor_cursor__factory.cc
index 1cd200a1ef80..25025412bf79 100644
--- a/devel/electron43/files/patch-ui_base_cursor_cursor__factory.cc
+++ b/devel/electron43/files/patch-ui_base_cursor_cursor__factory.cc
@@ -1,11 +1,11 @@
---- ui/base/cursor/cursor_factory.cc.orig	2025-08-26 20:49:50 UTC
+--- ui/base/cursor/cursor_factory.cc.orig	2026-08-05 15:03:55 UTC
 +++ ui/base/cursor/cursor_factory.cc
-@@ -97,7 +97,7 @@ void CursorFactory::ObserveThemeChanges() {
+@@ -98,7 +98,7 @@ void CursorFactory::ObserveThemeChanges() {
    NOTIMPLEMENTED();
  }
  
 -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  
- // Returns a cursor name compatible with either X11 or the FreeDesktop.org
- // cursor spec ([1] and [2]), followed by fallbacks that can work as
+ bool IsValidCursorThemeName(std::string_view name) {
+   if (name.empty() || name == ".") {
diff --git a/devel/electron43/files/patch-ui_base_cursor_cursor__factory.h b/devel/electron43/files/patch-ui_base_cursor_cursor__factory.h
index e7cc32bce26e..eaea10e626e4 100644
--- a/devel/electron43/files/patch-ui_base_cursor_cursor__factory.h
+++ b/devel/electron43/files/patch-ui_base_cursor_cursor__factory.h
@@ -1,6 +1,6 @@
---- ui/base/cursor/cursor_factory.h.orig	2023-10-19 19:59:21 UTC
+--- ui/base/cursor/cursor_factory.h.orig	2026-08-05 15:03:55 UTC
 +++ ui/base/cursor/cursor_factory.h
-@@ -93,7 +93,7 @@ class COMPONENT_EXPORT(UI_BASE_CURSOR) CursorFactory {
+@@ -94,7 +94,7 @@ class COMPONENT_EXPORT(UI_BASE_CURSOR) CursorFactory {
    base::ObserverList<CursorFactoryObserver>::Unchecked observers_;
  };
  
@@ -8,4 +8,4 @@
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
  COMPONENT_EXPORT(UI_BASE_CURSOR)
  std::vector<std::string> CursorNamesFromType(mojom::CursorType type);
- #endif
+ 
diff --git a/devel/electron43/files/patch-ui_base_resource_resource__bundle.cc b/devel/electron43/files/patch-ui_base_resource_resource__bundle.cc
index a3756b9888de..57dc17b55005 100644
--- a/devel/electron43/files/patch-ui_base_resource_resource__bundle.cc
+++ b/devel/electron43/files/patch-ui_base_resource_resource__bundle.cc
@@ -1,6 +1,6 @@
---- ui/base/resource/resource_bundle.cc.orig	2026-01-07 00:52:53 UTC
+--- ui/base/resource/resource_bundle.cc.orig	2026-08-05 15:03:55 UTC
 +++ ui/base/resource/resource_bundle.cc
-@@ -996,7 +996,7 @@ ResourceScaleFactor ResourceBundle::GetMaxResourceScal
+@@ -999,7 +999,7 @@ ResourceScaleFactor ResourceBundle::GetMaxResourceScal
  }
  
  ResourceScaleFactor ResourceBundle::GetMaxResourceScaleFactor() const {
diff --git a/devel/electron43/files/patch-ui_base_x_x11__cursor__loader.cc b/devel/electron43/files/patch-ui_base_x_x11__cursor__loader.cc
index d1c193aa2acf..d33a5cc1158c 100644
--- a/devel/electron43/files/patch-ui_base_x_x11__cursor__loader.cc
+++ b/devel/electron43/files/patch-ui_base_x_x11__cursor__loader.cc
@@ -1,6 +1,6 @@
---- ui/base/x/x11_cursor_loader.cc.orig	2026-06-23 23:37:18 UTC
+--- ui/base/x/x11_cursor_loader.cc.orig	2026-08-05 15:03:55 UTC
 +++ ui/base/x/x11_cursor_loader.cc
-@@ -38,7 +38,7 @@
+@@ -39,7 +39,7 @@
  #include "ui/gfx/x/connection.h"
  #include "ui/gfx/x/xproto.h"
  
@@ -9,7 +9,7 @@
  #include "ui/linux/linux_ui.h"
  #endif
  
-@@ -80,7 +80,11 @@ std::string CursorPathFromLibXcursor() {
+@@ -81,7 +81,11 @@ std::string CursorPathFromLibXcursor() {
      void operator()(void* ptr) const { dlclose(ptr); }
    };
  
@@ -21,7 +21,7 @@
    if (!lib)
      return "";
  
-@@ -235,7 +239,7 @@ scoped_refptr<base::RefCountedMemory> ReadCursorFile(
+@@ -234,7 +238,7 @@ scoped_refptr<base::RefCountedMemory> ReadCursorFile(
      const std::string& rm_xcursor_theme) {
    constexpr const char kDefaultTheme[] = "default";
    std::string themes[] = {
@@ -30,7 +30,7 @@
      // The toolkit theme has the highest priority.
      LinuxUi::instance() ? LinuxUi::instance()->GetCursorThemeName()
                          : std::string(),
-@@ -429,7 +433,7 @@ uint32_t XCursorLoader::GetPreferredCursorSize() const
+@@ -428,7 +432,7 @@ uint32_t XCursorLoader::GetPreferredCursorSize() const
      return size;
    }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.