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

Unified Diff: content/common/sandbox_init_linux.cc

Issue 10534049: Disable the seccomp filter GPU process sandbox by default on Chrome OS. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 6 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
« no previous file with comments | « no previous file | content/gpu/gpu_main.cc » ('j') | content/public/common/content_switches.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/sandbox_init_linux.cc
diff --git a/content/common/sandbox_init_linux.cc b/content/common/sandbox_init_linux.cc
index 1dd1554ff064ceaba55fdb10b49f07530b82a0e1..c10b3fb092e6ba817b132e9ca8f026af2263cfc0 100644
--- a/content/common/sandbox_init_linux.cc
+++ b/content/common/sandbox_init_linux.cc
@@ -22,6 +22,7 @@
#include "base/file_util.h"
#include "base/logging.h"
#include "base/time.h"
+#include "content/gpu/gpu_info_collector.h"
Chris Evans 2012/06/07 23:11:34 I'm not 100% sure, but isn't it considered a layer
Jorge Lucangeli Obes 2012/06/08 00:15:24 GPU info logic moved to gpu_main.cc, but cmdline f
#include "content/public/common/content_switches.h"
#ifndef PR_SET_NO_NEW_PRIVS
@@ -388,6 +389,22 @@ static void InstallFilter(const std::vector<struct sock_filter>& program) {
PLOG_IF(FATAL, ret != 0) << "Failed to install filter.";
}
+static bool ShouldEnableGPUSandbox() {
+#if defined(OS_CHROMEOS)
+ content::GPUInfo gpu_info;
+
+ if (!gpu_info_collector::CollectGraphicsInfo(&gpu_info))
+ return false;
+
+ const CommandLine& command_line = *CommandLine::ForCurrentProcess();
+
+ return command_line.HasSwitch(switches::kEnableChromeOSGPUSandbox) &&
+ gpu_info.gpu.vendor_id == 0x8086; // Intel GPU
+#else
+ return true;
+#endif
+}
+
} // anonymous namespace
namespace content {
@@ -412,7 +429,8 @@ void InitializeSandbox() {
std::vector<struct sock_filter> program;
EmitPreamble(&program);
- if (process_type == switches::kGpuProcess) {
+ if (process_type == switches::kGpuProcess &&
+ ShouldEnableGPUSandbox()) {
ApplyGPUPolicy(&program);
EmitTrap(&program); // Default deny.
} else if (process_type == switches::kPpapiPluginProcess) {
@@ -442,4 +460,3 @@ void InitializeSandbox() {
} // namespace content
#endif
-
« no previous file with comments | « no previous file | content/gpu/gpu_main.cc » ('j') | content/public/common/content_switches.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698