From 5ff73b650bb0507565c6a4e289ef227b5879c88f Mon Sep 17 00:00:00 2001 From: Hiroki Tagato Date: Sun, 9 Nov 2025 23:12:53 +0900 Subject: devel/electron39: Add port: Build cross-platform desktop apps with JavaScript, HTML, and CSS Build cross platform desktop apps with JavaScript, HTML, and CSS. It's easier than you think. If you can build a website, you can build a desktop app. Electron is a framework for creating native applications with web technologies like JavaScript, HTML, and CSS. It takes care of the hard parts so you can focus on the core of your application. WWW: https://electronjs.org/ --- .../patch-chrome_app_chrome__main__delegate.cc | 131 +++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 devel/electron39/files/patch-chrome_app_chrome__main__delegate.cc (limited to 'devel/electron39/files/patch-chrome_app_chrome__main__delegate.cc') diff --git a/devel/electron39/files/patch-chrome_app_chrome__main__delegate.cc b/devel/electron39/files/patch-chrome_app_chrome__main__delegate.cc new file mode 100644 index 000000000000..1841ce32553d --- /dev/null +++ b/devel/electron39/files/patch-chrome_app_chrome__main__delegate.cc @@ -0,0 +1,131 @@ +--- chrome/app/chrome_main_delegate.cc.orig 2025-10-21 20:19:54 UTC ++++ chrome/app/chrome_main_delegate.cc +@@ -105,7 +105,7 @@ + #include "ui/base/ui_base_switches.h" + + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + #include "components/webapps/isolated_web_apps/scheme.h" + #endif + +@@ -184,17 +184,17 @@ + #include "v8/include/v8.h" + #endif + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "base/environment.h" + #endif + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + #include "base/nix/scoped_xdg_activation_token_injector.h" + #include "ui/linux/display_server_utils.h" + #endif + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \ +- BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + #include "chrome/browser/policy/policy_path_parser.h" + #include "components/crash/core/app/crashpad.h" + #endif +@@ -228,7 +228,7 @@ const char* const ChromeMainDelegate::kNonWildcardDoma + #endif + chrome::kChromeSearchScheme, + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ +- BUILDFLAG(IS_MAC) ++ BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD) + webapps::kIsolatedAppScheme, + #endif + content::kChromeDevToolsScheme, content::kChromeUIScheme, +@@ -303,7 +303,7 @@ bool SubprocessNeedsResourceBundle(const std::string& + // and resources loaded. + bool SubprocessNeedsResourceBundle(const std::string& process_type) { + return +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // The zygote process opens the resources for the renderers. + process_type == switches::kZygoteProcess || + #endif +@@ -382,7 +382,7 @@ bool HandleVersionSwitches(const base::CommandLine& co + return false; + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // Show the man page if --help or -h is on the command line. + void HandleHelpSwitches(const base::CommandLine& command_line) { + if (command_line.HasSwitch(switches::kHelp) || +@@ -394,7 +394,7 @@ void HandleHelpSwitches(const base::CommandLine& comma + } + #endif // BUILDFLAG(IS_LINUX) + +-#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) ++#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_BSD) + void SIGTERMProfilingShutdown(int signal) { + content::Profiling::Stop(); + struct sigaction sigact; +@@ -476,7 +476,7 @@ std::optional AcquireProcessSingleton( + // process can be exited. + ChromeProcessSingleton::CreateInstance(user_data_dir); + +-#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 browser process if it exists. +@@ -554,7 +554,7 @@ void InitializeUserDataDir(base::CommandLine* command_ + std::string process_type = + command_line->GetSwitchValueASCII(switches::kProcessType); + +-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // On Linux, Chrome does not support running multiple copies under different + // DISPLAYs, so the profile directory can be specified in the environment to + // support the virtual desktop use-case. +@@ -660,7 +660,7 @@ void RecordMainStartupMetrics(const StartupTimestamps& + #endif + + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \ +- BUILDFLAG(IS_CHROMEOS) ++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) + // Record the startup process creation time on supported platforms. On Android + // this is recorded in ChromeMainDelegateAndroid. + startup_metric_utils::GetCommon().RecordStartupProcessCreationTime( +@@ -819,7 +819,7 @@ std::optional ChromeMainDelegate::PostEarlyInitia + #if BUILDFLAG(IS_OZONE) + // Initialize Ozone platform and add required feature flags as per platform's + // properties. +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + ui::SetOzonePlatformForLinuxIfNeeded(*base::CommandLine::ForCurrentProcess()); + #endif + ui::OzonePlatform::PreEarlyInitialization(); +@@ -976,7 +976,7 @@ void ChromeMainDelegate::CommonEarlyInitialization() { + const bool is_canary_dev = IsCanaryDev(); + const bool emit_crashes = + #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \ +- BUILDFLAG(IS_WIN) ++ BUILDFLAG(IS_WIN) || BUILDFLAG(IS_BSD) + is_canary_dev; + #else + false; +@@ -1124,7 +1124,7 @@ std::optional ChromeMainDelegate::BasicStartupCom + return 0; // Got a --credits switch; exit with a success error code. + } + +-#if BUILDFLAG(IS_LINUX) ++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) + // This will directly exit if the user asked for help. + HandleHelpSwitches(command_line); + #endif +@@ -1437,7 +1437,7 @@ void ChromeMainDelegate::PreSandboxStartup() { + CHECK(!loaded_locale.empty()) << "Locale could not be found for " << locale; + } + +-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) ++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_BSD) + // Zygote needs to call InitCrashReporter() in RunZygote(). + if (process_type != switches::kZygoteProcess && + !command_line.HasSwitch(switches::kDisableCrashpadForTesting)) { -- cgit v1.2.3