diff --git a/devel/electron38/Makefile.version b/devel/electron38/Makefile.version index cf85cbeee4a5..8662c4961dad 100644 --- a/devel/electron38/Makefile.version +++ b/devel/electron38/Makefile.version @@ -1,2 +1,2 @@ -ELECTRON_VER= 38.8.4 +ELECTRON_VER= 38.8.6 ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//} diff --git a/devel/electron38/distinfo b/devel/electron38/distinfo index 799738e4a1d4..7041d7952864 100644 --- a/devel/electron38/distinfo +++ b/devel/electron38/distinfo @@ -1,27 +1,27 @@ -TIMESTAMP = 1771994837 +TIMESTAMP = 1773740456 SHA256 (electron/chromium-140.0.7339.249.tar.xz.0) = 138fc3e5eb2b5db406a7764a8e287a0d16640f83cbfb452d6e0f54de8eaf65c2 SIZE (electron/chromium-140.0.7339.249.tar.xz.0) = 2000000000 SHA256 (electron/chromium-140.0.7339.249.tar.xz.1) = 0b7ea85268dd4f6aacd0641a48d266eaa2eb9c79f2c528926bfcdc5aee36f1da SIZE (electron/chromium-140.0.7339.249.tar.xz.1) = 2000000000 SHA256 (electron/chromium-140.0.7339.249.tar.xz.2) = 0a2a9977f5f34ac878b63e845ef8fcc52da628d952e83565cb308bc1925f69e8 SIZE (electron/chromium-140.0.7339.249.tar.xz.2) = 331916124 SHA256 (electron/pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92 SIZE (electron/pulseaudio-16.1.tar.gz) = 2763111 SHA256 (electron/yarn-4.12.0.tgz) = bd58d06826ce9542c4cd904fe10bab7bc718ea2cc39a45d9fbd15f2edb45761c SIZE (electron/yarn-4.12.0.tgz) = 1056794 -SHA256 (electron/electron38-38.8.4-node-modules.tar.xz) = 9dd64a6487f3623a6d1fc32c0dd27455946ab5959c88bcdfe3128c5bb8216a33 -SIZE (electron/electron38-38.8.4-node-modules.tar.xz) = 59743931 -SHA256 (electron/electron-electron-v38.8.4_GH0.tar.gz) = 4d01c1560c93b1d4ab61fe57dfbcecc43aff84d090e50fc1919991e97417c3ab -SIZE (electron/electron-electron-v38.8.4_GH0.tar.gz) = 16964524 +SHA256 (electron/electron38-38.8.6-node-modules.tar.xz) = 9dd64a6487f3623a6d1fc32c0dd27455946ab5959c88bcdfe3128c5bb8216a33 +SIZE (electron/electron38-38.8.6-node-modules.tar.xz) = 59743931 +SHA256 (electron/electron-electron-v38.8.6_GH0.tar.gz) = d7d15cf0a7c297af739858327b7255e3f8c37b7f7006fec9d4fae525f18982a1 +SIZE (electron/electron-electron-v38.8.6_GH0.tar.gz) = 16967351 SHA256 (electron/nodejs-node-v22.22.0_GH0.tar.gz) = b7f40aadbf71df0d78a2239f593e4f14bf2f129fd9c5643f024c68ec1b48a854 SIZE (electron/nodejs-node-v22.22.0_GH0.tar.gz) = 129435366 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/electron38/files/patch-electron_filenames.gni b/devel/electron38/files/patch-electron_filenames.gni index f8c4bda94c1f..7ea9c1834746 100644 --- a/devel/electron38/files/patch-electron_filenames.gni +++ b/devel/electron38/files/patch-electron_filenames.gni @@ -1,13 +1,13 @@ ---- electron/filenames.gni.orig 2025-09-02 20:56:04 UTC +--- electron/filenames.gni.orig 2026-03-10 11:28:57 UTC +++ electron/filenames.gni -@@ -238,8 +238,8 @@ filenames = { +@@ -240,8 +240,8 @@ filenames = { "shell/app/command_line_args.h", "shell/app/electron_content_client.cc", "shell/app/electron_content_client.h", - "shell/app/electron_crash_reporter_client.cc", - "shell/app/electron_crash_reporter_client.h", + # "shell/app/electron_crash_reporter_client.cc", + # "shell/app/electron_crash_reporter_client.h", "shell/app/electron_main_delegate.cc", "shell/app/electron_main_delegate.h", "shell/app/node_main.cc", diff --git a/devel/electron38/files/patch-electron_lib_browser_api_power-monitor.ts b/devel/electron38/files/patch-electron_lib_browser_api_power-monitor.ts index 24713c283fe7..77b0639f0f7c 100644 --- a/devel/electron38/files/patch-electron_lib_browser_api_power-monitor.ts +++ b/devel/electron38/files/patch-electron_lib_browser_api_power-monitor.ts @@ -1,11 +1,11 @@ ---- electron/lib/browser/api/power-monitor.ts.orig 2023-08-14 18:19:06 UTC +--- electron/lib/browser/api/power-monitor.ts.orig 2026-03-10 11:28:57 UTC +++ electron/lib/browser/api/power-monitor.ts -@@ -17,7 +17,7 @@ class PowerMonitor extends EventEmitter { - const pm = createPowerMonitor(); +@@ -23,7 +23,7 @@ class PowerMonitor extends EventEmitter implements Ele + pm = createPowerMonitor(); pm.emit = this.emit.bind(this); - if (process.platform === 'linux') { + if (process.platform === 'linux' || process.platform === 'freebsd') { // On Linux, we inhibit shutdown in order to give the app a chance to // decide whether or not it wants to prevent the shutdown. We don't // inhibit the shutdown event unless there's a listener for it. This diff --git a/devel/electron38/files/patch-electron_shell_browser_api_electron__api__power__monitor.cc b/devel/electron38/files/patch-electron_shell_browser_api_electron__api__power__monitor.cc index bca4a85e06ed..626b5194611d 100644 --- a/devel/electron38/files/patch-electron_shell_browser_api_electron__api__power__monitor.cc +++ b/devel/electron38/files/patch-electron_shell_browser_api_electron__api__power__monitor.cc @@ -1,23 +1,23 @@ ---- electron/shell/browser/api/electron_api_power_monitor.cc.orig 2025-09-02 20:56:04 UTC +--- electron/shell/browser/api/electron_api_power_monitor.cc.orig 2026-03-10 11:28:57 UTC +++ electron/shell/browser/api/electron_api_power_monitor.cc -@@ -129,6 +129,11 @@ void PowerMonitor::OnSpeedLimitChange(int speed_limit) +@@ -137,6 +137,11 @@ void PowerMonitor::OnSpeedLimitChange(int speed_limit) gin::DataObjectBuilder(isolate).Set("limit", speed_limit).Build()); } +#if BUILDFLAG(IS_BSD) +void PowerMonitor::SetListeningForShutdown(bool is_listening) { +} +#endif + #if BUILDFLAG(IS_LINUX) void PowerMonitor::SetListeningForShutdown(bool is_listening) { if (is_listening) { -@@ -154,7 +159,7 @@ gin::ObjectTemplateBuilder PowerMonitor::GetObjectTemp +@@ -162,7 +167,7 @@ gin::ObjectTemplateBuilder PowerMonitor::GetObjectTemp auto builder = gin_helper::EventEmitterMixin::GetObjectTemplateBuilder( isolate); -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) builder.SetMethod("setListeningForShutdown", &PowerMonitor::SetListeningForShutdown); #endif diff --git a/devel/electron38/files/patch-electron_shell_browser_api_electron__api__web__contents.cc b/devel/electron38/files/patch-electron_shell_browser_api_electron__api__web__contents.cc index 687fb6142bd2..676d750ef158 100644 --- a/devel/electron38/files/patch-electron_shell_browser_api_electron__api__web__contents.cc +++ b/devel/electron38/files/patch-electron_shell_browser_api_electron__api__web__contents.cc @@ -1,77 +1,77 @@ ---- electron/shell/browser/api/electron_api_web_contents.cc.orig 2025-09-02 20:56:04 UTC +--- electron/shell/browser/api/electron_api_web_contents.cc.orig 2026-03-10 11:28:57 UTC +++ electron/shell/browser/api/electron_api_web_contents.cc -@@ -162,11 +162,11 @@ +@@ -163,11 +163,11 @@ #include "ui/base/cocoa/defaults_utils.h" #endif -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) #include "ui/linux/linux_ui.h" #endif -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) #include "ui/aura/window.h" #include "ui/gfx/font_render_params.h" #endif -@@ -198,7 +198,7 @@ +@@ -199,7 +199,7 @@ #include "content/public/browser/plugin_service.h" #endif -#if !IS_MAS_BUILD() +#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) #include "chrome/browser/hang_monitor/hang_crash_dump.h" // nogncheck #endif -@@ -572,7 +572,7 @@ std::optional GetCursorBlinkInterval( +@@ -573,7 +573,7 @@ std::optional GetCursorBlinkInterval( ui::TextInsertionCaretBlinkPeriodFromDefaults()); if (system_value) return *system_value; -#elif BUILDFLAG(IS_LINUX) +#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (auto* linux_ui = ui::LinuxUi::instance()) return linux_ui->GetCursorBlinkInterval(); #elif BUILDFLAG(IS_WIN) -@@ -933,7 +933,7 @@ void WebContents::InitWithSessionAndOptions( +@@ -934,7 +934,7 @@ void WebContents::InitWithSessionAndOptions( accept_languages.pop_back(); prefs->accept_languages = accept_languages; -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) // Update font settings. static const gfx::FontRenderParams params( gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(), nullptr)); -@@ -2702,13 +2702,13 @@ void WebContents::ForcefullyCrashRenderer() { +@@ -2718,13 +2718,13 @@ void WebContents::ForcefullyCrashRenderer() { content::RenderProcessHost* rph = rwh->GetProcess(); if (rph) { -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) // A generic |CrashDumpHungChildProcess()| is not implemented for Linux. // Instead we send an explicit IPC to crash on the renderer's IO thread. rph->ForceCrash(); #else // Try to generate a crash report for the hung process. -#if !IS_MAS_BUILD() +#if !IS_MAS_BUILD() && !BUILDFLAG(IS_BSD) CrashDumpHungChildProcess(rph->GetProcess().Handle()); #endif rph->Shutdown(content::RESULT_CODE_HUNG); -@@ -3391,7 +3391,7 @@ void WebContents::Focus() { +@@ -3407,7 +3407,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. -#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) if (owner_window()) owner_window()->Focus(true); #endif -@@ -4270,7 +4270,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() { +@@ -4286,7 +4286,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() { } #endif -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) void WebContents::GetDevToolsWindowWMClass(std::string* name, std::string* class_name) { *class_name = Browser::Get()->GetName(); diff --git a/devel/electron38/files/patch-electron_shell_browser_api_electron__api__web__contents.h b/devel/electron38/files/patch-electron_shell_browser_api_electron__api__web__contents.h index de1cc8f43ef2..cb0de388d5ef 100644 --- a/devel/electron38/files/patch-electron_shell_browser_api_electron__api__web__contents.h +++ b/devel/electron38/files/patch-electron_shell_browser_api_electron__api__web__contents.h @@ -1,11 +1,11 @@ ---- electron/shell/browser/api/electron_api_web_contents.h.orig 2025-08-18 21:37:38 UTC +--- electron/shell/browser/api/electron_api_web_contents.h.orig 2026-03-10 11:28:57 UTC +++ electron/shell/browser/api/electron_api_web_contents.h -@@ -743,7 +743,7 @@ class WebContents final : public ExclusiveAccessContex +@@ -744,7 +744,7 @@ class WebContents final : public ExclusiveAccessContex #if defined(TOOLKIT_VIEWS) && !BUILDFLAG(IS_MAC) ui::ImageModel GetDevToolsWindowIcon() override; #endif -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) void GetDevToolsWindowWMClass(std::string* name, std::string* class_name) override; #endif diff --git a/devel/electron38/files/patch-electron_shell_browser_browser.cc b/devel/electron38/files/patch-electron_shell_browser_browser.cc index d4c7f912e1c6..b9c355618bb1 100644 --- a/devel/electron38/files/patch-electron_shell_browser_browser.cc +++ b/devel/electron38/files/patch-electron_shell_browser_browser.cc @@ -1,11 +1,11 @@ ---- electron/shell/browser/browser.cc.orig 2025-01-29 20:10:57 UTC +--- electron/shell/browser/browser.cc.orig 2026-03-10 11:28:57 UTC +++ electron/shell/browser/browser.cc -@@ -71,7 +71,7 @@ Browser* Browser::Get() { - return ElectronBrowserMainParts::Get()->browser(); +@@ -96,7 +96,7 @@ bool Browser::IsValidProtocolScheme(const std::string& + return true; } -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) void Browser::Focus(gin::Arguments* args) { // Focus on the first visible window. for (auto* const window : WindowList::GetWindows()) { diff --git a/devel/electron38/files/patch-electron_shell_browser_browser.h b/devel/electron38/files/patch-electron_shell_browser_browser.h index 9d81a52e3348..e7160c3aa6d9 100644 --- a/devel/electron38/files/patch-electron_shell_browser_browser.h +++ b/devel/electron38/files/patch-electron_shell_browser_browser.h @@ -1,24 +1,24 @@ ---- electron/shell/browser/browser.h.orig 2025-08-13 14:21:20 UTC +--- electron/shell/browser/browser.h.orig 2026-03-10 11:28:57 UTC +++ electron/shell/browser/browser.h -@@ -147,7 +147,7 @@ class Browser : private WindowListObserver { +@@ -151,7 +151,7 @@ class Browser : private WindowListObserver { std::u16string GetApplicationNameForProtocol(const GURL& url); -#if !BUILDFLAG(IS_LINUX) +#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_BSD) // get the name, icon and path for an application v8::Local GetApplicationInfoForProtocol(v8::Isolate* isolate, const GURL& url); -@@ -275,10 +275,10 @@ class Browser : private WindowListObserver { +@@ -279,10 +279,10 @@ class Browser : private WindowListObserver { PCWSTR GetAppUserModelID(); #endif // BUILDFLAG(IS_WIN) -#if BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // Whether Unity launcher is running. bool IsUnityRunning(); -#endif // BUILDFLAG(IS_LINUX) +#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) // Tell the application to open a file. bool OpenFile(const std::string& file_path); diff --git a/devel/electron38/files/patch-electron_spec_api-app-spec.ts b/devel/electron38/files/patch-electron_spec_api-app-spec.ts index b929d969aa83..6e99aa52004f 100644 --- a/devel/electron38/files/patch-electron_spec_api-app-spec.ts +++ b/devel/electron38/files/patch-electron_spec_api-app-spec.ts @@ -1,133 +1,133 @@ ---- electron/spec/api-app-spec.ts.orig 2025-11-13 22:57:06 UTC +--- electron/spec/api-app-spec.ts.orig 2026-03-10 11:28:57 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'); @@ -202,7 +202,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]); @@ -366,7 +366,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'), @@ -494,7 +494,7 @@ describe('app module', () => { // let w = null // before(function () { - // if (process.platform !== 'linux') { + // if (process.platform !== 'linux' && process.platform !== 'freebsd') { // this.skip() // } // }) @@ -601,7 +601,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; @@ -645,7 +645,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'; @@ -1025,7 +1025,7 @@ describe('app module', () => { }); }); - 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> = [ @@ -1294,7 +1294,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 () { @@ -1429,7 +1429,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. @@ -1447,7 +1447,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://') -@@ -1497,7 +1497,7 @@ describe('app module', () => { +@@ -1520,7 +1520,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, -@@ -1579,7 +1579,7 @@ describe('app module', () => { +@@ -1602,7 +1602,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'); } -@@ -1653,7 +1653,7 @@ describe('app module', () => { +@@ -1676,7 +1676,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'); -@@ -1677,7 +1677,7 @@ describe('app module', () => { +@@ -1700,7 +1700,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'; diff --git a/devel/electron38/files/patch-electron_spec_chromium-spec.ts b/devel/electron38/files/patch-electron_spec_chromium-spec.ts index 1c7a9ecf6c0b..c823fb0b1c8b 100644 --- a/devel/electron38/files/patch-electron_spec_chromium-spec.ts +++ b/devel/electron38/files/patch-electron_spec_chromium-spec.ts @@ -1,44 +1,44 @@ ---- electron/spec/chromium-spec.ts.orig 2025-09-27 23:16:33 UTC +--- electron/spec/chromium-spec.ts.orig 2026-03-10 11:28:57 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}`)); const lcAll = String(process.env.LC_ALL); - ifit(process.platform === 'linux')('current process has a valid LC_ALL env', async () => { + ifit(process.platform === 'linux' || process.platform === 'freebsd')('current process has a valid LC_ALL env', async () => { // The LC_ALL env should not be set to DOM locale string. expect(lcAll).to.not.equal(app.getLocale()); }); - ifit(process.platform === 'linux')('should not change LC_ALL', async () => testLocale('fr', lcAll, true)); - ifit(process.platform === 'linux')('should not change LC_ALL when setting invalid locale', async () => testLocale('asdfkl', lcAll, true)); - ifit(process.platform === 'linux')('should not change LC_ALL when --lang is not set', async () => testLocale('', lcAll, true)); + ifit(process.platform === 'linux' || process.platform === 'freebsd')('should not change LC_ALL', async () => testLocale('fr', lcAll, true)); + ifit(process.platform === 'linux' || process.platform === 'freebsd')('should not change LC_ALL when setting invalid locale', async () => testLocale('asdfkl', lcAll, true)); + ifit(process.platform === 'linux' || process.platform === 'freebsd')('should not change LC_ALL when --lang is not set', async () => testLocale('', lcAll, true)); }); describe('--remote-debugging-pipe switch', () => { -@@ -3220,12 +3220,12 @@ describe('font fallback', () => { +@@ -3303,12 +3303,12 @@ describe('font fallback', () => { expect(fonts[0].familyName).to.equal('Arial'); } else if (process.platform === 'darwin') { expect(fonts[0].familyName).to.equal('Helvetica'); - } else if (process.platform === 'linux') { + } else if (process.platform === 'linux' || process.platform === 'freebsd') { expect(fonts[0].familyName).to.equal('DejaVu Sans (Fontations)'); } // I think this depends on the distro? We don't specify a default. }); - ifit(process.platform !== 'linux')('should fall back to Japanese font for sans-serif Japanese script', async function () { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should fall back to Japanese font for sans-serif Japanese script', async function () { const html = ` -@@ -3777,7 +3777,7 @@ describe('paste execCommand', () => { +@@ -3860,7 +3860,7 @@ describe('paste execCommand', () => { }); }); -ifdescribe((process.platform !== 'linux' || app.isUnityRunning()))('navigator.setAppBadge/clearAppBadge', () => { +ifdescribe(((process.platform !== 'linux' && process.platform !== 'freebsd') || app.isUnityRunning()))('navigator.setAppBadge/clearAppBadge', () => { let w: BrowserWindow; const expectedBadgeCount = 42;