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; }