$OpenBSD: patch-content_utility_utility_main_cc,v 1.23 2021/04/16 18:15:07 robert Exp $

Index: content/utility/utility_main.cc
--- content/utility/utility_main.cc.orig
+++ content/utility/utility_main.cc
@@ -25,9 +25,13 @@
 #include "sandbox/policy/sandbox.h"
 #include "services/tracing/public/cpp/trace_startup.h"
 
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+#if !defined(OS_BSD)
 #include "content/utility/speech/speech_recognition_sandbox_hook_linux.h"
 #include "sandbox/policy/linux/sandbox_linux.h"
+#else
+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
+#endif
 #include "services/audio/audio_sandbox_hook_linux.h"
 #include "services/network/network_sandbox_hook_linux.h"
 #endif
@@ -87,12 +91,13 @@ int UtilityMain(const MainFunctionParams& parameters) 
   if (parameters.command_line.HasSwitch(switches::kUtilityStartupDialog))
     WaitForDebugger("Utility");
 
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
   // Initializes the sandbox before any threads are created.
   // TODO(jorgelo): move this after GTK initialization when we enable a strict
   // Seccomp-BPF policy.
   auto sandbox_type =
       sandbox::policy::SandboxTypeFromCommandLine(parameters.command_line);
+#if !defined(OS_BSD)
   if (parameters.zygote_child ||
       sandbox_type == sandbox::policy::SandboxType::kNetwork ||
 #if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -120,6 +125,12 @@ int UtilityMain(const MainFunctionParams& parameters) 
         sandbox_type, std::move(pre_sandbox_hook),
         sandbox::policy::SandboxLinux::Options());
   }
+#else
+    sandbox::policy::SandboxLinux::PreSandboxHook pre_sandbox_hook;
+    sandbox::policy::Sandbox::Initialize(
+        sandbox_type, std::move(pre_sandbox_hook),
+        sandbox::policy::SandboxLinux::Options());
+#endif
 #elif defined(OS_WIN)
   g_utility_target_services = parameters.sandbox_info->target_services;
 #endif
