diff --git a/devel/electron39/Makefile.version b/devel/electron39/Makefile.version index c18725a4e55f..d269dac285cc 100644 --- a/devel/electron39/Makefile.version +++ b/devel/electron39/Makefile.version @@ -1,2 +1,2 @@ -ELECTRON_VER= 39.8.8 +ELECTRON_VER= 39.8.9 ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//} diff --git a/devel/electron39/distinfo b/devel/electron39/distinfo index 8ddefcebe2a5..1b2a6b85a533 100644 --- a/devel/electron39/distinfo +++ b/devel/electron39/distinfo @@ -1,27 +1,27 @@ -TIMESTAMP = 1776565788 +TIMESTAMP = 1777080658 SHA256 (electron/chromium-142.0.7444.265.tar.xz.0) = 54ca3cf92f6a207a4e1b46fe016da7d515097f999b5e53ba4201adc906ae383e SIZE (electron/chromium-142.0.7444.265.tar.xz.0) = 2000000000 SHA256 (electron/chromium-142.0.7444.265.tar.xz.1) = 289722408b81d862eb63f98cf47516308add8e18f5d62d2455c98942a2ebface SIZE (electron/chromium-142.0.7444.265.tar.xz.1) = 2000000000 SHA256 (electron/chromium-142.0.7444.265.tar.xz.2) = fcce594020d7120080cd9b4a6af385983c8980dfdd3f72405b31b11fad41ffd5 SIZE (electron/chromium-142.0.7444.265.tar.xz.2) = 227650760 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/electron39-39.8.8-node-modules.tar.xz) = 17ab1f66434124efa142c546af69b55adb35b2ebcedce939dcb75b45d0e7a860 -SIZE (electron/electron39-39.8.8-node-modules.tar.xz) = 60007861 -SHA256 (electron/electron-electron-v39.8.8_GH0.tar.gz) = 65fd86cfb237942730d86a257beec9fb7665633f1bfa6ce4ba61b568baa57ba3 -SIZE (electron/electron-electron-v39.8.8_GH0.tar.gz) = 17216407 +SHA256 (electron/electron39-39.8.9-node-modules.tar.xz) = 17ab1f66434124efa142c546af69b55adb35b2ebcedce939dcb75b45d0e7a860 +SIZE (electron/electron39-39.8.9-node-modules.tar.xz) = 60007861 +SHA256 (electron/electron-electron-v39.8.9_GH0.tar.gz) = f7e8e04c7c90d9ee81532a181bc754b2673f7407662fc2183aec99fe9d04bfc8 +SIZE (electron/electron-electron-v39.8.9_GH0.tar.gz) = 17271747 SHA256 (electron/nodejs-node-v22.22.1_GH0.tar.gz) = 4d9ebbac6ba3f9610fdd5449274794a3b32305b33ca6f2fd476ac139024015c6 SIZE (electron/nodejs-node-v22.22.1_GH0.tar.gz) = 129747267 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/electron39/files/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc b/devel/electron39/files/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc index 52d4045eed4c..9bcef0b7cb7b 100644 --- a/devel/electron39/files/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc +++ b/devel/electron39/files/patch-components_password__manager_core_browser_password__manual__fallback__flow.cc @@ -1,29 +1,29 @@ ---- components/password_manager/core/browser/password_manual_fallback_flow.cc.orig 2025-10-21 20:19:54 UTC +--- components/password_manager/core/browser/password_manual_fallback_flow.cc.orig 2026-04-25 01:34:30 UTC +++ components/password_manager/core/browser/password_manual_fallback_flow.cc @@ -46,7 +46,7 @@ std::u16string GetUsernameFromLabel(const std::u16stri } #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) // Returns the password form corresponding to the `payload` data. In most // cases there is only one such form stored, but having more than one or no // forms is also possible. If there is more than one form, showing any of them -@@ -304,7 +304,7 @@ void PasswordManualFallbackFlow::DidAcceptSuggestion( +@@ -305,7 +305,7 @@ void PasswordManualFallbackFlow::DidAcceptSuggestion( } case autofill::SuggestionType::kViewPasswordDetails: { #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) std::optional credentials = GetCorrespondingPasswordForm( suggestion.GetPayload(), -@@ -440,7 +440,7 @@ void PasswordManualFallbackFlow::EnsureCrossDomainPass +@@ -441,7 +441,7 @@ void PasswordManualFallbackFlow::EnsureCrossDomainPass const Suggestion::PasswordSuggestionDetails& payload, base::OnceClosure on_allowed) { #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \ - BUILDFLAG(IS_CHROMEOS) + BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) if (payload.is_cross_domain) { CHECK(payload.display_signon_realm); cross_domain_confirmation_popup_controller_ = diff --git a/devel/electron39/files/patch-electron_BUILD.gn b/devel/electron39/files/patch-electron_BUILD.gn index 5a1697e83357..260652f065f5 100644 --- a/devel/electron39/files/patch-electron_BUILD.gn +++ b/devel/electron39/files/patch-electron_BUILD.gn @@ -1,62 +1,62 @@ ---- electron/BUILD.gn.orig 2026-02-13 02:35:12 UTC +--- electron/BUILD.gn.orig 2026-04-20 22:23:46 UTC +++ electron/BUILD.gn -@@ -548,7 +548,7 @@ source_set("electron_lib") { +@@ -552,7 +552,7 @@ source_set("electron_lib") { defines += [ "GDK_DISABLE_DEPRECATION_WARNINGS" ] } - if (!is_mas_build) { + if (!is_mas_build && !is_bsd) { deps += [ "//components/crash/core/app", "//components/crash/core/browser", -@@ -646,6 +646,12 @@ source_set("electron_lib") { +@@ -650,6 +650,12 @@ source_set("electron_lib") { cflags_objcc = [ "-fobjc-weak" ] } } + if (is_bsd) { + sources -= [ + "shell/common/crash_keys.cc", + "shell/common/crash_keys.h", + ] + } if (is_linux) { libs = [ "xshmfence" ] deps += [ -@@ -1229,7 +1235,7 @@ if (is_mac) { +@@ -1233,7 +1239,7 @@ if (is_mac) { ":electron_lib", ":electron_win32_resources", ":packed_resources", - "//components/crash/core/app", + # "//components/crash/core/app", "//content:sandbox_helper_win", "//electron/buildflags", "//third_party/electron_node:libnode", -@@ -1256,7 +1262,7 @@ if (is_mac) { +@@ -1260,7 +1266,7 @@ if (is_mac) { public_deps = [ "//tools/v8_context_snapshot" ] } - if (is_linux) { + if (is_linux && !is_bsd) { data_deps += [ "//components/crash/core/app:chrome_crashpad_handler" ] } -@@ -1323,7 +1329,7 @@ if (is_mac) { +@@ -1327,7 +1333,7 @@ if (is_mac) { configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ] } - if (is_linux) { + if (is_linux && !is_bsd) { deps += [ "//sandbox/linux:chrome_sandbox" ] } } -@@ -1444,7 +1450,9 @@ dist_zip("electron_dist_zip") { +@@ -1448,7 +1454,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/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc b/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc index 4153cf2df148..3c41636af3f6 100644 --- a/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc +++ b/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc @@ -1,11 +1,11 @@ ---- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2026-04-07 06:15:27 UTC +--- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2026-04-20 22:23:46 UTC +++ electron/shell/browser/ui/inspectable_web_contents.cc -@@ -573,7 +573,7 @@ void InspectableWebContents::LoadCompleted() { +@@ -570,7 +570,7 @@ void InspectableWebContents::LoadCompleted() { dock_state_ = "right"; } } -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) auto* api_web_contents = api::WebContents::From(GetWebContents()); if (api_web_contents) { auto* win = diff --git a/devel/electron39/files/patch-electron_spec_api-web-contents-spec.ts b/devel/electron39/files/patch-electron_spec_api-web-contents-spec.ts index bf30e556ac27..4400a27d59cd 100644 --- a/devel/electron39/files/patch-electron_spec_api-web-contents-spec.ts +++ b/devel/electron39/files/patch-electron_spec_api-web-contents-spec.ts @@ -1,11 +1,20 @@ ---- electron/spec/api-web-contents-spec.ts.orig 2025-12-03 04:41:24 UTC +--- electron/spec/api-web-contents-spec.ts.orig 2026-04-20 22:23:46 UTC +++ electron/spec/api-web-contents-spec.ts -@@ -2888,7 +2888,7 @@ describe('webContents module', () => { +@@ -1244,7 +1244,7 @@ describe('webContents module', () => { + // back to OpenFolder() which does a blocking DirectoryExists() on the UI + // thread (pre-existing behavior). Workspace-gating is covered by the test + // above. +- ifit(process.platform !== 'linux')('reveals paths under a registered workspace folder without executing them', async () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('reveals paths under a registered workspace folder without executing them', async () => { + const w = new BrowserWindow({ show: false }); + await openDevTools(w); + +@@ -2950,7 +2950,7 @@ describe('webContents module', () => { }); // TODO(codebytere): OOPIF printing is disabled on Linux at the moment due to crashes. - ifit(process.platform !== 'linux')('can print cross-origin iframes', async () => { + ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('can print cross-origin iframes', async () => { server = http.createServer((_, res) => { res.writeHead(200); res.end(`