diff options
Diffstat (limited to 'devel/electron38/files/patch-content_utility_utility__main.cc')
-rw-r--r-- | devel/electron38/files/patch-content_utility_utility__main.cc | 124 |
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 |