aboutsummaryrefslogtreecommitdiff
path: root/devel/electron37
diff options
context:
space:
mode:
Diffstat (limited to 'devel/electron37')
-rw-r--r--devel/electron37/Makefile12
-rw-r--r--devel/electron37/Makefile.version2
-rw-r--r--devel/electron37/distinfo26
-rw-r--r--devel/electron37/files/package.json1
-rw-r--r--devel/electron37/files/patch-build_config_rust.gni14
-rw-r--r--devel/electron37/files/patch-build_dotfile__settings.gni10
-rw-r--r--devel/electron37/files/patch-build_rust_allocator_lib.rs22
-rw-r--r--devel/electron37/files/patch-build_rust_std_BUILD.gn14
-rw-r--r--devel/electron37/files/patch-electron_BUILD.gn28
-rw-r--r--devel/electron37/files/patch-electron_script_spec-runner.js8
-rw-r--r--devel/electron37/files/patch-electron_shell_browser_api_electron__api__app.cc8
-rw-r--r--devel/electron37/files/patch-electron_shell_browser_native__window__views.cc24
-rw-r--r--devel/electron37/files/patch-electron_shell_browser_native__window__views.h6
-rw-r--r--devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc4
-rw-r--r--devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc4
-rw-r--r--devel/electron37/files/patch-electron_shell_common_api_electron__bindings.cc4
-rw-r--r--devel/electron37/files/patch-electron_shell_common_node__bindings.cc10
-rw-r--r--devel/electron37/files/patch-electron_spec_api-app-spec.ts32
-rw-r--r--devel/electron37/files/patch-electron_spec_api-web-contents-spec.ts4
-rw-r--r--devel/electron37/files/patch-electron_spec_chromium-spec.ts6
-rw-r--r--devel/electron37/files/patch-net_dns_BUILD.gn10
-rw-r--r--devel/electron37/files/patch-third__party_crabbyavif_BUILD.gn16
-rw-r--r--devel/electron37/files/yarn.lock14
23 files changed, 164 insertions, 115 deletions
diff --git a/devel/electron37/Makefile b/devel/electron37/Makefile
index 45bad243e80c..a81f9cf8532c 100644
--- a/devel/electron37/Makefile
+++ b/devel/electron37/Makefile
@@ -1,11 +1,10 @@
PORTNAME= electron
DISTVERSIONPREFIX= v
DISTVERSION= ${ELECTRON_VER}
-PORTREVISION= 1
PULSEMV= 16
PULSEV= ${PULSEMV}.1
CATEGORIES= devel
-MASTER_SITES= https://github.com/tagattie/FreeBSD-Electron/releases/download/v37.4.0/:chromium \
+MASTER_SITES= https://github.com/tagattie/FreeBSD-Electron/releases/download/v37.5.0/:chromium \
https://freedesktop.org/software/pulseaudio/releases/:pulseaudio
PKGNAMESUFFIX= ${ELECTRON_VER_MAJOR}
DISTFILES= chromium-${CHROMIUM_VER}${EXTRACT_SUFX}.0:chromium \
@@ -225,9 +224,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= 138.0.7204.243
+CHROMIUM_VER= 138.0.7204.251
# See ${WRKSRC}/electron/DEPS for NODE_VER
-NODE_VER= 22.18.0
+NODE_VER= 22.21.1
# See ${WRKSRC}/electron/DEPS for NAN_VER
NAN_VER= e14bdcd1f72d62bca1d541b66da43130384ec213
# See ${WRKSRC}/electron/DEPS for SQUIRREL_MAC_VER
@@ -292,11 +291,9 @@ MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \
CPLUS_INCLUDE_PATH=${LOCALBASE}/include
# rust
-RUSTC_VERSION!= rustc -V 2>/dev/null || true
MAKE_ENV+= RUSTC_BOOTSTRAP=1
GN_ARGS+= enable_rust=true \
- rust_sysroot_absolute="${LOCALBASE}" \
- rustc_version="${RUSTC_VERSION}"
+ rust_sysroot_absolute="${LOCALBASE}"
pre-everything::
@${ECHO_MSG}
@@ -383,6 +380,7 @@ pre-configure:
.endfor
touch ${WRKSRC:H}/pulseaudio-${PULSEV}/src/pulse/version.h
@${REINPLACE_CMD} -e 's|$${LOCALBASE}|${LOCALBASE}|;s|$${MODCLANG_VERSION}|${LLVM_DEFAULT}|' \
+ ${WRKSRC}/build/config/rust.gni \
${WRKSRC}/build/rust/rust_bindgen.gni \
${WRKSRC}/build/rust/rust_bindgen_generator.gni
diff --git a/devel/electron37/Makefile.version b/devel/electron37/Makefile.version
index 316992727560..d1a81671a28f 100644
--- a/devel/electron37/Makefile.version
+++ b/devel/electron37/Makefile.version
@@ -1,2 +1,2 @@
-ELECTRON_VER= 37.4.0
+ELECTRON_VER= 37.10.2
ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//}
diff --git a/devel/electron37/distinfo b/devel/electron37/distinfo
index 24e208c6a0dc..dfec2fcb55fa 100644
--- a/devel/electron37/distinfo
+++ b/devel/electron37/distinfo
@@ -1,18 +1,18 @@
-TIMESTAMP = 1756372577
-SHA256 (electron/chromium-138.0.7204.243.tar.xz.0) = 6de4153de04a391369af78bf7e6e88872f8404486ad8a587fe25ed21e6a408dd
-SIZE (electron/chromium-138.0.7204.243.tar.xz.0) = 2000000000
-SHA256 (electron/chromium-138.0.7204.243.tar.xz.1) = ae7fc8e34ad25e4be009722383d862bbee6823fbeb237edb4376f4c21a4a72a0
-SIZE (electron/chromium-138.0.7204.243.tar.xz.1) = 2000000000
-SHA256 (electron/chromium-138.0.7204.243.tar.xz.2) = 06a4639f0361fbcd6d0fac04931986886c140c24f98b6cc50febc6921cd32d0f
-SIZE (electron/chromium-138.0.7204.243.tar.xz.2) = 274022020
+TIMESTAMP = 1763689722
+SHA256 (electron/chromium-138.0.7204.251.tar.xz.0) = 23057c15fd77b6653b01a34e08782f05cc80ecddddaf6f0b87390beb32810151
+SIZE (electron/chromium-138.0.7204.251.tar.xz.0) = 2000000000
+SHA256 (electron/chromium-138.0.7204.251.tar.xz.1) = 784a8bcb5eff8c204557c5cb7c4a223efd3c472303dd79a8b7be97e3d5d0982a
+SIZE (electron/chromium-138.0.7204.251.tar.xz.1) = 2000000000
+SHA256 (electron/chromium-138.0.7204.251.tar.xz.2) = 3d7af9e06a90102b41de19d46359f1ae1aceba1a47e46abe1d21f184afc86932
+SIZE (electron/chromium-138.0.7204.251.tar.xz.2) = 273864084
SHA256 (electron/pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92
SIZE (electron/pulseaudio-16.1.tar.gz) = 2763111
-SHA256 (electron/electron-yarn-cache-37.4.0.tar.xz) = 7823d2fceaf2aac5bb0b342866049b0dfdeca98a65ac00559abfaff47bdba536
-SIZE (electron/electron-yarn-cache-37.4.0.tar.xz) = 30480408
-SHA256 (electron/electron-electron-v37.4.0_GH0.tar.gz) = 43ccbd61351999cd09314b5ac28e97c78f584f40fb85dfd09564aad92a6d37a8
-SIZE (electron/electron-electron-v37.4.0_GH0.tar.gz) = 15838013
-SHA256 (electron/nodejs-node-v22.18.0_GH0.tar.gz) = f0f7022d2bcf1e286a42ccf46bf184e67e469daa83ecd9fda2326e872bab7aa0
-SIZE (electron/nodejs-node-v22.18.0_GH0.tar.gz) = 123027912
+SHA256 (electron/electron-yarn-cache-37.10.2.tar.xz) = 34a44bb3ceaa38384ab57905ac82eb29f3cb66db5f731479d67b306211916e3d
+SIZE (electron/electron-yarn-cache-37.10.2.tar.xz) = 30531168
+SHA256 (electron/electron-electron-v37.10.2_GH0.tar.gz) = e2823680d00933c9c507565c4d69a3e1513b1f7bc40f61a43faf2def2f24d271
+SIZE (electron/electron-electron-v37.10.2_GH0.tar.gz) = 15861249
+SHA256 (electron/nodejs-node-v22.21.1_GH0.tar.gz) = 4b5ad1795fb6adfb1862df9a626bdca85185866fcd7d0313e87a347eec293fd8
+SIZE (electron/nodejs-node-v22.21.1_GH0.tar.gz) = 129440814
SHA256 (electron/nodejs-nan-e14bdcd1f72d62bca1d541b66da43130384ec213_GH0.tar.gz) = 02edf8d5b3fef9af94d8a1355da60564a57e7f2c99cb422bce042400607ed2eb
SIZE (electron/nodejs-nan-e14bdcd1f72d62bca1d541b66da43130384ec213_GH0.tar.gz) = 180646
SHA256 (electron/Squirrel-Squirrel.Mac-0e5d146ba13101a1302d59ea6e6e0b3cace4ae38_GH0.tar.gz) = f4ebb40a8d85dbb7ef02aa0571b2f8e22182c6d73b6992484a53c90047779d01
diff --git a/devel/electron37/files/package.json b/devel/electron37/files/package.json
index bb15faa1f136..9f65235eaa4b 100644
--- a/devel/electron37/files/package.json
+++ b/devel/electron37/files/package.json
@@ -20,6 +20,7 @@
"@types/temp": "^0.9.4",
"@typescript-eslint/eslint-plugin": "^8.7.0",
"@typescript-eslint/parser": "^8.7.0",
+ "@xmldom/xmldom": "^0.8.11",
"buffer": "^6.0.3",
"chalk": "^4.1.0",
"check-for-leaks": "^1.2.1",
diff --git a/devel/electron37/files/patch-build_config_rust.gni b/devel/electron37/files/patch-build_config_rust.gni
index 89d904a80fe9..9d4c1b2ff8ed 100644
--- a/devel/electron37/files/patch-build_config_rust.gni
+++ b/devel/electron37/files/patch-build_config_rust.gni
@@ -1,6 +1,16 @@
---- build/config/rust.gni.orig 2025-06-30 07:04:30 UTC
+--- build/config/rust.gni.orig 2025-08-25 14:15:51 UTC
+++ build/config/rust.gni
-@@ -373,7 +373,11 @@ if (is_linux || is_chromeos) {
+@@ -62,7 +62,8 @@ declare_args() {
+ # set this to the output of `rustc -V`. Changing this string will cause all
+ # Rust targets to be rebuilt, which allows you to update your toolchain and
+ # not break incremental builds.
+- rustc_version = ""
++ rustc_version = exec_script("//build/gn_run_binary.py",
++ [ "${LOCALBASE}/bin/rustc", "-V" ], "trim string")
+
+ # If you're using a Rust toolchain as specified by rust_sysroot_absolute,
+ # you can specify whether it supports nacl here.
+@@ -373,7 +374,11 @@ if (is_linux || is_chromeos) {
}
}
diff --git a/devel/electron37/files/patch-build_dotfile__settings.gni b/devel/electron37/files/patch-build_dotfile__settings.gni
new file mode 100644
index 000000000000..db6058d93cd8
--- /dev/null
+++ b/devel/electron37/files/patch-build_dotfile__settings.gni
@@ -0,0 +1,10 @@
+--- build/dotfile_settings.gni.orig 2025-08-25 14:15:51 UTC
++++ build/dotfile_settings.gni
+@@ -24,6 +24,7 @@ build_dotfile_settings = {
+ "//build/config/mac/mac_sdk.gni",
+ "//build/config/mac/rules.gni",
+ "//build/config/posix/BUILD.gn",
++ "//build/config/rust.gni",
+ "//build/config/win/BUILD.gn",
+ "//build/config/win/visual_studio_version.gni",
+ "//build/rust/analyze.gni",
diff --git a/devel/electron37/files/patch-build_rust_allocator_lib.rs b/devel/electron37/files/patch-build_rust_allocator_lib.rs
index c7a59f7ef428..cbffdab47210 100644
--- a/devel/electron37/files/patch-build_rust_allocator_lib.rs
+++ b/devel/electron37/files/patch-build_rust_allocator_lib.rs
@@ -1,15 +1,21 @@
--- build/rust/allocator/lib.rs.orig 2025-08-11 20:33:34 UTC
+++ build/rust/allocator/lib.rs
-@@ -86,6 +86,12 @@ mod both_allocators {
- /// As part of rustc's contract for using `#[global_allocator]` without
- /// rustc-generated shims we must define this symbol, since we are opting in
- /// to unstable functionality. See https://github.com/rust-lang/rust/issues/123015
+@@ -90,7 +90,18 @@ mod both_allocators {
+ #[linkage = "weak"]
+ static __rust_no_alloc_shim_is_unstable: u8 = 0;
+
+ #[rustc_std_internal_symbol]
+ #[linkage = "weak"]
+ fn __rust_no_alloc_shim_is_unstable_v2() {}
+
-+ // TODO(crbug.com/422538133) Remove after rolling past
-+ // https://github.com/rust-lang/rust/pull/141061
- #[no_mangle]
++ #[rustc_std_internal_symbol]
++ #[linkage = "weak"]
++ fn __rust_alloc_error_handler_should_panic_v2() -> u8 {
++ 0
++ }
++
+ // Mangle the symbol name as rustc expects.
++ // TODO(crbug.com/440481922): Remove this after rolling past https://github.com/rust-lang/rust/pull/143387
+ #[rustc_std_internal_symbol]
+ #[allow(non_upper_case_globals)]
#[linkage = "weak"]
- static __rust_no_alloc_shim_is_unstable: u8 = 0;
diff --git a/devel/electron37/files/patch-build_rust_std_BUILD.gn b/devel/electron37/files/patch-build_rust_std_BUILD.gn
index 13c2985f1be5..e4d989a8bdd3 100644
--- a/devel/electron37/files/patch-build_rust_std_BUILD.gn
+++ b/devel/electron37/files/patch-build_rust_std_BUILD.gn
@@ -1,6 +1,14 @@
---- build/rust/std/BUILD.gn.orig 2025-06-30 07:04:30 UTC
+--- build/rust/std/BUILD.gn.orig 2025-08-25 14:15:51 UTC
+++ build/rust/std/BUILD.gn
-@@ -50,13 +50,20 @@ if (toolchain_has_rust) {
+@@ -42,7 +42,6 @@ if (toolchain_has_rust) {
+ "rustc_demangle",
+ "std_detect",
+ "test",
+- "unicode_width",
+ "unwind",
+ ]
+
+@@ -50,13 +49,20 @@ if (toolchain_has_rust) {
# These are no longer present in the Windows toolchain.
stdlib_files += [
"addr2line",
@@ -22,7 +30,7 @@
}
if (toolchain_for_rust_host_build_tools) {
-@@ -76,7 +83,6 @@ if (toolchain_has_rust) {
+@@ -76,7 +82,6 @@ if (toolchain_has_rust) {
# don't need to pass to the C++ linker because they're used for specialized
# purposes.
skip_stdlib_files = [
diff --git a/devel/electron37/files/patch-electron_BUILD.gn b/devel/electron37/files/patch-electron_BUILD.gn
index 5d4a0e24bf71..886038b14c3b 100644
--- a/devel/electron37/files/patch-electron_BUILD.gn
+++ b/devel/electron37/files/patch-electron_BUILD.gn
@@ -1,6 +1,6 @@
---- electron/BUILD.gn.orig 2025-08-18 21:37:38 UTC
+--- electron/BUILD.gn.orig 2025-09-08 10:04:35 UTC
+++ electron/BUILD.gn
-@@ -547,7 +547,7 @@ source_set("electron_lib") {
+@@ -548,7 +548,7 @@ source_set("electron_lib") {
defines += [ "GDK_DISABLE_DEPRECATION_WARNINGS" ]
}
@@ -9,7 +9,7 @@
deps += [
"//components/crash/core/app",
"//components/crash/core/browser",
-@@ -640,6 +640,12 @@ source_set("electron_lib") {
+@@ -641,6 +641,12 @@ source_set("electron_lib") {
cflags_objcc = [ "-fobjc-weak" ]
}
}
@@ -22,7 +22,7 @@
if (is_linux) {
libs = [ "xshmfence" ]
deps += [
-@@ -1218,7 +1224,7 @@ if (is_mac) {
+@@ -1219,7 +1225,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",
-@@ -1245,7 +1251,7 @@ if (is_mac) {
+@@ -1246,7 +1252,7 @@ if (is_mac) {
public_deps = [ "//tools/v8_context_snapshot:v8_context_snapshot" ]
}
@@ -40,7 +40,7 @@
data_deps += [ "//components/crash/core/app:chrome_crashpad_handler" ]
}
-@@ -1312,7 +1318,7 @@ if (is_mac) {
+@@ -1313,7 +1319,7 @@ if (is_mac) {
configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
}
@@ -49,12 +49,14 @@
deps += [ "//sandbox/linux:chrome_sandbox" ]
}
}
-@@ -1420,7 +1426,7 @@ dist_zip("electron_dist_zip") {
- ":electron_version_file",
- ":licenses",
- ]
-- if (is_linux) {
-+ if (is_linux && !is_bsd) {
- data_deps += [ "//sandbox/linux:chrome_sandbox" ]
+@@ -1434,7 +1440,9 @@ dist_zip("electron_dist_zip") {
+ ]
+ }
+
+- data_deps += [ "//sandbox/linux:chrome_sandbox" ]
++ if (!is_bsd) {
++ data_deps += [ "//sandbox/linux:chrome_sandbox" ]
++ }
}
deps = data_deps
+ outputs = [ "$root_build_dir/dist.zip" ]
diff --git a/devel/electron37/files/patch-electron_script_spec-runner.js b/devel/electron37/files/patch-electron_script_spec-runner.js
index 48b303bb179e..8901659df179 100644
--- a/devel/electron37/files/patch-electron_script_spec-runner.js
+++ b/devel/electron37/files/patch-electron_script_spec-runner.js
@@ -1,9 +1,9 @@
---- electron/script/spec-runner.js.orig 2025-03-10 00:01:50 UTC
+--- electron/script/spec-runner.js.orig 2025-09-27 17:30:52 UTC
+++ electron/script/spec-runner.js
-@@ -200,7 +200,7 @@ async function runTestUsingElectron (specDir, testName
- exe = path.resolve(BASE, utils.getElectronExec());
+@@ -359,7 +359,7 @@ async function runTestUsingElectron (specDir, testName
+ argsToPass = argsToPass.filter(arg => (arg.toString().indexOf('--files') === -1 && arg.toString().indexOf('spec/') === -1));
}
- const runnerArgs = [`electron/${specDir}`, ...unknownArgs.slice(2)];
+ const runnerArgs = [`electron/${specDir}`, ...argsToPass, ...additionalArgs];
- if (process.platform === 'linux') {
+ if (process.platform === 'linux' || process.platform === 'freebsd') {
runnerArgs.unshift(path.resolve(__dirname, 'dbus_mock.py'), exe);
diff --git a/devel/electron37/files/patch-electron_shell_browser_api_electron__api__app.cc b/devel/electron37/files/patch-electron_shell_browser_api_electron__api__app.cc
index 4f6486828120..a3d88bfb8611 100644
--- a/devel/electron37/files/patch-electron_shell_browser_api_electron__api__app.cc
+++ b/devel/electron37/files/patch-electron_shell_browser_api_electron__api__app.cc
@@ -1,4 +1,4 @@
---- electron/shell/browser/api/electron_api_app.cc.orig 2025-08-13 14:21:20 UTC
+--- electron/shell/browser/api/electron_api_app.cc.orig 2025-11-13 23:04:07 UTC
+++ electron/shell/browser/api/electron_api_app.cc
@@ -96,7 +96,7 @@
#include "shell/common/process_util.h"
@@ -45,7 +45,7 @@
// Read the xdg-activation token and set it in the command line for the
// duration of the notification in order to ensure this is propagated to an
// already running electron app instance if it exists.
-@@ -1354,7 +1354,7 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics
+@@ -1445,7 +1445,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);
-@@ -1738,7 +1738,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
+@@ -1829,7 +1829,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
.SetMethod(
"removeAsDefaultProtocolClient",
base::BindRepeating(&Browser::RemoveAsDefaultProtocolClient, browser))
@@ -63,7 +63,7 @@
.SetMethod(
"getApplicationInfoForProtocol",
base::BindRepeating(&Browser::GetApplicationInfoForProtocol, browser))
-@@ -1796,7 +1796,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
+@@ -1887,7 +1887,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
.SetMethod("getJumpListSettings", &App::GetJumpListSettings)
.SetMethod("setJumpList", &App::SetJumpList)
#endif
diff --git a/devel/electron37/files/patch-electron_shell_browser_native__window__views.cc b/devel/electron37/files/patch-electron_shell_browser_native__window__views.cc
index a692323fc532..c6693b11ed3e 100644
--- a/devel/electron37/files/patch-electron_shell_browser_native__window__views.cc
+++ b/devel/electron37/files/patch-electron_shell_browser_native__window__views.cc
@@ -1,4 +1,4 @@
---- electron/shell/browser/native_window_views.cc.orig 2025-08-13 14:21:20 UTC
+--- electron/shell/browser/native_window_views.cc.orig 2025-10-21 05:28:55 UTC
+++ electron/shell/browser/native_window_views.cc
@@ -52,7 +52,7 @@
#include "ui/wm/core/shadow_types.h"
@@ -89,8 +89,8 @@
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
// On Linux and Windows the minimum and maximum size should be updated with
// window size when window is not resizable.
- if (!resizable_) {
-@@ -1071,7 +1071,7 @@ bool NativeWindowViews::IsClosable() const {
+ if (!CanResize()) {
+@@ -1074,7 +1074,7 @@ bool NativeWindowViews::IsClosable() const {
return false;
}
return !(info.fState & MFS_DISABLED);
@@ -99,7 +99,7 @@
return true;
#endif
}
-@@ -1111,7 +1111,7 @@ void NativeWindowViews::Center() {
+@@ -1114,7 +1114,7 @@ void NativeWindowViews::Center() {
// for now to avoid breaking API contract, but should consider the long
// term plan for this aligning with upstream.
void NativeWindowViews::Center() {
@@ -108,7 +108,7 @@
auto display =
display::Screen::GetScreen()->GetDisplayNearestWindow(GetNativeWindow());
gfx::Rect window_bounds_in_screen = display.work_area();
-@@ -1336,7 +1336,7 @@ void NativeWindowViews::SetMenu(ElectronMenuModel* men
+@@ -1339,7 +1339,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();
-@@ -1392,7 +1392,7 @@ void NativeWindowViews::SetParentWindow(NativeWindow*
+@@ -1395,7 +1395,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(
-@@ -1438,7 +1438,7 @@ void NativeWindowViews::SetProgressBar(double progress
+@@ -1441,7 +1441,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);
}
-@@ -1564,7 +1564,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM
+@@ -1567,7 +1567,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 =
-@@ -1662,7 +1662,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC
+@@ -1665,7 +1665,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());
-@@ -1783,7 +1783,7 @@ bool NativeWindowViews::CanMinimize() const {
+@@ -1786,7 +1786,7 @@ bool NativeWindowViews::CanMinimize() const {
bool NativeWindowViews::CanMinimize() const {
#if BUILDFLAG(IS_WIN)
return minimizable_;
@@ -162,7 +162,7 @@
return true;
#endif
}
-@@ -1839,7 +1839,7 @@ void NativeWindowViews::HandleKeyboardEvent(
+@@ -1842,7 +1842,7 @@ void NativeWindowViews::HandleKeyboardEvent(
if (widget_destroyed_)
return;
@@ -171,7 +171,7 @@
if (event.windows_key_code == ui::VKEY_BROWSER_BACK)
NotifyWindowExecuteAppCommand(kBrowserBackward);
else if (event.windows_key_code == ui::VKEY_BROWSER_FORWARD)
-@@ -1858,7 +1858,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e
+@@ -1861,7 +1861,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e
// Alt+Click should not toggle menu bar.
root_view_.ResetAltState();
diff --git a/devel/electron37/files/patch-electron_shell_browser_native__window__views.h b/devel/electron37/files/patch-electron_shell_browser_native__window__views.h
index 5f2e253fd5e4..729923f46ebb 100644
--- a/devel/electron37/files/patch-electron_shell_browser_native__window__views.h
+++ b/devel/electron37/files/patch-electron_shell_browser_native__window__views.h
@@ -1,4 +1,4 @@
---- electron/shell/browser/native_window_views.h.orig 2025-08-13 14:21:20 UTC
+--- electron/shell/browser/native_window_views.h.orig 2025-10-21 05:28:55 UTC
+++ electron/shell/browser/native_window_views.h
@@ -26,7 +26,7 @@ namespace electron {
@@ -9,7 +9,7 @@
class GlobalMenuBarX11;
#endif
-@@ -165,7 +165,7 @@ class NativeWindowViews : public NativeWindow,
+@@ -166,7 +166,7 @@ class NativeWindowViews : public NativeWindow,
LPARAM l_param,
LRESULT* result);
void SetIcon(HICON small_icon, HICON app_icon);
@@ -18,7 +18,7 @@
void SetIcon(const gfx::ImageSkia& icon);
#endif
-@@ -254,7 +254,7 @@ class NativeWindowViews : public NativeWindow,
+@@ -255,7 +255,7 @@ class NativeWindowViews : public NativeWindow,
// events from resizing the window.
extensions::SizeConstraints old_size_constraints_;
diff --git a/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc b/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
index abd8c6af7036..44cde47dddc3 100644
--- a/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
+++ b/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2025-07-02 15:59:39 UTC
+--- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2025-11-13 23:04:07 UTC
+++ electron/shell/browser/ui/inspectable_web_contents.cc
-@@ -548,7 +548,7 @@ void InspectableWebContents::LoadCompleted() {
+@@ -554,7 +554,7 @@ void InspectableWebContents::LoadCompleted() {
prefs.FindString("currentDockState");
base::RemoveChars(*current_dock_state, "\"", &dock_state_);
}
diff --git a/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc b/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
index baf9532d11ad..359c4558dee4 100644
--- a/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
+++ b/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig 2025-07-02 10:12:01 UTC
+--- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig 2025-11-13 23:04:07 UTC
+++ electron/shell/browser/ui/inspectable_web_contents_view.cc
-@@ -180,7 +180,7 @@ void InspectableWebContentsView::SetIsDocked(bool dock
+@@ -197,7 +197,7 @@ void InspectableWebContentsView::SetIsDocked(bool dock
params.delegate = devtools_window_delegate_;
params.bounds = inspectable_web_contents()->dev_tools_bounds();
diff --git a/devel/electron37/files/patch-electron_shell_common_api_electron__bindings.cc b/devel/electron37/files/patch-electron_shell_common_api_electron__bindings.cc
index 8261398f36d6..dc703ba6c1bd 100644
--- a/devel/electron37/files/patch-electron_shell_common_api_electron__bindings.cc
+++ b/devel/electron37/files/patch-electron_shell_common_api_electron__bindings.cc
@@ -1,6 +1,6 @@
---- electron/shell/common/api/electron_bindings.cc.orig 2025-07-02 10:12:01 UTC
+--- electron/shell/common/api/electron_bindings.cc.orig 2025-09-08 10:04:35 UTC
+++ electron/shell/common/api/electron_bindings.cc
-@@ -253,7 +253,7 @@ void ElectronBindings::DidReceiveMemoryDump(
+@@ -256,7 +256,7 @@ void ElectronBindings::DidReceiveMemoryDump(
if (target_pid == dump.pid()) {
auto dict = gin_helper::Dictionary::CreateEmpty(isolate);
const auto& osdump = dump.os_dump();
diff --git a/devel/electron37/files/patch-electron_shell_common_node__bindings.cc b/devel/electron37/files/patch-electron_shell_common_node__bindings.cc
index 753e0a45b250..965f35e644dc 100644
--- a/devel/electron37/files/patch-electron_shell_common_node__bindings.cc
+++ b/devel/electron37/files/patch-electron_shell_common_node__bindings.cc
@@ -1,6 +1,6 @@
---- electron/shell/common/node_bindings.cc.orig 2025-08-13 14:21:20 UTC
+--- electron/shell/common/node_bindings.cc.orig 2025-10-28 08:06:59 UTC
+++ electron/shell/common/node_bindings.cc
-@@ -47,7 +47,7 @@
+@@ -50,7 +50,7 @@
#include "third_party/electron_node/src/debug_utils.h"
#include "third_party/electron_node/src/module_wrap.h"
@@ -9,7 +9,7 @@
#include "shell/common/crash_keys.h"
#endif
-@@ -162,7 +162,7 @@ void V8FatalErrorCallback(const char* location, const
+@@ -165,7 +165,7 @@ void V8FatalErrorCallback(const char* location, const
void V8FatalErrorCallback(const char* location, const char* message) {
LOG(ERROR) << "Fatal error in V8: " << location << " " << message;
@@ -18,7 +18,7 @@
electron::crash_keys::SetCrashKey("electron.v8-fatal.message", message);
electron::crash_keys::SetCrashKey("electron.v8-fatal.location", location);
#endif
-@@ -184,7 +184,7 @@ void V8OOMErrorCallback(const char* location, const v8
+@@ -187,7 +187,7 @@ void V8OOMErrorCallback(const char* location, const v8
LOG(ERROR) << "OOM detail: " << details.detail;
}
@@ -27,7 +27,7 @@
electron::crash_keys::SetCrashKey("electron.v8-oom.is_heap_oom",
std::to_string(details.is_heap_oom));
if (location) {
-@@ -580,7 +580,7 @@ void NodeBindings::Initialize(v8::Local<v8::Context> c
+@@ -627,7 +627,7 @@ void NodeBindings::Initialize(v8::Local<v8::Context> c
TRACE_EVENT0("electron", "NodeBindings::Initialize");
// Open node's error reporting system for browser process.
diff --git a/devel/electron37/files/patch-electron_spec_api-app-spec.ts b/devel/electron37/files/patch-electron_spec_api-app-spec.ts
index ebcc2de849bd..a647e942305c 100644
--- a/devel/electron37/files/patch-electron_spec_api-app-spec.ts
+++ b/devel/electron37/files/patch-electron_spec_api-app-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec/api-app-spec.ts.orig 2025-08-13 14:21:20 UTC
+--- electron/spec/api-app-spec.ts.orig 2025-11-13 23:04:07 UTC
+++ electron/spec/api-app-spec.ts
@@ -129,11 +129,11 @@ describe('app module', () => {
});
@@ -14,7 +14,7 @@
const languages = app.getPreferredSystemLanguages();
if (languages.length) {
expect(languages).to.not.include('C');
-@@ -196,7 +196,7 @@ describe('app module', () => {
+@@ -202,7 +202,7 @@ describe('app module', () => {
expect(code).to.equal(123, 'exit code should be 123, if you see this please tag @MarshallOfSound');
});
@@ -23,7 +23,7 @@
const electronPath = process.execPath;
const appPath = path.join(fixturesPath, 'api', 'singleton');
appProcess = cp.spawn(electronPath, [appPath]);
-@@ -360,7 +360,7 @@ describe('app module', () => {
+@@ -366,7 +366,7 @@ describe('app module', () => {
});
// GitHub Actions macOS-13 runners used for x64 seem to have a problem with this test.
@@ -32,7 +32,7 @@
const tempFiles = [
path.join(fixturesPath, 'foo.txt'),
path.join(fixturesPath, 'bar.txt'),
-@@ -488,7 +488,7 @@ describe('app module', () => {
+@@ -494,7 +494,7 @@ describe('app module', () => {
// let w = null
// before(function () {
@@ -41,7 +41,7 @@
// this.skip()
// }
// })
-@@ -595,7 +595,7 @@ describe('app module', () => {
+@@ -601,7 +601,7 @@ describe('app module', () => {
describe('app.badgeCount', () => {
const platformIsNotSupported =
(process.platform === 'win32') ||
@@ -50,7 +50,7 @@
const expectedBadgeCount = 42;
-@@ -639,7 +639,7 @@ describe('app module', () => {
+@@ -645,7 +645,7 @@ describe('app module', () => {
});
});
@@ -59,16 +59,16 @@
const isMac = process.platform === 'darwin';
const isWin = process.platform === 'win32';
-@@ -1019,7 +1019,7 @@ describe('app module', () => {
+@@ -1025,7 +1025,7 @@ describe('app module', () => {
});
});
-- ifdescribe(process.platform !== 'linux')('accessibilitySupportEnabled property', () => {
-+ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('accessibilitySupportEnabled property', () => {
+- ifdescribe(process.platform !== 'linux')('accessibility support functionality', () => {
++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('accessibility support functionality', () => {
it('is mutable', () => {
const values = [false, true, false];
const setters: Array<(arg: boolean) => void> = [
-@@ -1233,7 +1233,7 @@ describe('app module', () => {
+@@ -1294,7 +1294,7 @@ describe('app module', () => {
});
});
@@ -77,7 +77,7 @@
let w: BrowserWindow;
before(function () {
-@@ -1368,7 +1368,7 @@ describe('app module', () => {
+@@ -1429,7 +1429,7 @@ describe('app module', () => {
describe('getApplicationNameForProtocol()', () => {
// TODO: Linux CI doesn't have registered http & https handlers
@@ -86,7 +86,7 @@
// We can't expect particular app names here, but these protocols should
// at least have _something_ registered. Except on our Linux CI
// environment apparently.
-@@ -1386,7 +1386,7 @@ describe('app module', () => {
+@@ -1447,7 +1447,7 @@ describe('app module', () => {
});
});
@@ -95,7 +95,7 @@
it('returns promise rejection for a bogus protocol', async function () {
await expect(
app.getApplicationInfoForProtocol('bogus-protocol://')
-@@ -1436,7 +1436,7 @@ describe('app module', () => {
+@@ -1497,7 +1497,7 @@ describe('app module', () => {
});
// FIXME Get these specs running on Linux CI
@@ -104,7 +104,7 @@
const iconPath = path.join(__dirname, 'fixtures/assets/icon.ico');
const sizes = {
small: 16,
-@@ -1518,7 +1518,7 @@ describe('app module', () => {
+@@ -1579,7 +1579,7 @@ describe('app module', () => {
expect(entry.memory).to.have.property('privateBytes').that.is.greaterThan(0);
}
@@ -113,7 +113,7 @@
expect(entry.sandboxed).to.be.a('boolean');
}
-@@ -1592,7 +1592,7 @@ describe('app module', () => {
+@@ -1653,7 +1653,7 @@ describe('app module', () => {
it('succeeds with complete GPUInfo', async () => {
const completeInfo = await getGPUInfo('complete');
@@ -122,7 +122,7 @@
// For linux and macOS complete info is same as basic info
await verifyBasicGPUInfo(completeInfo);
const basicInfo = await getGPUInfo('basic');
-@@ -1616,7 +1616,7 @@ describe('app module', () => {
+@@ -1677,7 +1677,7 @@ describe('app module', () => {
});
});
diff --git a/devel/electron37/files/patch-electron_spec_api-web-contents-spec.ts b/devel/electron37/files/patch-electron_spec_api-web-contents-spec.ts
index 001598b72527..fc85171296ae 100644
--- a/devel/electron37/files/patch-electron_spec_api-web-contents-spec.ts
+++ b/devel/electron37/files/patch-electron_spec_api-web-contents-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-web-contents-spec.ts.orig 2025-08-13 14:21:20 UTC
+--- electron/spec/api-web-contents-spec.ts.orig 2025-11-13 23:04:07 UTC
+++ electron/spec/api-web-contents-spec.ts
-@@ -2797,7 +2797,7 @@ describe('webContents module', () => {
+@@ -2832,7 +2832,7 @@ describe('webContents module', () => {
});
// TODO(codebytere): OOPIF printing is disabled on Linux at the moment due to crashes.
diff --git a/devel/electron37/files/patch-electron_spec_chromium-spec.ts b/devel/electron37/files/patch-electron_spec_chromium-spec.ts
index 629ead59ad59..2d4b6ea82803 100644
--- a/devel/electron37/files/patch-electron_spec_chromium-spec.ts
+++ b/devel/electron37/files/patch-electron_spec_chromium-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec/chromium-spec.ts.orig 2025-08-13 14:21:20 UTC
+--- electron/spec/chromium-spec.ts.orig 2025-09-27 17:30:52 UTC
+++ electron/spec/chromium-spec.ts
@@ -475,13 +475,13 @@ describe('command line switches', () => {
it('should not set an invalid locale', async () => testLocale('asdfkl', `${currentLocale}|${currentSystemLocale}|${currentPreferredLanguages}`));
@@ -18,7 +18,7 @@
});
describe('--remote-debugging-pipe switch', () => {
-@@ -2958,12 +2958,12 @@ describe('font fallback', () => {
+@@ -3213,12 +3213,12 @@ describe('font fallback', () => {
expect(fonts[0].familyName).to.equal('Arial');
} else if (process.platform === 'darwin') {
expect(fonts[0].familyName).to.equal('Helvetica');
@@ -33,7 +33,7 @@
const html = `
<html lang="ja-JP">
<head>
-@@ -3516,7 +3516,7 @@ describe('paste execCommand', () => {
+@@ -3771,7 +3771,7 @@ describe('paste execCommand', () => {
});
});
diff --git a/devel/electron37/files/patch-net_dns_BUILD.gn b/devel/electron37/files/patch-net_dns_BUILD.gn
index e1fd322aea84..2d636dae106c 100644
--- a/devel/electron37/files/patch-net_dns_BUILD.gn
+++ b/devel/electron37/files/patch-net_dns_BUILD.gn
@@ -1,6 +1,6 @@
---- net/dns/BUILD.gn.orig 2025-03-29 00:50:57 UTC
+--- net/dns/BUILD.gn.orig 2025-09-14 14:20:07 UTC
+++ net/dns/BUILD.gn
-@@ -138,7 +138,7 @@ source_set("dns") {
+@@ -140,7 +140,7 @@ source_set("dns") {
"dns_config_service_android.cc",
"dns_config_service_android.h",
]
@@ -9,7 +9,7 @@
sources += [
"dns_config_service_linux.cc",
"dns_config_service_linux.h",
-@@ -172,6 +172,9 @@ source_set("dns") {
+@@ -174,6 +174,9 @@ source_set("dns") {
}
deps = [ "//net:net_deps" ]
@@ -19,7 +19,7 @@
public_deps = [
":dns_client",
-@@ -179,6 +182,7 @@ source_set("dns") {
+@@ -181,6 +184,7 @@ source_set("dns") {
":host_resolver_manager",
":mdns_client",
"//net:net_public_deps",
@@ -27,7 +27,7 @@
]
allow_circular_includes_from = [
-@@ -447,9 +451,9 @@ source_set("tests") {
+@@ -452,9 +456,9 @@ source_set("tests") {
if (is_android) {
sources += [ "dns_config_service_android_unittest.cc" ]
diff --git a/devel/electron37/files/patch-third__party_crabbyavif_BUILD.gn b/devel/electron37/files/patch-third__party_crabbyavif_BUILD.gn
new file mode 100644
index 000000000000..03f918243d1d
--- /dev/null
+++ b/devel/electron37/files/patch-third__party_crabbyavif_BUILD.gn
@@ -0,0 +1,16 @@
+--- third_party/crabbyavif/BUILD.gn.orig 2025-08-25 14:15:51 UTC
++++ third_party/crabbyavif/BUILD.gn
+@@ -190,7 +190,12 @@ rust_static_library("crabbyavif") {
+ "dav1d",
+ "libyuv",
+ "capi",
+- "disable_cfi",
++
++ # TODO: crbug.com/440481923 - Un-comment this once the new rust roll
++ # (http://crrev.com/c/6874449) lands and
++ # https://github.com/webmproject/CrabbyAvif/pull/654 is rolled into
++ # chromium.
++ #"disable_cfi",
+ ]
+
+ # Required for disable_cfi feature.
diff --git a/devel/electron37/files/yarn.lock b/devel/electron37/files/yarn.lock
index a12aa3686643..11e117a506a8 100644
--- a/devel/electron37/files/yarn.lock
+++ b/devel/electron37/files/yarn.lock
@@ -1292,6 +1292,11 @@
resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e"
integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==
+"@xmldom/xmldom@^0.8.11":
+ version "0.8.11"
+ resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.11.tgz#b79de2d67389734c57c52595f7a7305e30c2d608"
+ integrity sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==
+
"@xtuc/ieee754@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
@@ -7280,14 +7285,7 @@ stringify-object@^3.3.0:
is-obj "^1.0.1"
is-regexp "^1.0.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
-strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==