git: 181f7554dda6 - main - devel/electron37: update to 37.3.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 18 Aug 2025 04:54:52 UTC
The branch main has been updated by tagattie:
URL: https://cgit.FreeBSD.org/ports/commit/?id=181f7554dda66a91152c35cfb22c304f25feda82
commit 181f7554dda66a91152c35cfb22c304f25feda82
Author: Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2025-08-18 04:52:59 +0000
Commit: Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2025-08-18 04:54:45 +0000
devel/electron37: update to 37.3.0
Changelog: https://github.com/electron/electron/releases/tag/v37.3.0
Reported by: GitHub (watch releases)
---
devel/electron37/Makefile | 18 +++++++--
devel/electron37/Makefile.version | 2 +-
devel/electron37/distinfo | 22 ++++++-----
devel/electron37/files/package.json | 1 -
...lectron_shell_browser_api_electron__api__app.cc | 16 ++++----
...hell_browser_api_electron__api__base__window.cc | 6 +--
...shell_browser_api_electron__api__base__window.h | 6 +--
.../files/patch-electron_shell_browser_browser.h | 6 +--
...electron_shell_browser_native__window__views.cc | 42 ++++++++++-----------
...-electron_shell_browser_native__window__views.h | 6 +--
.../patch-electron_shell_common_node__bindings.cc | 4 +-
.../files/patch-electron_spec_api-app-spec.ts | 43 +++++++++++++---------
.../patch-electron_spec_api-browser-window-spec.ts | 26 ++++++-------
...patch-electron_spec_api-utility-process-spec.ts | 6 +--
.../patch-electron_spec_api-web-contents-spec.ts | 4 +-
.../files/patch-electron_spec_chromium-spec.ts | 4 +-
devel/electron37/files/yarn.lock | 5 ---
17 files changed, 117 insertions(+), 100 deletions(-)
diff --git a/devel/electron37/Makefile b/devel/electron37/Makefile
index 28de212fe821..5ce4c11b17e5 100644
--- a/devel/electron37/Makefile
+++ b/devel/electron37/Makefile
@@ -4,13 +4,17 @@ DISTVERSION= ${ELECTRON_VER}
PULSEMV= 16
PULSEV= ${PULSEMV}.1
CATEGORIES= devel
-MASTER_SITES= https://commondatastorage.googleapis.com/chromium-browser-official/:chromium \
+MASTER_SITES= https://github.com/tagattie/FreeBSD-Electron/releases/download/v37.3.0/:chromium \
https://freedesktop.org/software/pulseaudio/releases/:pulseaudio
PKGNAMESUFFIX= ${ELECTRON_VER_MAJOR}
-DISTFILES= chromium-${CHROMIUM_VER}${EXTRACT_SUFX}:chromium \
+DISTFILES= chromium-${CHROMIUM_VER}${EXTRACT_SUFX}.0:chromium \
+ chromium-${CHROMIUM_VER}${EXTRACT_SUFX}.1:chromium \
+ chromium-${CHROMIUM_VER}${EXTRACT_SUFX}.2:chromium \
pulseaudio-${PULSEV}.tar.gz:pulseaudio \
electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX}:prefetch
DIST_SUBDIR= ${PORTNAME}
+EXTRACT_ONLY= chromium-${CHROMIUM_VER}${EXTRACT_SUFX} \
+ ${DISTFILES:C/:[^:]+$//:C/chromium-${CHROMIUM_VER}${EXTRACT_SUFX}\.[0-9]//}
MAINTAINER= tagattie@FreeBSD.org
COMMENT= Build cross-platform desktop apps with JavaScript, HTML, and CSS
@@ -220,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.185
+CHROMIUM_VER= 138.0.7204.224
# See ${WRKSRC}/electron/DEPS for NODE_VER
-NODE_VER= 22.17.1
+NODE_VER= 22.18.0
# See ${WRKSRC}/electron/DEPS for NAN_VER
NAN_VER= e14bdcd1f72d62bca1d541b66da43130384ec213
# See ${WRKSRC}/electron/DEPS for SQUIRREL_MAC_VER
@@ -320,6 +324,12 @@ pre-fetch:
${RM} -r ${WRKDIR}; \
fi
+pre-extract:
+ @if [ ! -f ${DISTDIR}/${DIST_SUBDIR}/chromium-${CHROMIUM_VER}${EXTRACT_SUFX} ]; then \
+ ${CAT} ${DISTDIR}/${DIST_SUBDIR}/chromium-${CHROMIUM_VER}${EXTRACT_SUFX}.? > \
+ ${DISTDIR}/${DIST_SUBDIR}/chromium-${CHROMIUM_VER}${EXTRACT_SUFX}; \
+ fi
+
post-extract:
# Move extracted sources to appropriate locations
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/chromium-${CHROMIUM_VER} ${WRKSRC}
diff --git a/devel/electron37/Makefile.version b/devel/electron37/Makefile.version
index 63bad097aa86..1643dd117eff 100644
--- a/devel/electron37/Makefile.version
+++ b/devel/electron37/Makefile.version
@@ -1,2 +1,2 @@
-ELECTRON_VER= 37.2.6
+ELECTRON_VER= 37.3.0
ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//}
diff --git a/devel/electron37/distinfo b/devel/electron37/distinfo
index c1986ed2ee06..b309c2f50537 100644
--- a/devel/electron37/distinfo
+++ b/devel/electron37/distinfo
@@ -1,14 +1,18 @@
-TIMESTAMP = 1754602115
-SHA256 (electron/chromium-138.0.7204.185.tar.xz) = b788c781706cfe099413eb52a19718deb6a077e725af7474d064bde3fb13413b
-SIZE (electron/chromium-138.0.7204.185.tar.xz) = 7274579784
+TIMESTAMP = 1755380758
+SHA256 (electron/chromium-138.0.7204.224.tar.xz.0) = 13050324d4260aa3f54e289036837a34ed07822452036a0bc6c51f54a3162472
+SIZE (electron/chromium-138.0.7204.224.tar.xz.0) = 2000000000
+SHA256 (electron/chromium-138.0.7204.224.tar.xz.1) = 208c88ddd1874ed09761aa865b4c28d9e2ece2426f0ad71f9d11361194120469
+SIZE (electron/chromium-138.0.7204.224.tar.xz.1) = 2000000000
+SHA256 (electron/chromium-138.0.7204.224.tar.xz.2) = 26ff0135621e9ef07d13f3eb0cfa4d96a353fbf15af3fab4a9a8cfc81892545c
+SIZE (electron/chromium-138.0.7204.224.tar.xz.2) = 273467888
SHA256 (electron/pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92
SIZE (electron/pulseaudio-16.1.tar.gz) = 2763111
-SHA256 (electron/electron-yarn-cache-37.2.6.tar.xz) = 156bcfdc1d2066a4e3639d76851884f446942aa05a371cbf4b6f43381fed497b
-SIZE (electron/electron-yarn-cache-37.2.6.tar.xz) = 30485132
-SHA256 (electron/electron-electron-v37.2.6_GH0.tar.gz) = 00af33600a5ba24f3b3d737e878f6c7b4c41bd68d4dca51a8deb8ebab2de8a5c
-SIZE (electron/electron-electron-v37.2.6_GH0.tar.gz) = 15830486
-SHA256 (electron/nodejs-node-v22.17.1_GH0.tar.gz) = 7a1dbcd53b7152df5592624698f987fd626d9240c33d59dfef13812e4c168eb2
-SIZE (electron/nodejs-node-v22.17.1_GH0.tar.gz) = 123061071
+SHA256 (electron/electron-yarn-cache-37.3.0.tar.xz) = 7823d2fceaf2aac5bb0b342866049b0dfdeca98a65ac00559abfaff47bdba536
+SIZE (electron/electron-yarn-cache-37.3.0.tar.xz) = 30480408
+SHA256 (electron/electron-electron-v37.3.0_GH0.tar.gz) = 3dafe62b05fad97613a0a5605d72e16da2bad7ebfcda841d55c4ceb4001d2f6d
+SIZE (electron/electron-electron-v37.3.0_GH0.tar.gz) = 15833154
+SHA256 (electron/nodejs-node-v22.18.0_GH0.tar.gz) = f0f7022d2bcf1e286a42ccf46bf184e67e469daa83ecd9fda2326e872bab7aa0
+SIZE (electron/nodejs-node-v22.18.0_GH0.tar.gz) = 123027912
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 4a3a1d78f04b..bb15faa1f136 100644
--- a/devel/electron37/files/package.json
+++ b/devel/electron37/files/package.json
@@ -18,7 +18,6 @@
"@types/semver": "^7.5.8",
"@types/stream-json": "^1.7.7",
"@types/temp": "^0.9.4",
- "@types/webpack-env": "^1.18.5",
"@typescript-eslint/eslint-plugin": "^8.7.0",
"@typescript-eslint/parser": "^8.7.0",
"buffer": "^6.0.3",
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 6cd6bc221472..4f6486828120 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-07-02 10:12:01 UTC
+--- electron/shell/browser/api/electron_api_app.cc.orig 2025-08-13 14:21:20 UTC
+++ electron/shell/browser/api/electron_api_app.cc
@@ -96,7 +96,7 @@
#include "shell/common/process_util.h"
@@ -9,7 +9,7 @@
#include "base/nix/scoped_xdg_activation_token_injector.h"
#include "base/nix/xdg_util.h"
#endif
-@@ -420,7 +420,7 @@ bool NotificationCallbackWrapper(
+@@ -423,7 +423,7 @@ bool NotificationCallbackWrapper(
base::CommandLine cmd,
const base::FilePath& cwd,
const std::vector<uint8_t> additional_data) {
@@ -18,7 +18,7 @@
// Set the global activation token sent as a command line switch by another
// electron app instance. This also removes the switch after use to prevent
// any side effects of leaving it in the command line after this point.
-@@ -607,7 +607,7 @@ void App::OnFinishLaunching(base::Value::Dict launch_i
+@@ -610,7 +610,7 @@ void App::OnFinishLaunching(base::Value::Dict launch_i
}
void App::OnFinishLaunching(base::Value::Dict launch_info) {
@@ -27,7 +27,7 @@
// Set the application name for audio streams shown in external
// applications. Only affects pulseaudio currently.
media::AudioManager::SetGlobalAppName(Browser::Get()->GetName());
-@@ -950,7 +950,7 @@ void App::SetDesktopName(const std::string& desktop_na
+@@ -953,7 +953,7 @@ void App::SetDesktopName(const std::string& desktop_na
}
void App::SetDesktopName(const std::string& desktop_name) {
@@ -36,7 +36,7 @@
auto env = base::Environment::Create();
env->SetVar("CHROME_DESKTOP", desktop_name);
#endif
-@@ -1054,7 +1054,7 @@ bool App::RequestSingleInstanceLock(gin::Arguments* ar
+@@ -1057,7 +1057,7 @@ bool App::RequestSingleInstanceLock(gin::Arguments* ar
base::BindRepeating(NotificationCallbackWrapper, cb));
#endif
@@ -45,7 +45,7 @@
// Read the xdg-activation token and set it in the command line for the
// duration of the notification in order to ensure this is propagated to an
// already running electron app instance if it exists.
-@@ -1350,7 +1350,7 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics
+@@ -1354,7 +1354,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);
-@@ -1732,7 +1732,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
+@@ -1738,7 +1738,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
.SetMethod(
"removeAsDefaultProtocolClient",
base::BindRepeating(&Browser::RemoveAsDefaultProtocolClient, browser))
@@ -63,7 +63,7 @@
.SetMethod(
"getApplicationInfoForProtocol",
base::BindRepeating(&Browser::GetApplicationInfoForProtocol, browser))
-@@ -1790,7 +1790,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
+@@ -1796,7 +1796,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
.SetMethod("getJumpListSettings", &App::GetJumpListSettings)
.SetMethod("setJumpList", &App::SetJumpList)
#endif
diff --git a/devel/electron37/files/patch-electron_shell_browser_api_electron__api__base__window.cc b/devel/electron37/files/patch-electron_shell_browser_api_electron__api__base__window.cc
index bb00052d766a..907f75cb7d15 100644
--- a/devel/electron37/files/patch-electron_shell_browser_api_electron__api__base__window.cc
+++ b/devel/electron37/files/patch-electron_shell_browser_api_electron__api__base__window.cc
@@ -1,4 +1,4 @@
---- electron/shell/browser/api/electron_api_base_window.cc.orig 2025-05-22 22:48:48 UTC
+--- electron/shell/browser/api/electron_api_base_window.cc.orig 2025-08-13 14:21:20 UTC
+++ electron/shell/browser/api/electron_api_base_window.cc
@@ -42,7 +42,7 @@
#include "shell/browser/ui/views/win_frame_view.h"
@@ -18,7 +18,7 @@
static_cast<NativeWindowViews*>(window_.get())
->SetIcon(native_image->image().AsImageSkia());
#endif
-@@ -1091,7 +1091,7 @@ bool BaseWindow::IsSnapped() const {
+@@ -1118,7 +1118,7 @@ v8::Local<v8::Value> BaseWindow::GetAccentColor() cons
}
#endif
@@ -27,7 +27,7 @@
void BaseWindow::SetTitleBarOverlay(const gin_helper::Dictionary& options,
gin_helper::Arguments* args) {
// Ensure WCO is already enabled on this window
-@@ -1342,7 +1342,7 @@ void BaseWindow::BuildPrototype(v8::Isolate* isolate,
+@@ -1371,7 +1371,7 @@ void BaseWindow::BuildPrototype(v8::Isolate* isolate,
.SetMethod("setThumbnailToolTip", &BaseWindow::SetThumbnailToolTip)
.SetMethod("setAppDetails", &BaseWindow::SetAppDetails)
#endif
diff --git a/devel/electron37/files/patch-electron_shell_browser_api_electron__api__base__window.h b/devel/electron37/files/patch-electron_shell_browser_api_electron__api__base__window.h
index 20efa3ef927e..1e4f49baaff2 100644
--- a/devel/electron37/files/patch-electron_shell_browser_api_electron__api__base__window.h
+++ b/devel/electron37/files/patch-electron_shell_browser_api_electron__api__base__window.h
@@ -1,7 +1,7 @@
---- electron/shell/browser/api/electron_api_base_window.h.orig 2025-05-07 07:36:13 UTC
+--- electron/shell/browser/api/electron_api_base_window.h.orig 2025-08-13 14:21:20 UTC
+++ electron/shell/browser/api/electron_api_base_window.h
-@@ -257,7 +257,7 @@ class BaseWindow : public gin_helper::TrackableObject<
- bool IsSnapped() const;
+@@ -259,7 +259,7 @@ class BaseWindow : public gin_helper::TrackableObject<
+ v8::Local<v8::Value> GetAccentColor() const;
#endif
-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
diff --git a/devel/electron37/files/patch-electron_shell_browser_browser.h b/devel/electron37/files/patch-electron_shell_browser_browser.h
index 8abb0580770a..9d81a52e3348 100644
--- a/devel/electron37/files/patch-electron_shell_browser_browser.h
+++ b/devel/electron37/files/patch-electron_shell_browser_browser.h
@@ -1,6 +1,6 @@
---- electron/shell/browser/browser.h.orig 2024-10-22 02:29:46 UTC
+--- electron/shell/browser/browser.h.orig 2025-08-13 14:21:20 UTC
+++ electron/shell/browser/browser.h
-@@ -144,7 +144,7 @@ class Browser : private WindowListObserver {
+@@ -147,7 +147,7 @@ class Browser : private WindowListObserver {
std::u16string GetApplicationNameForProtocol(const GURL& url);
@@ -9,7 +9,7 @@
// get the name, icon and path for an application
v8::Local<v8::Promise> GetApplicationInfoForProtocol(v8::Isolate* isolate,
const GURL& url);
-@@ -272,10 +272,10 @@ class Browser : private WindowListObserver {
+@@ -275,10 +275,10 @@ class Browser : private WindowListObserver {
PCWSTR GetAppUserModelID();
#endif // BUILDFLAG(IS_WIN)
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 c241b765d7e0..a692323fc532 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,6 +1,6 @@
---- electron/shell/browser/native_window_views.cc.orig 2025-08-06 01:20:29 UTC
+--- electron/shell/browser/native_window_views.cc.orig 2025-08-13 14:21:20 UTC
+++ electron/shell/browser/native_window_views.cc
-@@ -51,7 +51,7 @@
+@@ -52,7 +52,7 @@
#include "ui/wm/core/shadow_types.h"
#include "ui/wm/core/window_util.h"
@@ -9,7 +9,7 @@
#include "base/strings/string_util.h"
#include "shell/browser/browser.h"
#include "shell/browser/linux/unity_service.h"
-@@ -285,7 +285,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper:
+@@ -286,7 +286,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper:
params.parent = parent->GetNativeWindow();
params.native_widget = new ElectronDesktopNativeWidgetAura(this);
@@ -18,7 +18,7 @@
std::string name = Browser::Get()->GetName();
// Set WM_WINDOW_ROLE.
params.wm_role_name = "browser-window";
-@@ -310,7 +310,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper:
+@@ -311,7 +311,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper:
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);
-@@ -433,7 +433,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper:
+@@ -432,7 +432,7 @@ NativeWindowViews::NativeWindowViews(const gin_helper:
if (window)
window->AddPreTargetHandler(this);
@@ -36,7 +36,7 @@
// On linux after the widget is initialized we might have to force set the
// bounds if the bounds are smaller than the current display
SetBounds(gfx::Rect(GetPosition(), bounds.size()), false);
-@@ -454,7 +454,7 @@ void NativeWindowViews::SetGTKDarkThemeEnabled(bool us
+@@ -453,7 +453,7 @@ void NativeWindowViews::SetGTKDarkThemeEnabled(bool us
}
void NativeWindowViews::SetGTKDarkThemeEnabled(bool use_dark_theme) {
@@ -45,7 +45,7 @@
if (x11_util::IsX11()) {
const std::string color = use_dark_theme ? "dark" : "light";
auto* connection = x11::Connection::Get();
-@@ -515,7 +515,7 @@ void NativeWindowViews::Show() {
+@@ -514,7 +514,7 @@ void NativeWindowViews::Show() {
NotifyWindowShow();
@@ -54,7 +54,7 @@
if (global_menu_bar_)
global_menu_bar_->OnWindowMapped();
-@@ -531,7 +531,7 @@ void NativeWindowViews::ShowInactive() {
+@@ -530,7 +530,7 @@ void NativeWindowViews::ShowInactive() {
NotifyWindowShow();
@@ -63,7 +63,7 @@
if (global_menu_bar_)
global_menu_bar_->OnWindowMapped();
-@@ -550,7 +550,7 @@ void NativeWindowViews::Hide() {
+@@ -549,7 +549,7 @@ void NativeWindowViews::Hide() {
NotifyWindowHide();
@@ -72,7 +72,7 @@
if (global_menu_bar_)
global_menu_bar_->OnWindowUnmapped();
#endif
-@@ -581,7 +581,7 @@ bool NativeWindowViews::IsEnabled() const {
+@@ -580,7 +580,7 @@ bool NativeWindowViews::IsEnabled() const {
bool NativeWindowViews::IsEnabled() const {
#if BUILDFLAG(IS_WIN)
return ::IsWindowEnabled(GetAcceleratedWidget());
@@ -81,7 +81,7 @@
if (x11_util::IsX11())
return !event_disabler_.get();
NOTIMPLEMENTED();
-@@ -815,7 +815,7 @@ void NativeWindowViews::SetBounds(const gfx::Rect& bou
+@@ -814,7 +814,7 @@ void NativeWindowViews::SetBounds(const gfx::Rect& bou
}
#endif
@@ -90,7 +90,7 @@
// On Linux and Windows the minimum and maximum size should be updated with
// window size when window is not resizable.
if (!resizable_) {
-@@ -1072,7 +1072,7 @@ bool NativeWindowViews::IsClosable() const {
+@@ -1071,7 +1071,7 @@ bool NativeWindowViews::IsClosable() const {
return false;
}
return !(info.fState & MFS_DISABLED);
@@ -99,7 +99,7 @@
return true;
#endif
}
-@@ -1112,7 +1112,7 @@ void NativeWindowViews::Center() {
+@@ -1111,7 +1111,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();
-@@ -1332,7 +1332,7 @@ void NativeWindowViews::SetMenu(ElectronMenuModel* men
+@@ -1336,7 +1336,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();
-@@ -1388,7 +1388,7 @@ void NativeWindowViews::SetParentWindow(NativeWindow*
+@@ -1392,7 +1392,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(
-@@ -1434,7 +1434,7 @@ void NativeWindowViews::SetProgressBar(double progress
+@@ -1438,7 +1438,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);
}
-@@ -1560,7 +1560,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM
+@@ -1564,7 +1564,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 =
-@@ -1658,7 +1658,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC
+@@ -1662,7 +1662,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());
-@@ -1773,7 +1773,7 @@ bool NativeWindowViews::CanMinimize() const {
+@@ -1783,7 +1783,7 @@ bool NativeWindowViews::CanMinimize() const {
bool NativeWindowViews::CanMinimize() const {
#if BUILDFLAG(IS_WIN)
return minimizable_;
@@ -162,7 +162,7 @@
return true;
#endif
}
-@@ -1829,7 +1829,7 @@ void NativeWindowViews::HandleKeyboardEvent(
+@@ -1839,7 +1839,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)
-@@ -1848,7 +1848,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e
+@@ -1858,7 +1858,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 47d4fb90893b..5f2e253fd5e4 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-06 01:20:29 UTC
+--- electron/shell/browser/native_window_views.h.orig 2025-08-13 14:21:20 UTC
+++ electron/shell/browser/native_window_views.h
@@ -26,7 +26,7 @@ namespace electron {
@@ -9,7 +9,7 @@
class GlobalMenuBarX11;
#endif
-@@ -164,7 +164,7 @@ class NativeWindowViews : public NativeWindow,
+@@ -165,7 +165,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
-@@ -250,7 +250,7 @@ class NativeWindowViews : public NativeWindow,
+@@ -254,7 +254,7 @@ class NativeWindowViews : public NativeWindow,
// events from resizing the window.
extensions::SizeConstraints old_size_constraints_;
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 93f950fd62a6..753e0a45b250 100644
--- a/devel/electron37/files/patch-electron_shell_common_node__bindings.cc
+++ b/devel/electron37/files/patch-electron_shell_common_node__bindings.cc
@@ -1,4 +1,4 @@
---- electron/shell/common/node_bindings.cc.orig 2025-07-02 10:12:01 UTC
+--- electron/shell/common/node_bindings.cc.orig 2025-08-13 14:21:20 UTC
+++ electron/shell/common/node_bindings.cc
@@ -47,7 +47,7 @@
#include "third_party/electron_node/src/debug_utils.h"
@@ -27,7 +27,7 @@
electron::crash_keys::SetCrashKey("electron.v8-oom.is_heap_oom",
std::to_string(details.is_heap_oom));
if (location) {
-@@ -581,7 +581,7 @@ void NodeBindings::Initialize(v8::Local<v8::Context> c
+@@ -580,7 +580,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 af8cd3c05eb1..ebcc2de849bd 100644
--- a/devel/electron37/files/patch-electron_spec_api-app-spec.ts
+++ b/devel/electron37/files/patch-electron_spec_api-app-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-app-spec.ts.orig 2025-05-27 16:50:03 UTC
+--- electron/spec/api-app-spec.ts.orig 2025-08-13 14:21:20 UTC
+++ electron/spec/api-app-spec.ts
-@@ -126,11 +126,11 @@ describe('app module', () => {
+@@ -129,11 +129,11 @@ describe('app module', () => {
});
describe('app.getPreferredSystemLanguages()', () => {
@@ -14,7 +14,7 @@
const languages = app.getPreferredSystemLanguages();
if (languages.length) {
expect(languages).to.not.include('C');
-@@ -193,7 +193,7 @@ describe('app module', () => {
+@@ -196,7 +196,7 @@ describe('app module', () => {
expect(code).to.equal(123, 'exit code should be 123, if you see this please tag @MarshallOfSound');
});
@@ -23,7 +23,16 @@
const electronPath = process.execPath;
const appPath = path.join(fixturesPath, 'api', 'singleton');
appProcess = cp.spawn(electronPath, [appPath]);
-@@ -447,7 +447,7 @@ describe('app module', () => {
+@@ -360,7 +360,7 @@ describe('app module', () => {
+ });
+
+ // GitHub Actions macOS-13 runners used for x64 seem to have a problem with this test.
+- ifdescribe(process.platform !== 'linux' && !isMacOSx64)('app.{add|get|clear}RecentDocument(s)', () => {
++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && !isMacOSx64)('app.{add|get|clear}RecentDocument(s)', () => {
+ const tempFiles = [
+ path.join(fixturesPath, 'foo.txt'),
+ path.join(fixturesPath, 'bar.txt'),
+@@ -488,7 +488,7 @@ describe('app module', () => {
// let w = null
// before(function () {
@@ -32,16 +41,16 @@
// this.skip()
// }
// })
-@@ -554,7 +554,7 @@ describe('app module', () => {
+@@ -595,7 +595,7 @@ describe('app module', () => {
describe('app.badgeCount', () => {
const platformIsNotSupported =
- (process.platform === 'win32') ||
-- (process.platform === 'linux' && !app.isUnityRunning());
-+ ((process.platform === 'linux' || process.platform === 'freebsd') && !app.isUnityRunning());
+ (process.platform === 'win32') ||
+- (process.platform === 'linux' && !app.isUnityRunning());
++ (process.platform === 'linux' && !app.isUnityRunning()) || (process.platform === 'freebsd');
const expectedBadgeCount = 42;
-@@ -598,7 +598,7 @@ describe('app module', () => {
+@@ -639,7 +639,7 @@ describe('app module', () => {
});
});
@@ -50,7 +59,7 @@
const isMac = process.platform === 'darwin';
const isWin = process.platform === 'win32';
-@@ -978,7 +978,7 @@ describe('app module', () => {
+@@ -1019,7 +1019,7 @@ describe('app module', () => {
});
});
@@ -59,7 +68,7 @@
it('is mutable', () => {
const values = [false, true, false];
const setters: Array<(arg: boolean) => void> = [
-@@ -1178,7 +1178,7 @@ describe('app module', () => {
+@@ -1233,7 +1233,7 @@ describe('app module', () => {
});
});
@@ -68,7 +77,7 @@
let w: BrowserWindow;
before(function () {
-@@ -1313,7 +1313,7 @@ describe('app module', () => {
+@@ -1368,7 +1368,7 @@ describe('app module', () => {
describe('getApplicationNameForProtocol()', () => {
// TODO: Linux CI doesn't have registered http & https handlers
@@ -77,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.
-@@ -1331,7 +1331,7 @@ describe('app module', () => {
+@@ -1386,7 +1386,7 @@ describe('app module', () => {
});
});
@@ -86,7 +95,7 @@
it('returns promise rejection for a bogus protocol', async function () {
await expect(
app.getApplicationInfoForProtocol('bogus-protocol://')
-@@ -1381,7 +1381,7 @@ describe('app module', () => {
+@@ -1436,7 +1436,7 @@ describe('app module', () => {
});
// FIXME Get these specs running on Linux CI
@@ -95,7 +104,7 @@
const iconPath = path.join(__dirname, 'fixtures/assets/icon.ico');
const sizes = {
small: 16,
-@@ -1463,7 +1463,7 @@ describe('app module', () => {
+@@ -1518,7 +1518,7 @@ describe('app module', () => {
expect(entry.memory).to.have.property('privateBytes').that.is.greaterThan(0);
}
@@ -104,7 +113,7 @@
expect(entry.sandboxed).to.be.a('boolean');
}
-@@ -1537,7 +1537,7 @@ describe('app module', () => {
+@@ -1592,7 +1592,7 @@ describe('app module', () => {
it('succeeds with complete GPUInfo', async () => {
const completeInfo = await getGPUInfo('complete');
@@ -113,7 +122,7 @@
// For linux and macOS complete info is same as basic info
await verifyBasicGPUInfo(completeInfo);
const basicInfo = await getGPUInfo('basic');
-@@ -1561,7 +1561,7 @@ describe('app module', () => {
+@@ -1616,7 +1616,7 @@ describe('app module', () => {
});
});
diff --git a/devel/electron37/files/patch-electron_spec_api-browser-window-spec.ts b/devel/electron37/files/patch-electron_spec_api-browser-window-spec.ts
index a2aaae07511d..7d0ad25633d7 100644
--- a/devel/electron37/files/patch-electron_spec_api-browser-window-spec.ts
+++ b/devel/electron37/files/patch-electron_spec_api-browser-window-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec/api-browser-window-spec.ts.orig 2025-07-22 07:51:00 UTC
+--- electron/spec/api-browser-window-spec.ts.orig 2025-08-13 14:21:20 UTC
+++ electron/spec/api-browser-window-spec.ts
@@ -68,7 +68,7 @@ describe('BrowserWindow module', () => {
}).not.to.throw();
@@ -72,7 +72,7 @@
it('checks normal bounds when minimized', async () => {
const bounds = w.getBounds();
const minimize = once(w, 'minimize');
-@@ -2983,7 +2983,7 @@ describe('BrowserWindow module', () => {
+@@ -3069,7 +3069,7 @@ describe('BrowserWindow module', () => {
describe('BrowserWindow.setOpacity(opacity)', () => {
afterEach(closeAllWindows);
@@ -81,7 +81,7 @@
it('make window with initial opacity', () => {
const w = new BrowserWindow({ show: false, opacity: 0.5 });
expect(w.getOpacity()).to.equal(0.5);
-@@ -3009,7 +3009,7 @@ describe('BrowserWindow module', () => {
+@@ -3095,7 +3095,7 @@ describe('BrowserWindow module', () => {
});
});
@@ -90,7 +90,7 @@
it('sets 1 regardless of parameter', () => {
const w = new BrowserWindow({ show: false });
w.setOpacity(0);
-@@ -3220,7 +3220,7 @@ describe('BrowserWindow module', () => {
+@@ -3306,7 +3306,7 @@ describe('BrowserWindow module', () => {
expect(overlayRectPreMax.height).to.equal(size);
// 'maximize' event is not emitted on Linux in CI.
@@ -99,7 +99,7 @@
const maximize = once(w, 'maximize');
w.show();
w.maximize();
-@@ -3286,7 +3286,7 @@ describe('BrowserWindow module', () => {
+@@ -3372,7 +3372,7 @@ describe('BrowserWindow module', () => {
expect(preMaxHeight).to.equal(size);
// 'maximize' event is not emitted on Linux in CI.
@@ -108,7 +108,7 @@
const maximize = once(w, 'maximize');
w.show();
w.maximize();
-@@ -3951,7 +3951,7 @@ describe('BrowserWindow module', () => {
+@@ -4037,7 +4037,7 @@ describe('BrowserWindow module', () => {
expect(test.nodeTimers).to.equal(true);
expect(test.nodeUrl).to.equal(true);
@@ -117,7 +117,7 @@
expect(test.creationTime).to.be.null('creation time');
expect(test.systemMemoryInfo).to.be.null('system memory info');
} else {
-@@ -4456,7 +4456,7 @@ describe('BrowserWindow module', () => {
+@@ -4542,7 +4542,7 @@ describe('BrowserWindow module', () => {
});
});
@@ -126,7 +126,7 @@
afterEach(closeAllWindows);
it('emits an event when window is maximized', async () => {
const w = new BrowserWindow({ show: false });
-@@ -4727,7 +4727,7 @@ describe('BrowserWindow module', () => {
+@@ -4813,7 +4813,7 @@ describe('BrowserWindow module', () => {
// TODO(zcbenz):
// This test does not run on Linux CI. See:
// https://github.com/electron/electron/issues/28699
@@ -135,7 +135,7 @@
const w = new BrowserWindow({});
const maximize = once(w, 'maximize');
w.maximize();
-@@ -4744,7 +4744,7 @@ describe('BrowserWindow module', () => {
+@@ -4830,7 +4830,7 @@ describe('BrowserWindow module', () => {
});
// TODO(dsanders11): Enable once maximize event works on Linux again on CI
@@ -144,7 +144,7 @@
afterEach(closeAllWindows);
it('should show the window if it is not currently shown', async () => {
const w = new BrowserWindow({ show: false });
-@@ -4781,7 +4781,7 @@ describe('BrowserWindow module', () => {
+@@ -4867,7 +4867,7 @@ describe('BrowserWindow module', () => {
// TODO(dsanders11): Enable once minimize event works on Linux again.
// See https://github.com/electron/electron/issues/28699
@@ -153,7 +153,7 @@
const w = new BrowserWindow();
const minimize = once(w, 'minimize');
w.minimize();
-@@ -5267,7 +5267,7 @@ describe('BrowserWindow module', () => {
+@@ -5353,7 +5353,7 @@ describe('BrowserWindow module', () => {
});
// On Linux there is no "resizable" property of a window.
@@ -162,7 +162,7 @@
const w = new BrowserWindow({ show: false });
expect(w.resizable).to.be.true('resizable');
-@@ -5477,7 +5477,7 @@ describe('BrowserWindow module', () => {
+@@ -5563,7 +5563,7 @@ describe('BrowserWindow module', () => {
});
});
@@ -171,7 +171,7 @@
// Not implemented on Linux.
afterEach(closeAllWindows);
-@@ -6678,7 +6678,7 @@ describe('BrowserWindow module', () => {
+@@ -6764,7 +6764,7 @@ describe('BrowserWindow module', () => {
describe('"transparent" option', () => {
afterEach(closeAllWindows);
diff --git a/devel/electron37/files/patch-electron_spec_api-utility-process-spec.ts b/devel/electron37/files/patch-electron_spec_api-utility-process-spec.ts
index eab6d0294f3a..ef027ac5f72f 100644
--- a/devel/electron37/files/patch-electron_spec_api-utility-process-spec.ts
+++ b/devel/electron37/files/patch-electron_spec_api-utility-process-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-utility-process-spec.ts.orig 2025-07-02 10:12:01 UTC
+--- electron/spec/api-utility-process-spec.ts.orig 2025-08-13 14:21:20 UTC
+++ electron/spec/api-utility-process-spec.ts
-@@ -487,7 +487,7 @@ describe('utilityProcess module', () => {
+@@ -522,7 +522,7 @@ describe('utilityProcess module', () => {
expect(output).to.include(result);
});
@@ -9,7 +9,7 @@
const message = 'Message from utility process';
const child = utilityProcess.fork(path.join(fixturesPath, 'expose-main-process-module.js'));
await once(child, 'spawn');
-@@ -524,7 +524,7 @@ describe('utilityProcess module', () => {
+@@ -559,7 +559,7 @@ describe('utilityProcess module', () => {
await closeWindow(w);
});
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 91ee421c5a05..001598b72527 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-06-16 21:48:02 UTC
+--- electron/spec/api-web-contents-spec.ts.orig 2025-08-13 14:21:20 UTC
+++ electron/spec/api-web-contents-spec.ts
-@@ -2754,7 +2754,7 @@ describe('webContents module', () => {
+@@ -2797,7 +2797,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 8ae72b65b937..629ead59ad59 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-07-16 19:03:26 UTC
+--- electron/spec/chromium-spec.ts.orig 2025-08-13 14:21:20 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}`));
@@ -33,7 +33,7 @@
const html = `
<html lang="ja-JP">
<head>
-@@ -3515,7 +3515,7 @@ describe('paste execCommand', () => {
+@@ -3516,7 +3516,7 @@ describe('paste execCommand', () => {
});
});
diff --git a/devel/electron37/files/yarn.lock b/devel/electron37/files/yarn.lock
index 05eef81f0ca3..a12aa3686643 100644
--- a/devel/electron37/files/yarn.lock
+++ b/devel/electron37/files/yarn.lock
@@ -1058,11 +1058,6 @@
resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.2.tgz#6dd61e43ef60b34086287f83683a5c1b2dc53d20"
integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==
-"@types/webpack-env@^1.18.5":
- version "1.18.5"
- resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.18.5.tgz#eccda0b04fe024bed505881e2e532f9c119169bf"
- integrity sha512-wz7kjjRRj8/Lty4B+Kr0LN6Ypc/3SymeCCGSbaXp2leH0ZVg/PriNiOwNj4bD4uphI7A8NXS4b6Gl373sfO5mA==
-
"@types/yauzl@^2.9.1":
version "2.10.0"
resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599"