Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(209)

Unified Diff: content/common/sandbox_seccomp_bpf_linux.cc

Issue 13814027: Linux: make current InitializeSandbox() private. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/common/sandbox_seccomp_bpf_linux.cc
diff --git a/content/common/sandbox_seccomp_bpf_linux.cc b/content/common/sandbox_seccomp_bpf_linux.cc
index 2f3f0efa449c5308268f543f97e946cdee1cab24..7462ca70d92a70d287e4ddb081e9d5bdce96dfea 100644
--- a/content/common/sandbox_seccomp_bpf_linux.cc
+++ b/content/common/sandbox_seccomp_bpf_linux.cc
@@ -38,6 +38,7 @@
#include "sandbox/linux/seccomp-bpf/sandbox_bpf.h"
#include "sandbox/linux/services/linux_syscalls.h"
+using content::LinuxSandbox;
using playground2::arch_seccomp_data;
using playground2::ErrorCode;
using playground2::Sandbox;
@@ -1505,8 +1506,8 @@ void WarmupPolicy(Sandbox::EvaluateSyscall policy,
Sandbox::EvaluateSyscall GetProcessSyscallPolicy(
const CommandLine& command_line,
- const std::string& process_type) {
- if (process_type == switches::kGpuProcess) {
+ LinuxSandbox::SandboxConfig sandbox_config) {
+ if (sandbox_config == LinuxSandbox::SANDBOX_CONFIG_GPU) {
// On Chrome OS, --enable-gpu-sandbox enables the more restrictive policy.
// However, we don't yet enable the more restrictive GPU process policy
// on ARM.
@@ -1517,18 +1518,18 @@ Sandbox::EvaluateSyscall GetProcessSyscallPolicy(
return GpuProcessPolicy;
}
- if (process_type == switches::kPpapiPluginProcess) {
+ if (sandbox_config == LinuxSandbox::SANDBOX_CONFIG_PPAPI) {
// TODO(jln): figure out what to do with non-Flash PPAPI
// out-of-process plug-ins.
return FlashProcessPolicy;
}
- if (process_type == switches::kRendererProcess ||
- process_type == switches::kWorkerProcess) {
+ if (sandbox_config == LinuxSandbox::SANDBOX_CONFIG_RENDERER ||
+ sandbox_config == LinuxSandbox::SANDBOX_CONFIG_WORKER) {
return RendererOrWorkerProcessPolicy;
}
- if (process_type == switches::kUtilityProcess) {
+ if (sandbox_config == LinuxSandbox::SANDBOX_CONFIG_UTILITY) {
return BlacklistDebugAndNumaPolicy;
}
@@ -1552,9 +1553,9 @@ void StartSandboxWithPolicy(Sandbox::EvaluateSyscall syscall_policy,
// Initialize the seccomp-bpf sandbox.
bool StartBpfSandbox(const CommandLine& command_line,
- const std::string& process_type) {
+ LinuxSandbox::SandboxConfig sandbox_config) {
Sandbox::EvaluateSyscall syscall_policy =
- GetProcessSyscallPolicy(command_line, process_type);
+ GetProcessSyscallPolicy(command_line, sandbox_config);
BrokerProcess* broker_process = NULL;
// Warm up resources needed by the policy we're about to enable and
@@ -1584,10 +1585,10 @@ bool SandboxSeccompBpf::IsSeccompBpfDesired() {
}
bool SandboxSeccompBpf::ShouldEnableSeccompBpf(
- const std::string& process_type) {
+ LinuxSandbox::SandboxConfig sandbox_config) {
#if defined(SECCOMP_BPF_SANDBOX)
const CommandLine& command_line = *CommandLine::ForCurrentProcess();
- if (process_type == switches::kGpuProcess)
+ if (sandbox_config == LinuxSandbox::SANDBOX_CONFIG_GPU)
return !command_line.HasSwitch(switches::kDisableGpuSandbox);
return true;
@@ -1612,16 +1613,17 @@ bool SandboxSeccompBpf::SupportsSandbox() {
return false;
}
-bool SandboxSeccompBpf::StartSandbox(const std::string& process_type) {
+bool SandboxSeccompBpf::StartSandbox(
+ LinuxSandbox::SandboxConfig sandbox_config) {
#if defined(SECCOMP_BPF_SANDBOX)
const CommandLine& command_line = *CommandLine::ForCurrentProcess();
if (IsSeccompBpfDesired() && // Global switches policy.
- ShouldEnableSeccompBpf(process_type) && // Process-specific policy.
+ ShouldEnableSeccompBpf(sandbox_config) && // Process-specific policy.
SupportsSandbox()) {
// If the kernel supports the sandbox, and if the command line says we
// should enable it, enable it or die.
- bool started_sandbox = StartBpfSandbox(command_line, process_type);
+ bool started_sandbox = StartBpfSandbox(command_line, sandbox_config);
CHECK(started_sandbox);
return true;
}

Powered by Google App Engine
This is Rietveld 408576698