diff --git a/devel/electron37/Makefile.version b/devel/electron37/Makefile.version index fb0b4f428254..56cbb3d33c30 100644 --- a/devel/electron37/Makefile.version +++ b/devel/electron37/Makefile.version @@ -1,2 +1,2 @@ -ELECTRON_VER= 37.7.1 +ELECTRON_VER= 37.8.0 ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//} diff --git a/devel/electron37/distinfo b/devel/electron37/distinfo index 1590627712e0..3e267fd003cd 100644 --- a/devel/electron37/distinfo +++ b/devel/electron37/distinfo @@ -1,25 +1,25 @@ -TIMESTAMP = 1761294863 +TIMESTAMP = 1761726961 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.7.1.tar.xz) = 34a44bb3ceaa38384ab57905ac82eb29f3cb66db5f731479d67b306211916e3d -SIZE (electron/electron-yarn-cache-37.7.1.tar.xz) = 30531168 -SHA256 (electron/electron-electron-v37.7.1_GH0.tar.gz) = 000f23f54e09ddcf34ba13fc40ecda4d93029de94abc41af59a71d8858ce2063 -SIZE (electron/electron-electron-v37.7.1_GH0.tar.gz) = 15848315 +SHA256 (electron/electron-yarn-cache-37.8.0.tar.xz) = 34a44bb3ceaa38384ab57905ac82eb29f3cb66db5f731479d67b306211916e3d +SIZE (electron/electron-yarn-cache-37.8.0.tar.xz) = 30531168 +SHA256 (electron/electron-electron-v37.8.0_GH0.tar.gz) = b32e7f9766a60b96c5454e60d36fa586cd14e5c123fd4336addb7c13f6612b09 +SIZE (electron/electron-electron-v37.8.0_GH0.tar.gz) = 15851977 SHA256 (electron/nodejs-node-v22.20.0_GH0.tar.gz) = 5c2e4ecc6583c5d49f9a9a4473fc267402762fc8e8a7835465919dacd6fdd5d8 SIZE (electron/nodejs-node-v22.20.0_GH0.tar.gz) = 129356712 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 SIZE (electron/Squirrel-Squirrel.Mac-0e5d146ba13101a1302d59ea6e6e0b3cace4ae38_GH0.tar.gz) = 2112918 SHA256 (electron/ReactiveCocoa-ReactiveObjC-74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76_GH0.tar.gz) = 88e65f116c7a06fccedb43970fba63080a57a4e5dc29147d2cdfe1ee58dd0546 SIZE (electron/ReactiveCocoa-ReactiveObjC-74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76_GH0.tar.gz) = 1136238 SHA256 (electron/Mantle-Mantle-78d3966b3c331292ea29ec38661b25df0a245948_GH0.tar.gz) = a365df6d83e0be3cc000b70bd39734d80c28f0d9983ebe44698337a2ca464bb1 SIZE (electron/Mantle-Mantle-78d3966b3c331292ea29ec38661b25df0a245948_GH0.tar.gz) = 62962 SHA256 (electron/EngFlow-reclient-configs-955335c30a752e9ef7bff375baab5e0819b6c00d_GH0.tar.gz) = c148f76220fc41a89ffeaf370c2cc175577be184688b12aa6fec5f8ac6c714c4 SIZE (electron/EngFlow-reclient-configs-955335c30a752e9ef7bff375baab5e0819b6c00d_GH0.tar.gz) = 13014 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..00fd8098ed1c 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,74 +1,74 @@ ---- 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-10-28 08:06:59 UTC +++ electron/shell/browser/api/electron_api_app.cc @@ -96,7 +96,7 @@ #include "shell/common/process_util.h" #endif -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) #include "base/nix/scoped_xdg_activation_token_injector.h" #include "base/nix/xdg_util.h" #endif @@ -423,7 +423,7 @@ bool NotificationCallbackWrapper( base::CommandLine cmd, const base::FilePath& cwd, const std::vector additional_data) { -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // 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. @@ -610,7 +610,7 @@ void App::OnFinishLaunching(base::Value::Dict launch_i } void App::OnFinishLaunching(base::Value::Dict launch_info) { -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // Set the application name for audio streams shown in external // applications. Only affects pulseaudio currently. media::AudioManager::SetGlobalAppName(Browser::Get()->GetName()); @@ -953,7 +953,7 @@ void App::SetDesktopName(const std::string& desktop_na } void App::SetDesktopName(const std::string& desktop_name) { -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) auto env = base::Environment::Create(); env->SetVar("CHROME_DESKTOP", desktop_name); #endif @@ -1057,7 +1057,7 @@ bool App::RequestSingleInstanceLock(gin::Arguments* ar base::BindRepeating(NotificationCallbackWrapper, cb)); #endif -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // 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 App::GetAppMetrics +@@ -1434,7 +1434,7 @@ std::vector App::GetAppMetrics pid_dict.Set("name", process_metric.second->name); } -#if !BUILDFLAG(IS_LINUX) +#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) auto memory_info = process_metric.second->GetMemoryInfo(); auto memory_dict = gin_helper::Dictionary::CreateEmpty(isolate); -@@ -1738,7 +1738,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild +@@ -1818,7 +1818,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild .SetMethod( "removeAsDefaultProtocolClient", base::BindRepeating(&Browser::RemoveAsDefaultProtocolClient, browser)) -#if !BUILDFLAG(IS_LINUX) +#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) .SetMethod( "getApplicationInfoForProtocol", base::BindRepeating(&Browser::GetApplicationInfoForProtocol, browser)) -@@ -1796,7 +1796,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild +@@ -1876,7 +1876,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild .SetMethod("getJumpListSettings", &App::GetJumpListSettings) .SetMethod("setJumpList", &App::SetJumpList) #endif -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) .SetMethod("isUnityRunning", base::BindRepeating(&Browser::IsUnityRunning, browser)) #endif 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,38 +1,38 @@ ---- 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" -#if !IS_MAS_BUILD() +#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) #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; -#if !IS_MAS_BUILD() +#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) 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; } -#if !IS_MAS_BUILD() +#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) 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 c +@@ -627,7 +627,7 @@ void NodeBindings::Initialize(v8::Local c TRACE_EVENT0("electron", "NodeBindings::Initialize"); // Open node's error reporting system for browser process. -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // Get real command line in renderer process forked by zygote. if (browser_env_ != BrowserEnvironment::kBrowser) ElectronCommandLine::InitializeFromCommandLine(); 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..e1ed07cb198d 100644 --- a/devel/electron37/files/patch-electron_spec_api-app-spec.ts +++ b/devel/electron37/files/patch-electron_spec_api-app-spec.ts @@ -1,133 +1,133 @@ ---- electron/spec/api-app-spec.ts.orig 2025-08-13 14:21:20 UTC +--- electron/spec/api-app-spec.ts.orig 2025-10-28 08:06:59 UTC +++ electron/spec/api-app-spec.ts @@ -129,11 +129,11 @@ describe('app module', () => { }); describe('app.getPreferredSystemLanguages()', () => { - ifit(process.platform !== 'linux')('should not be empty', () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not be empty', () => { expect(app.getPreferredSystemLanguages().length).to.not.equal(0); }); - ifit(process.platform === 'linux')('should be empty or contain C entry', () => { + ifit(process.platform === 'linux' || process.platform === 'freebsd')('should be empty or contain C entry', () => { const languages = app.getPreferredSystemLanguages(); if (languages.length) { expect(languages).to.not.include('C'); @@ -196,7 +196,7 @@ describe('app module', () => { expect(code).to.equal(123, 'exit code should be 123, if you see this please tag @MarshallOfSound'); }); - ifit(['darwin', 'linux'].includes(process.platform))('exits gracefully', async function () { + ifit(['darwin', 'linux', 'freebsd'].includes(process.platform))('exits gracefully', async function () { const electronPath = process.execPath; const appPath = path.join(fixturesPath, 'api', 'singleton'); appProcess = cp.spawn(electronPath, [appPath]); @@ -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 () { - // if (process.platform !== 'linux') { + // if (process.platform !== 'linux' && process.platform !== 'freebsd') { // this.skip() // } // }) @@ -595,7 +595,7 @@ describe('app module', () => { describe('app.badgeCount', () => { const platformIsNotSupported = (process.platform === 'win32') || - (process.platform === 'linux' && !app.isUnityRunning()); + (process.platform === 'linux' && !app.isUnityRunning()) || (process.platform === 'freebsd'); const expectedBadgeCount = 42; @@ -639,7 +639,7 @@ describe('app module', () => { }); }); - ifdescribe(process.platform !== 'linux' && !process.mas && (process.platform !== 'darwin' || process.arch === 'arm64'))('app.get/setLoginItemSettings API', function () { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && !process.mas && (process.platform !== 'darwin' || process.arch === 'arm64'))('app.get/setLoginItemSettings API', function () { const isMac = process.platform === 'darwin'; const isWin = process.platform === 'win32'; @@ -1019,7 +1019,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', () => { +@@ -1288,7 +1288,7 @@ describe('app module', () => { }); }); - ifdescribe(process.platform !== 'linux')('select-client-certificate event', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('select-client-certificate event', () => { let w: BrowserWindow; before(function () { -@@ -1368,7 +1368,7 @@ describe('app module', () => { +@@ -1423,7 +1423,7 @@ describe('app module', () => { describe('getApplicationNameForProtocol()', () => { // TODO: Linux CI doesn't have registered http & https handlers - ifit(!(process.env.CI && process.platform === 'linux'))('returns application names for common protocols', function () { + ifit(!(process.env.CI && (process.platform === 'linux' || process.platform === 'freebsd')))('returns application names for common protocols', function () { // 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', () => { +@@ -1441,7 +1441,7 @@ describe('app module', () => { }); }); - ifdescribe(process.platform !== 'linux')('getApplicationInfoForProtocol()', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('getApplicationInfoForProtocol()', () => { it('returns promise rejection for a bogus protocol', async function () { await expect( app.getApplicationInfoForProtocol('bogus-protocol://') -@@ -1436,7 +1436,7 @@ describe('app module', () => { +@@ -1491,7 +1491,7 @@ describe('app module', () => { }); // FIXME Get these specs running on Linux CI - ifdescribe(process.platform !== 'linux')('getFileIcon() API', () => { + ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('getFileIcon() API', () => { const iconPath = path.join(__dirname, 'fixtures/assets/icon.ico'); const sizes = { small: 16, -@@ -1518,7 +1518,7 @@ describe('app module', () => { +@@ -1573,7 +1573,7 @@ describe('app module', () => { expect(entry.memory).to.have.property('privateBytes').that.is.greaterThan(0); } - if (process.platform !== 'linux') { + if (process.platform !== 'linux' && process.platform !== 'freebsd') { expect(entry.sandboxed).to.be.a('boolean'); } -@@ -1592,7 +1592,7 @@ describe('app module', () => { +@@ -1647,7 +1647,7 @@ describe('app module', () => { it('succeeds with complete GPUInfo', async () => { const completeInfo = await getGPUInfo('complete'); - if (process.platform === 'linux') { + if (process.platform === 'linux' || process.platform === 'freebsd') { // 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', () => { +@@ -1671,7 +1671,7 @@ describe('app module', () => { }); }); - ifdescribe(!(process.platform === 'linux' && (process.arch === 'arm64' || process.arch === 'arm')))('sandbox options', () => { + ifdescribe(!((process.platform === 'linux' || process.platform === 'freebsd') && (process.arch === 'arm64' || process.arch === 'arm')))('sandbox options', () => { let appProcess: cp.ChildProcess = null as any; let server: net.Server = null as any; const socketPath = process.platform === 'win32' ? '\\\\.\\pipe\\electron-mixed-sandbox' : '/tmp/electron-mixed-sandbox';