diff options
Diffstat (limited to 'www/iridium/files/patch-content_utility_utility__main.cc')
-rw-r--r-- | www/iridium/files/patch-content_utility_utility__main.cc | 62 |
1 files changed, 32 insertions, 30 deletions
diff --git a/www/iridium/files/patch-content_utility_utility__main.cc b/www/iridium/files/patch-content_utility_utility__main.cc index dbf0a5f9b210..93914073194a 100644 --- a/www/iridium/files/patch-content_utility_utility__main.cc +++ b/www/iridium/files/patch-content_utility_utility__main.cc @@ -1,6 +1,6 @@ ---- content/utility/utility_main.cc.orig 2025-05-07 06:48:23 UTC +--- content/utility/utility_main.cc.orig 2025-09-11 13:19:19 UTC +++ content/utility/utility_main.cc -@@ -36,18 +36,22 @@ +@@ -39,17 +39,21 @@ #include "services/tracing/public/cpp/trace_startup.h" #include "services/video_effects/public/cpp/buildflags.h" @@ -10,35 +10,34 @@ #include "base/files/file_util.h" #include "base/pickle.h" #include "content/child/sandboxed_process_thread_type_handler.h" -+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD) ++#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 "gpu/config/gpu_info_collector.h" - #include "media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.h" - #include "media/gpu/sandbox/hardware_video_encoding_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" -@@ -66,7 +70,12 @@ +@@ -84,7 +88,12 @@ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) --#if BUILDFLAG(IS_LINUX) +-#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(IS_LINUX) || BUILDFLAG(IS_BSD) ++#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) -@@ -101,7 +110,7 @@ +@@ -121,7 +130,7 @@ sandbox::TargetServices* g_utility_target_services = nullptr; #endif // BUILDFLAG(IS_WIN) @@ -47,7 +46,7 @@ #include "components/services/on_device_translation/sandbox_hook.h" #endif // BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION) && BUILDFLAG(IS_LINUX) -@@ -109,7 +118,7 @@ namespace content { +@@ -129,7 +138,7 @@ namespace content { namespace { @@ -56,26 +55,27 @@ std::vector<std::string> GetNetworkContextsParentDirectories() { base::MemoryMappedFile::Region region; base::ScopedFD read_pipe_fd = base::FileDescriptorStore::GetInstance().TakeFD( -@@ -247,7 +256,8 @@ int UtilityMain(MainFunctionParams parameters) { - CHECK(on_device_model::OnDeviceModelService::PreSandboxInit()); +@@ -284,7 +293,7 @@ int UtilityMain(MainFunctionParams parameters) { + CHECK(on_device_model::PreSandboxInit()); } -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) -+// XXX BSD -+#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && !BUILDFLAG(IS_BSD) - // Thread type delegate of the process should be registered before first ++#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 -@@ -255,7 +265,7 @@ int UtilityMain(MainFunctionParams parameters) { + // application of the sandbox. ++// XXX BSD ++#if !BUILDFLAG(IS_BSD) SandboxedProcessThreadTypeHandler::Create(); - #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ++#endif --#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) -+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD) // Initializes the sandbox before any threads are created. // TODO(jorgelo): move this after GTK initialization when we enable a strict - // Seccomp-BPF policy. -@@ -287,7 +297,7 @@ int UtilityMain(MainFunctionParams parameters) { +@@ -331,7 +343,7 @@ int UtilityMain(MainFunctionParams parameters) { pre_sandbox_hook = base::BindOnce(&speech::SpeechRecognitionPreSandboxHook); break; @@ -84,23 +84,25 @@ case sandbox::mojom::Sandbox::kOnDeviceTranslation: pre_sandbox_hook = base::BindOnce( &on_device_translation::OnDeviceTranslationSandboxHook); -@@ -303,13 +313,13 @@ int UtilityMain(MainFunctionParams parameters) { +@@ -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 = - base::BindOnce(&video_effects::VideoEffectsPreSandboxHook); +@@ -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::kHardwareVideoDecoding: + case sandbox::mojom::Sandbox::kShapeDetection: pre_sandbox_hook = - base::BindOnce(&media::HardwareVideoDecodingPreSandboxHook); -@@ -336,6 +346,7 @@ int UtilityMain(MainFunctionParams parameters) { + base::BindOnce(&shape_detection::ShapeDetectionPreSandboxHook); +@@ -390,6 +402,7 @@ int UtilityMain(MainFunctionParams parameters) { default: break; } @@ -108,7 +110,7 @@ if (!sandbox::policy::IsUnsandboxedSandboxType(sandbox_type) && (parameters.zygote_child || !pre_sandbox_hook.is_null())) { sandbox_options.use_amd_specific_policies = -@@ -343,6 +354,11 @@ int UtilityMain(MainFunctionParams parameters) { +@@ -397,6 +410,11 @@ int UtilityMain(MainFunctionParams parameters) { sandbox::policy::Sandbox::Initialize( sandbox_type, std::move(pre_sandbox_hook), sandbox_options); } @@ -118,5 +120,5 @@ + sandbox::policy::SandboxLinux::Options()); +#endif - // Start the HangWatcher now that the sandbox is engaged, if it hasn't - // already been started. + // Startup tracing creates a tracing thread, which is incompatible on + // platforms that require single-threaded sandbox initialization. In these |