aboutsummaryrefslogtreecommitdiff
path: root/devel/electron38/files/patch-content_utility_utility__main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'devel/electron38/files/patch-content_utility_utility__main.cc')
-rw-r--r--devel/electron38/files/patch-content_utility_utility__main.cc124
1 files changed, 124 insertions, 0 deletions
diff --git a/devel/electron38/files/patch-content_utility_utility__main.cc b/devel/electron38/files/patch-content_utility_utility__main.cc
new file mode 100644
index 000000000000..6cf68f75ec3a
--- /dev/null
+++ b/devel/electron38/files/patch-content_utility_utility__main.cc
@@ -0,0 +1,124 @@
+--- content/utility/utility_main.cc.orig 2025-08-26 20:49:50 UTC
++++ content/utility/utility_main.cc
+@@ -39,17 +39,21 @@
+ #include "services/tracing/public/cpp/trace_startup.h"
+ #include "services/video_effects/public/cpp/buildflags.h"
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ #include "base/file_descriptor_store.h"
+ #include "base/files/file_util.h"
+ #include "base/pickle.h"
+ #include "content/child/sandboxed_process_thread_type_handler.h"
++#if !BUILDFLAG(IS_BSD)
+ #include "content/common/gpu_pre_sandbox_hook_linux.h"
++#endif
+ #include "content/public/common/content_descriptor_keys.h"
+ #include "content/utility/speech/speech_recognition_sandbox_hook_linux.h"
+ #include "media/gpu/buildflags.h"
+ #include "media/media_buildflags.h"
++#if !BUILDFLAG(IS_BSD)
+ #include "sandbox/policy/linux/sandbox_linux.h"
++#endif
+ #include "services/audio/audio_sandbox_hook_linux.h"
+ #include "services/network/network_sandbox_hook_linux.h"
+ #include "services/screen_ai/buildflags/buildflags.h"
+@@ -84,7 +88,12 @@
+
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+
+-#if BUILDFLAG(ENABLE_VIDEO_EFFECTS) && BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_BSD)
++#include "sandbox/policy/sandbox.h"
++#include "content/common/gpu_pre_sandbox_hook_bsd.h"
++#endif
++
++#if BUILDFLAG(ENABLE_VIDEO_EFFECTS) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+ #include "services/video_effects/video_effects_sandbox_hook_linux.h" // nogncheck
+ #endif // BUILDFLAG(IS_LINUX)
+
+@@ -121,7 +130,7 @@ sandbox::TargetServices* g_utility_target_services = n
+ sandbox::TargetServices* g_utility_target_services = nullptr;
+ #endif // BUILDFLAG(IS_WIN)
+
+-#if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) && BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+ #include "components/services/on_device_translation/sandbox_hook.h"
+ #endif // BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) && BUILDFLAG(IS_LINUX)
+
+@@ -129,7 +138,7 @@ namespace {
+
+ namespace {
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ std::vector<std::string> GetNetworkContextsParentDirectories() {
+ base::MemoryMappedFile::Region region;
+ base::ScopedFD read_pipe_fd = base::FileDescriptorStore::GetInstance().TakeFD(
+@@ -284,7 +293,7 @@ int UtilityMain(MainFunctionParams parameters) {
+ CHECK(on_device_model::PreSandboxInit());
+ }
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+
+ #if BUILDFLAG(USE_LINUX_VIDEO_ACCELERATION) && BUILDFLAG(USE_VAAPI)
+ // Regardless of the sandbox status, the VaapiWrapper needs to be initialized
+@@ -299,7 +308,10 @@ int UtilityMain(MainFunctionParams parameters) {
+ // thread type change in ChildProcess constructor. It also needs to be
+ // registered before the process has multiple threads, which may race with
+ // application of the sandbox.
++// XXX BSD
++#if !BUILDFLAG(IS_BSD)
+ SandboxedProcessThreadTypeHandler::Create();
++#endif
+
+ // Initializes the sandbox before any threads are created.
+ // TODO(jorgelo): move this after GTK initialization when we enable a strict
+@@ -331,7 +343,7 @@ int UtilityMain(MainFunctionParams parameters) {
+ pre_sandbox_hook =
+ base::BindOnce(&speech::SpeechRecognitionPreSandboxHook);
+ break;
+-#if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) && BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD))
+ case sandbox::mojom::Sandbox::kOnDeviceTranslation:
+ pre_sandbox_hook = base::BindOnce(
+ &on_device_translation::OnDeviceTranslationSandboxHook);
+@@ -347,7 +359,7 @@ int UtilityMain(MainFunctionParams parameters) {
+ #else
+ NOTREACHED();
+ #endif
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ case sandbox::mojom::Sandbox::kVideoEffects:
+ #if BUILDFLAG(ENABLE_VIDEO_EFFECTS)
+ pre_sandbox_hook =
+@@ -355,7 +367,7 @@ int UtilityMain(MainFunctionParams parameters) {
+ #endif
+ break;
+ #endif // BUILDFLAG(IS_LINUX)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
+ case sandbox::mojom::Sandbox::kShapeDetection:
+ pre_sandbox_hook =
+ base::BindOnce(&shape_detection::ShapeDetectionPreSandboxHook);
+@@ -390,6 +402,7 @@ int UtilityMain(MainFunctionParams parameters) {
+ default:
+ break;
+ }
++#if !BUILDFLAG(IS_BSD)
+ if (!sandbox::policy::IsUnsandboxedSandboxType(sandbox_type) &&
+ (parameters.zygote_child || !pre_sandbox_hook.is_null())) {
+ sandbox_options.use_amd_specific_policies =
+@@ -397,6 +410,11 @@ int UtilityMain(MainFunctionParams parameters) {
+ sandbox::policy::Sandbox::Initialize(
+ sandbox_type, std::move(pre_sandbox_hook), sandbox_options);
+ }
++#else
++ sandbox::policy::Sandbox::Initialize(
++ sandbox_type, std::move(pre_sandbox_hook),
++ sandbox::policy::SandboxLinux::Options());
++#endif
+
+ // Startup tracing creates a tracing thread, which is incompatible on
+ // platforms that require single-threaded sandbox initialization. In these