7034f5e54b
Approved by: rene (mentor)
94 lines
3.9 KiB
C++
94 lines
3.9 KiB
C++
--- content/utility/utility_main.cc.orig 2023-03-13 07:33:08 UTC
|
|
+++ content/utility/utility_main.cc
|
|
@@ -31,7 +31,7 @@
|
|
#include "third_party/icu/source/common/unicode/unistr.h"
|
|
#include "third_party/icu/source/i18n/unicode/timezone.h"
|
|
|
|
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
|
|
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
|
|
#include "content/utility/speech/speech_recognition_sandbox_hook_linux.h"
|
|
#include "gpu/config/gpu_info_collector.h"
|
|
#include "media/gpu/sandbox/hardware_video_encoding_sandbox_hook_linux.h"
|
|
@@ -42,15 +42,21 @@
|
|
#if BUILDFLAG(ENABLE_PRINTING)
|
|
#include "printing/sandbox/print_backend_sandbox_hook_linux.h"
|
|
#endif
|
|
+#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"
|
|
#endif
|
|
|
|
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
|
|
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
|
|
#include "media/gpu/sandbox/hardware_video_decoding_sandbox_hook_linux.h"
|
|
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
|
|
|
|
+#if BUILDFLAG(IS_BSD)
|
|
+#include "sandbox/policy/openbsd/sandbox_openbsd.h"
|
|
+#endif
|
|
+
|
|
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
|
#include "chromeos/ash/components/assistant/buildflags.h"
|
|
#include "chromeos/ash/services/ime/ime_sandbox_hook.h"
|
|
@@ -62,7 +68,7 @@
|
|
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
|
|
|
#if (BUILDFLAG(ENABLE_SCREEN_AI_SERVICE) && \
|
|
- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)))
|
|
+ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)))
|
|
#include "components/services/screen_ai/sandbox/screen_ai_sandbox_hook_linux.h" // nogncheck
|
|
#endif
|
|
|
|
@@ -83,10 +89,10 @@ namespace content {
|
|
|
|
namespace {
|
|
|
|
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
|
|
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_BSD)
|
|
bool ShouldUseAmdGpuPolicy(sandbox::mojom::Sandbox sandbox_type) {
|
|
const bool obtain_gpu_info =
|
|
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
|
|
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
|
|
sandbox_type == sandbox::mojom::Sandbox::kHardwareVideoDecoding ||
|
|
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
|
|
sandbox_type == sandbox::mojom::Sandbox::kHardwareVideoEncoding;
|
|
@@ -168,7 +174,7 @@ int UtilityMain(MainFunctionParams parameters) {
|
|
}
|
|
}
|
|
|
|
-#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.
|
|
@@ -196,7 +202,7 @@ int UtilityMain(MainFunctionParams parameters) {
|
|
pre_sandbox_hook = base::BindOnce(&screen_ai::ScreenAIPreSandboxHook);
|
|
break;
|
|
#endif
|
|
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
|
|
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_BSD)
|
|
case sandbox::mojom::Sandbox::kHardwareVideoDecoding:
|
|
pre_sandbox_hook =
|
|
base::BindOnce(&media::HardwareVideoDecodingPreSandboxHook);
|
|
@@ -223,6 +229,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::policy::SandboxLinux::Options sandbox_options;
|
|
@@ -231,6 +238,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
|
|
#elif BUILDFLAG(IS_WIN)
|
|
g_utility_target_services = parameters.sandbox_info->target_services;
|
|
#endif
|