git: 3492dd020d70 - 2026Q3 - devel/electron42: Update to 42.9.3

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Thu, 03 Sep 2026 18:43:35 UTC
The branch 2026Q3 has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3492dd020d70010d731fa8066ee89f7ad150219e

commit 3492dd020d70010d731fa8066ee89f7ad150219e
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2026-08-20 17:57:22 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2026-09-03 18:43:18 +0000

    devel/electron42: Update to 42.9.3
    
    Changelog:
    - https://github.com/electron/electron/releases/tag/v42.9.1
    - https://github.com/electron/electron/releases/tag/v42.9.2
    - https://github.com/electron/electron/releases/tag/v42.9.3
    
    Reported by:    GitHub (watch releases)
    
    (cherry picked from commit 49ce10da799eaff13ee9978a99b3d11b0daf3722)
---
 devel/electron42/Makefile.version                  |  2 +-
 devel/electron42/distinfo                          | 14 +++----
 .../files/patch-content_app_content__main.cc       |  6 +--
 ...patch-content_browser_gpu_gpu__process__host.cc |  6 +--
 ...ell_browser_api_electron__api__web__contents.cc | 16 ++++----
 ...hell_browser_api_electron__api__web__contents.h |  4 +-
 ...electron_shell_browser_native__window__views.cc | 46 +++++++++++-----------
 ...patch-electron_spec_api-content-tracing-spec.ts |  6 +--
 .../files/patch-electron_spec_api-protocol-spec.ts |  4 +-
 .../patch-electron_spec_api-web-contents-spec.ts   |  4 +-
 .../electron42/files/patch-electron_spec_index.js  |  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 +--
 .../files/patch-ui_base_cursor_cursor__unittest.cc | 11 ++++++
 .../patch-ui_base_resource_resource__bundle.cc     |  4 +-
 .../files/patch-ui_base_x_x11__cursor__loader.cc   | 10 ++---
 .../files/patch-ui_base_x_x11__shm__image__pool.cc |  6 +--
 18 files changed, 86 insertions(+), 75 deletions(-)

diff --git a/devel/electron42/Makefile.version b/devel/electron42/Makefile.version
index ea958a6c7d89..226dfa67925d 100644
--- a/devel/electron42/Makefile.version
+++ b/devel/electron42/Makefile.version
@@ -1,2 +1,2 @@
-ELECTRON_VER=		42.9.0
+ELECTRON_VER=		42.9.3
 ELECTRON_VER_MAJOR=	${ELECTRON_VER:C/\..*//}
diff --git a/devel/electron42/distinfo b/devel/electron42/distinfo
index 3f83f85ae031..93596b64e557 100644
--- a/devel/electron42/distinfo
+++ b/devel/electron42/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1786769004
+TIMESTAMP = 1787181243
 SHA256 (electron/chromium-148.0.7778.280.tar.xz.0) = cddbfeba5a50d950693590399df8df3a8ef5910eee367c76aec2541444c59dea
 SIZE (electron/chromium-148.0.7778.280.tar.xz.0) = 2000000000
 SHA256 (electron/chromium-148.0.7778.280.tar.xz.1) = cd2f2c3740c05eb549878ab6c6571f7858456c2c56cf798e60ffbaf7e651429f
@@ -341,12 +341,12 @@ SHA256 (electron/rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4
 SIZE (electron/rust/crates/zerocopy-derive-0.7.35.crate) = 37829
 SHA256 (electron/yarn-4.12.0.tgz) = bd58d06826ce9542c4cd904fe10bab7bc718ea2cc39a45d9fbd15f2edb45761c
 SIZE (electron/yarn-4.12.0.tgz) = 1056794
-SHA256 (electron/electron42-42.9.0-node-modules-arm64.tar.xz) = 6baba78a49cb9d05aaf307ef35030f2d5ee218fc3121d72fe4f225e10a94fdf0
-SIZE (electron/electron42-42.9.0-node-modules-arm64.tar.xz) = 62590395
-SHA256 (electron/electron42-42.9.0-node-modules-x64.tar.xz) = 73224ef31205c29739c6d35f93129f0ab290bf714d59e1461fc675c070aac933
-SIZE (electron/electron42-42.9.0-node-modules-x64.tar.xz) = 71097369
-SHA256 (electron/electron-electron-v42.9.0_GH0.tar.gz) = aabff8a37769bb6ac335ca56282627ef5774247278fef101e56e4dd12be22c2a
-SIZE (electron/electron-electron-v42.9.0_GH0.tar.gz) = 19511989
+SHA256 (electron/electron42-42.9.3-node-modules-arm64.tar.xz) = 6baba78a49cb9d05aaf307ef35030f2d5ee218fc3121d72fe4f225e10a94fdf0
+SIZE (electron/electron42-42.9.3-node-modules-arm64.tar.xz) = 62590395
+SHA256 (electron/electron42-42.9.3-node-modules-x64.tar.xz) = 73224ef31205c29739c6d35f93129f0ab290bf714d59e1461fc675c070aac933
+SIZE (electron/electron42-42.9.3-node-modules-x64.tar.xz) = 71097369
+SHA256 (electron/electron-electron-v42.9.3_GH0.tar.gz) = 07a2a27021a0b95649aefec385b1d32242716090db94d3920bf590eb2eb88dbb
+SIZE (electron/electron-electron-v42.9.3_GH0.tar.gz) = 19686775
 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/electron42/files/patch-content_app_content__main.cc b/devel/electron42/files/patch-content_app_content__main.cc
index 02005b90b300..d063cd03969c 100644
--- a/devel/electron42/files/patch-content_app_content__main.cc
+++ b/devel/electron42/files/patch-content_app_content__main.cc
@@ -1,6 +1,6 @@
---- content/app/content_main.cc.orig	2026-03-21 03:23:28 UTC
+--- content/app/content_main.cc.orig	2026-08-19 23:17:14 UTC
 +++ content/app/content_main.cc
-@@ -230,7 +230,7 @@ NO_STACK_PROTECTOR int RunContentProcess(
+@@ -236,7 +236,7 @@ NO_STACK_PROTECTOR int RunContentProcess(
      base::EnableTerminationOnOutOfMemory();
      logging::RegisterAbslAbortHook();
  
@@ -9,7 +9,7 @@
      // The various desktop environments set this environment variable that
      // allows the dbus client library to connect directly to the bus. When this
      // variable is not set (test environments like xvfb-run), the dbus client
-@@ -324,7 +324,7 @@ NO_STACK_PROTECTOR int RunContentProcess(
+@@ -330,7 +330,7 @@ NO_STACK_PROTECTOR int RunContentProcess(
  #endif
  #endif
  
diff --git a/devel/electron42/files/patch-content_browser_gpu_gpu__process__host.cc b/devel/electron42/files/patch-content_browser_gpu_gpu__process__host.cc
index 92cc9c3c31a4..f26ed9dcaeb4 100644
--- a/devel/electron42/files/patch-content_browser_gpu_gpu__process__host.cc
+++ b/devel/electron42/files/patch-content_browser_gpu_gpu__process__host.cc
@@ -1,6 +1,6 @@
---- content/browser/gpu/gpu_process_host.cc.orig	2026-05-26 20:44:49 UTC
+--- content/browser/gpu/gpu_process_host.cc.orig	2026-08-19 23:17:14 UTC
 +++ content/browser/gpu/gpu_process_host.cc
-@@ -282,6 +282,7 @@ static const char* const kSwitchNames[] = {
+@@ -284,6 +284,7 @@ static const char* const kSwitchNames[] = {
      switches::kDisableSkiaGraphite,
      switches::kDisableSkiaGraphitePrecompilation,
      switches::kDisableLowEndDeviceMode,
@@ -8,7 +8,7 @@
      switches::kProfilingAtStart,
      switches::kProfilingFile,
      switches::kProfilingFlush,
-@@ -306,7 +307,7 @@ static const char* const kSwitchNames[] = {
+@@ -308,7 +309,7 @@ static const char* const kSwitchNames[] = {
      switches::kEnableNativeGpuMemoryBuffers,
      switches::kRenderNodeOverride,
  #endif
diff --git a/devel/electron42/files/patch-electron_shell_browser_api_electron__api__web__contents.cc b/devel/electron42/files/patch-electron_shell_browser_api_electron__api__web__contents.cc
index ea4884962af6..d15c1145694c 100644
--- a/devel/electron42/files/patch-electron_shell_browser_api_electron__api__web__contents.cc
+++ b/devel/electron42/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-10 18:14:56 UTC
+--- electron/shell/browser/api/electron_api_web_contents.cc.orig	2026-08-17 14:38:13 UTC
 +++ electron/shell/browser/api/electron_api_web_contents.cc
-@@ -174,11 +174,11 @@
+@@ -175,11 +175,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
-@@ -208,7 +208,7 @@
+@@ -209,7 +209,7 @@
  #include "content/public/browser/plugin_service.h"
  #endif
  
@@ -23,7 +23,7 @@
  #include "chrome/browser/hang_monitor/hang_crash_dump.h"  // nogncheck
  #endif
  
-@@ -629,7 +629,7 @@ std::optional<base::TimeDelta> GetCursorBlinkInterval(
+@@ -630,7 +630,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)
-@@ -1014,7 +1014,7 @@ void WebContents::InitWithSessionAndOptions(
+@@ -1015,7 +1015,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));
-@@ -2993,13 +2993,13 @@ void WebContents::ForcefullyCrashRenderer() {
+@@ -3040,13 +3040,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);
-@@ -3632,7 +3632,7 @@ void WebContents::Focus() {
+@@ -3679,7 +3679,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
-@@ -4533,7 +4533,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() {
+@@ -4580,7 +4580,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() {
  }
  #endif
  
diff --git a/devel/electron42/files/patch-electron_shell_browser_api_electron__api__web__contents.h b/devel/electron42/files/patch-electron_shell_browser_api_electron__api__web__contents.h
index 4eb3a6322f3b..cf038accd5fb 100644
--- a/devel/electron42/files/patch-electron_shell_browser_api_electron__api__web__contents.h
+++ b/devel/electron42/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-06-09 06:05:33 UTC
+--- electron/shell/browser/api/electron_api_web_contents.h.orig	2026-08-17 14:38:13 UTC
 +++ electron/shell/browser/api/electron_api_web_contents.h
-@@ -761,7 +761,7 @@ class WebContents final : public ExclusiveAccessContex
+@@ -764,7 +764,7 @@ class WebContents final : public ExclusiveAccessContex
  #if defined(TOOLKIT_VIEWS) && !BUILDFLAG(IS_MAC)
    ui::ImageModel GetDevToolsWindowIcon() override;
  #endif
diff --git a/devel/electron42/files/patch-electron_shell_browser_native__window__views.cc b/devel/electron42/files/patch-electron_shell_browser_native__window__views.cc
index a60130f933cf..2e12b4e783b7 100644
--- a/devel/electron42/files/patch-electron_shell_browser_native__window__views.cc
+++ b/devel/electron42/files/patch-electron_shell_browser_native__window__views.cc
@@ -1,7 +1,7 @@
---- electron/shell/browser/native_window_views.cc.orig	2026-08-04 15:02:58 UTC
+--- electron/shell/browser/native_window_views.cc.orig	2026-08-17 14:38:13 UTC
 +++ electron/shell/browser/native_window_views.cc
-@@ -58,7 +58,7 @@
- #include "ui/wm/core/shadow_types.h"
+@@ -57,7 +57,7 @@
+ #include "ui/views/window/non_client_view.h"
  #include "ui/wm/core/window_util.h"
  
 -#if BUILDFLAG(IS_LINUX)
@@ -9,7 +9,7 @@
  #include "base/notimplemented.h"
  #include "shell/browser/browser.h"
  #include "shell/browser/linux/unity_service.h"
-@@ -300,7 +300,7 @@ NativeWindowViews::NativeWindowViews(const int32_t bas
+@@ -299,7 +299,7 @@ NativeWindowViews::NativeWindowViews(const int32_t bas
      params.parent = parent->GetNativeWindow();
  
    params.native_widget = new ElectronDesktopNativeWidgetAura{this, widget()};
@@ -18,7 +18,7 @@
    // Set the WM_CLASS and XDG App ID to the same value
    // for best compatibility with both X11 and Wayland.
    const auto app_id = platform_util::GetXdgAppId();
-@@ -330,7 +330,7 @@ NativeWindowViews::NativeWindowViews(const int32_t bas
+@@ -329,7 +329,7 @@ NativeWindowViews::NativeWindowViews(const int32_t bas
    std::string window_type;
    options.Get(options::kType, &window_type);
  
@@ -27,7 +27,7 @@
    // Set _GTK_THEME_VARIANT to dark if we have "dark-theme" option set.
    if (options.ValueOrDefault(options::kDarkTheme, false))
      SetGTKDarkThemeEnabled(true);
-@@ -522,7 +522,7 @@ void NativeWindowViews::SetGTKDarkThemeEnabled(bool us
+@@ -521,7 +521,7 @@ void NativeWindowViews::SetGTKDarkThemeEnabled(bool us
  }
  
  void NativeWindowViews::SetGTKDarkThemeEnabled(bool use_dark_theme) {
@@ -36,7 +36,7 @@
    if (x11_util::IsX11()) {
      const std::string color = use_dark_theme ? "dark" : "light";
      auto* connection = x11::Connection::Get();
-@@ -583,7 +583,7 @@ void NativeWindowViews::Show() {
+@@ -587,7 +587,7 @@ void NativeWindowViews::Show() {
  
    NotifyWindowShow();
  
@@ -45,7 +45,7 @@
    if (global_menu_bar_)
      global_menu_bar_->OnWindowMapped();
  
-@@ -599,7 +599,7 @@ void NativeWindowViews::ShowInactive() {
+@@ -603,7 +603,7 @@ void NativeWindowViews::ShowInactive() {
  
    NotifyWindowShow();
  
@@ -54,7 +54,7 @@
    if (global_menu_bar_)
      global_menu_bar_->OnWindowMapped();
  
-@@ -618,7 +618,7 @@ void NativeWindowViews::Hide() {
+@@ -622,7 +622,7 @@ void NativeWindowViews::Hide() {
  
    NotifyWindowHide();
  
@@ -63,7 +63,7 @@
    if (global_menu_bar_)
      global_menu_bar_->OnWindowUnmapped();
  #endif
-@@ -649,7 +649,7 @@ bool NativeWindowViews::IsEnabled() const {
+@@ -653,7 +653,7 @@ bool NativeWindowViews::IsEnabled() const {
  bool NativeWindowViews::IsEnabled() const {
  #if BUILDFLAG(IS_WIN)
    return ::IsWindowEnabled(GetAcceleratedWidget());
@@ -72,7 +72,7 @@
    if (x11_util::IsX11())
      return !event_disabler_.get();
    NOTIMPLEMENTED();
-@@ -874,7 +874,7 @@ void NativeWindowViews::SetBounds(const gfx::Rect& bou
+@@ -878,7 +878,7 @@ void NativeWindowViews::SetBounds(const gfx::Rect& bou
    }
  #endif
  
@@ -81,7 +81,7 @@
    // On Linux and Windows the minimum and maximum size should be updated with
    // window size when window is not resizable.
    if (!CanResize()) {
-@@ -929,7 +929,7 @@ void NativeWindowViews::SetContentSizeConstraints(
+@@ -933,7 +933,7 @@ void NativeWindowViews::SetContentSizeConstraints(
    // of this to determine whether native widget has initialized.
    if (widget() && widget()->widget_delegate())
      widget()->OnSizeConstraintsChanged();
@@ -90,7 +90,7 @@
    if (resizable_)
      old_size_constraints_ = GetSizeConstraints();
  #endif
-@@ -1149,7 +1149,7 @@ bool NativeWindowViews::IsClosable() const {
+@@ -1153,7 +1153,7 @@ bool NativeWindowViews::IsClosable() const {
      return false;
    }
    return !(info.fState & MFS_DISABLED);
@@ -99,7 +99,7 @@
    return true;
  #endif
  }
-@@ -1289,7 +1289,7 @@ void NativeWindowViews::SetBackgroundColor(SkColor bac
+@@ -1293,7 +1293,7 @@ void NativeWindowViews::SetBackgroundColor(SkColor bac
    InvalidateRect(GetAcceleratedWidget(), nullptr, 1);
  #endif
  
@@ -108,7 +108,7 @@
    // Widget and root view need to be transparent for CSD to draw shadow regions
    // and custom edges and corners. The web contents view will still be
    // painted with the true background color, which is cached in state.
-@@ -1419,7 +1419,7 @@ void NativeWindowViews::SetMenu(ElectronMenuModel* men
+@@ -1423,7 +1423,7 @@ void NativeWindowViews::SetMenu(ElectronMenuModel* men
  }
  
  void NativeWindowViews::SetMenu(ElectronMenuModel* menu_model) {
@@ -117,7 +117,7 @@
    // Remove global menu bar.
    if (global_menu_bar_ && menu_model == nullptr) {
      global_menu_bar_.reset();
-@@ -1475,7 +1475,7 @@ void NativeWindowViews::SetParentWindow(NativeWindow* 
+@@ -1479,7 +1479,7 @@ void NativeWindowViews::SetParentWindow(NativeWindow* 
  void NativeWindowViews::SetParentWindow(NativeWindow* parent) {
    NativeWindow::SetParentWindow(parent);
  
@@ -126,7 +126,7 @@
    if (x11_util::IsX11()) {
      auto* connection = x11::Connection::Get();
      connection->SetProperty(
-@@ -1537,7 +1537,7 @@ void NativeWindowViews::SetProgressBar(double progress
+@@ -1541,7 +1541,7 @@ void NativeWindowViews::SetProgressBar(double progress
                                         NativeWindow::ProgressState state) {
  #if BUILDFLAG(IS_WIN)
    taskbar_host_.SetProgressBar(GetAcceleratedWidget(), progress, state);
@@ -135,7 +135,7 @@
    if (unity::IsRunning()) {
      unity::SetProgressFraction(progress);
    }
-@@ -1663,7 +1663,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM
+@@ -1667,7 +1667,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM
  #if BUILDFLAG(IS_WIN)
    window_handle =
        reinterpret_cast<content::DesktopMediaID::Id>(accelerated_widget);
@@ -144,7 +144,7 @@
    window_handle = static_cast<uint32_t>(accelerated_widget);
  #endif
    aura::WindowTreeHost* const host =
-@@ -1793,7 +1793,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC
+@@ -1797,7 +1797,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC
    SendMessage(hwnd, WM_SETICON, ICON_BIG,
                reinterpret_cast<LPARAM>(app_icon_.get()));
  }
@@ -153,7 +153,7 @@
  void NativeWindowViews::SetIcon(const gfx::ImageSkia& icon) {
    auto* tree_host = views::DesktopWindowTreeHostLinux::GetHostForWidget(
        GetAcceleratedWidget());
-@@ -1914,7 +1914,7 @@ bool NativeWindowViews::CanMinimize() const {
+@@ -1918,7 +1918,7 @@ bool NativeWindowViews::CanMinimize() const {
  bool NativeWindowViews::CanMinimize() const {
  #if BUILDFLAG(IS_WIN)
    return minimizable_;
@@ -162,7 +162,7 @@
    return true;
  #endif
  }
-@@ -1948,7 +1948,7 @@ std::unique_ptr<views::FrameView> NativeWindowViews::C
+@@ -1952,7 +1952,7 @@ std::unique_ptr<views::FrameView> NativeWindowViews::C
  #endif
  }
  
@@ -171,7 +171,7 @@
  LinuxFrameLayout* NativeWindowViews::GetLinuxFrameLayout() {
    auto* ncv = widget()->non_client_view();
    if (!ncv)
-@@ -1968,7 +1968,7 @@ void NativeWindowViews::HandleKeyboardEvent(
+@@ -1972,7 +1972,7 @@ void NativeWindowViews::HandleKeyboardEvent(
    if (widget_destroyed_)
      return;
  
@@ -180,7 +180,7 @@
    if (event.windows_key_code == ui::VKEY_BROWSER_BACK)
      NotifyWindowExecuteAppCommand(kBrowserBackward);
    else if (event.windows_key_code == ui::VKEY_BROWSER_FORWARD)
-@@ -1987,7 +1987,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e
+@@ -1991,7 +1991,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e
    // Alt+Click should not toggle menu bar.
    root_view_.ResetAltState();
  
diff --git a/devel/electron42/files/patch-electron_spec_api-content-tracing-spec.ts b/devel/electron42/files/patch-electron_spec_api-content-tracing-spec.ts
index 8af02ae4a2ab..9965e2ffd59a 100644
--- a/devel/electron42/files/patch-electron_spec_api-content-tracing-spec.ts
+++ b/devel/electron42/files/patch-electron_spec_api-content-tracing-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-content-tracing-spec.ts.orig	2026-05-07 20:19:20 UTC
+--- electron/spec/api-content-tracing-spec.ts.orig	2026-08-17 14:38:13 UTC
 +++ electron/spec/api-content-tracing-spec.ts
-@@ -13,7 +13,7 @@ const fixturesPath = path.resolve(__dirname, 'fixtures
+@@ -14,7 +14,7 @@ const fixturesPath = path.resolve(__dirname, 'fixtures
  const fixturesPath = path.resolve(__dirname, 'fixtures');
  
  // FIXME: The tests are skipped on linux arm/arm64
@@ -9,7 +9,7 @@
    const record = async (
      options: TraceConfig | TraceCategoriesAndOptions,
      outputFilePath: string | undefined,
-@@ -99,7 +99,7 @@ ifdescribe(!['arm', 'arm64'].includes(process.arch) ||
+@@ -105,7 +105,7 @@ ifdescribe(!['arm', 'arm64'].includes(process.arch) ||
      });
    });
  
diff --git a/devel/electron42/files/patch-electron_spec_api-protocol-spec.ts b/devel/electron42/files/patch-electron_spec_api-protocol-spec.ts
index 4abbcd6201cc..d00125fad169 100644
--- a/devel/electron42/files/patch-electron_spec_api-protocol-spec.ts
+++ b/devel/electron42/files/patch-electron_spec_api-protocol-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-protocol-spec.ts.orig	2026-08-04 15:02:58 UTC
+--- electron/spec/api-protocol-spec.ts.orig	2026-08-17 14:38:13 UTC
 +++ electron/spec/api-protocol-spec.ts
-@@ -2178,7 +2178,7 @@ describe('protocol module', () => {
+@@ -2217,7 +2217,7 @@ describe('protocol module', () => {
  
      // TODO(nornagon): this test doesn't pass on Linux currently, investigate.
      // test is also flaky on CI on macOS so it is currently disabled there as well.
diff --git a/devel/electron42/files/patch-electron_spec_api-web-contents-spec.ts b/devel/electron42/files/patch-electron_spec_api-web-contents-spec.ts
index ba2eba98a10e..833b6ba87d4c 100644
--- a/devel/electron42/files/patch-electron_spec_api-web-contents-spec.ts
+++ b/devel/electron42/files/patch-electron_spec_api-web-contents-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec/api-web-contents-spec.ts.orig	2026-08-10 18:14:56 UTC
+--- electron/spec/api-web-contents-spec.ts.orig	2026-08-17 14:38:13 UTC
 +++ electron/spec/api-web-contents-spec.ts
 @@ -1337,7 +1337,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 });
-@@ -3179,7 +3179,7 @@ describe('webContents module', () => {
+@@ -3218,7 +3218,7 @@ describe('webContents module', () => {
      });
  
      // TODO(codebytere): OOPIF printing is disabled on Linux at the moment due to crashes.
diff --git a/devel/electron42/files/patch-electron_spec_index.js b/devel/electron42/files/patch-electron_spec_index.js
index 9f821cc0d207..8acfe020a7dd 100644
--- a/devel/electron42/files/patch-electron_spec_index.js
+++ b/devel/electron42/files/patch-electron_spec_index.js
@@ -1,6 +1,6 @@
---- electron/spec/index.js.orig	2026-05-19 01:17:05 UTC
+--- electron/spec/index.js.orig	2026-08-17 14:38:13 UTC
 +++ electron/spec/index.js
-@@ -179,7 +179,7 @@ async function killOrphanedElectronProcesses(suiteName
+@@ -181,7 +181,7 @@ async function killOrphanedElectronProcesses(suiteName
          try {
            // On Linux, skip any process that is a descendant of the current
            // Electron instance (GPU, renderer, zygote, crashpad, etc.).
diff --git a/devel/electron42/files/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc b/devel/electron42/files/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc
index df30e4d5e34b..963fd91717d0 100644
--- a/devel/electron42/files/patch-gpu_command__buffer_service_gles2__cmd__decoder.cc
+++ b/devel/electron42/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-06 11:02:38 UTC
+--- gpu/command_buffer/service/gles2_cmd_decoder.cc.orig	2026-08-19 23:17:14 UTC
 +++ gpu/command_buffer/service/gles2_cmd_decoder.cc
-@@ -3018,7 +3018,7 @@ std::unique_ptr<GLES2Decoder> GLES2Decoder::Create(
+@@ -3033,7 +3033,7 @@ std::unique_ptr<GLES2Decoder> GLES2Decoder::Create(
    }
  
  // Allow linux to run fuzzers.
diff --git a/devel/electron42/files/patch-ui_base_cursor_cursor__factory.cc b/devel/electron42/files/patch-ui_base_cursor_cursor__factory.cc
index 1cd200a1ef80..693532a4b5e4 100644
--- a/devel/electron42/files/patch-ui_base_cursor_cursor__factory.cc
+++ b/devel/electron42/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-19 23:17:14 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/electron42/files/patch-ui_base_cursor_cursor__factory.h b/devel/electron42/files/patch-ui_base_cursor_cursor__factory.h
index e7cc32bce26e..cd6259f204ea 100644
--- a/devel/electron42/files/patch-ui_base_cursor_cursor__factory.h
+++ b/devel/electron42/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-19 23:17:14 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/electron42/files/patch-ui_base_cursor_cursor__unittest.cc b/devel/electron42/files/patch-ui_base_cursor_cursor__unittest.cc
new file mode 100644
index 000000000000..3f8093fe85e5
--- /dev/null
+++ b/devel/electron42/files/patch-ui_base_cursor_cursor__unittest.cc
@@ -0,0 +1,11 @@
+--- ui/base/cursor/cursor_unittest.cc.orig	2026-08-19 23:18:56 UTC
++++ ui/base/cursor/cursor_unittest.cc
+@@ -72,7 +72,7 @@ TEST(CursorTest, ClampHotspot) {
+   EXPECT_EQ(gfx::Point(4, 6), cursor.custom_hotspot());
+ }
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ TEST(CursorTest, IsValidCursorThemeName) {
+   EXPECT_TRUE(IsValidCursorThemeName("Adwaita"));
+   EXPECT_TRUE(IsValidCursorThemeName("DMZ-White"));
diff --git a/devel/electron42/files/patch-ui_base_resource_resource__bundle.cc b/devel/electron42/files/patch-ui_base_resource_resource__bundle.cc
index a3756b9888de..f87e68d8aaac 100644
--- a/devel/electron42/files/patch-ui_base_resource_resource__bundle.cc
+++ b/devel/electron42/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-19 23:17:14 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/electron42/files/patch-ui_base_x_x11__cursor__loader.cc b/devel/electron42/files/patch-ui_base_x_x11__cursor__loader.cc
index 81ed475d0a20..d711be8c8bbf 100644
--- a/devel/electron42/files/patch-ui_base_x_x11__cursor__loader.cc
+++ b/devel/electron42/files/patch-ui_base_x_x11__cursor__loader.cc
@@ -1,6 +1,6 @@
---- ui/base/x/x11_cursor_loader.cc.orig	2026-06-10 20:03:19 UTC
+--- ui/base/x/x11_cursor_loader.cc.orig	2026-08-19 23:17:14 UTC
 +++ ui/base/x/x11_cursor_loader.cc
-@@ -37,7 +37,7 @@
+@@ -38,7 +38,7 @@
  #include "ui/gfx/x/connection.h"
  #include "ui/gfx/x/xproto.h"
  
@@ -9,7 +9,7 @@
  #include "ui/linux/linux_ui.h"
  #endif
  
-@@ -79,7 +79,11 @@ std::string CursorPathFromLibXcursor() {
+@@ -80,7 +80,11 @@ std::string CursorPathFromLibXcursor() {
      void operator()(void* ptr) const { dlclose(ptr); }
    };
  
@@ -21,7 +21,7 @@
    if (!lib)
      return "";
  
-@@ -234,7 +238,7 @@ scoped_refptr<base::RefCountedMemory> ReadCursorFile(
+@@ -233,7 +237,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(),
-@@ -428,7 +432,7 @@ uint32_t XCursorLoader::GetPreferredCursorSize() const
+@@ -427,7 +431,7 @@ uint32_t XCursorLoader::GetPreferredCursorSize() const
      return size;
    }
  
diff --git a/devel/electron42/files/patch-ui_base_x_x11__shm__image__pool.cc b/devel/electron42/files/patch-ui_base_x_x11__shm__image__pool.cc
index c3f090548a87..f7de85b80e6a 100644
--- a/devel/electron42/files/patch-ui_base_x_x11__shm__image__pool.cc
+++ b/devel/electron42/files/patch-ui_base_x_x11__shm__image__pool.cc
@@ -1,4 +1,4 @@
---- ui/base/x/x11_shm_image_pool.cc.orig	2025-01-27 17:37:37 UTC
+--- ui/base/x/x11_shm_image_pool.cc.orig	2026-08-19 23:17:14 UTC
 +++ ui/base/x/x11_shm_image_pool.cc
 @@ -16,6 +16,7 @@
  #include "base/functional/callback.h"
@@ -51,7 +51,7 @@
  }
  #endif  // !BUILDFLAG(IS_CHROMEOS)
  
-@@ -182,7 +193,7 @@ bool XShmImagePool::Resize(const gfx::Size& pixel_size
+@@ -191,7 +202,7 @@ bool XShmImagePool::Resize(const gfx::Size& pixel_size
          shmctl(state.shmid, IPC_RMID, nullptr);
          return false;
        }
@@ -60,7 +60,7 @@
        // On Linux, a shmid can still be attached after IPC_RMID if otherwise
        // kept alive.  Detach before XShmAttach to prevent a memory leak in case
        // the process dies.
-@@ -201,7 +212,7 @@ bool XShmImagePool::Resize(const gfx::Size& pixel_size
+@@ -210,7 +221,7 @@ bool XShmImagePool::Resize(const gfx::Size& pixel_size
          return false;
        state.shmseg = shmseg;
        state.shmem_attached_to_server = true;