summaryrefslogtreecommitdiffstats
path: root/chrome/browser/worker_host
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/worker_host')
-rw-r--r--chrome/browser/worker_host/worker_process_host.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/chrome/browser/worker_host/worker_process_host.cc b/chrome/browser/worker_host/worker_process_host.cc
index bf68bff..d696df6 100644
--- a/chrome/browser/worker_host/worker_process_host.cc
+++ b/chrome/browser/worker_host/worker_process_host.cc
@@ -17,6 +17,10 @@
#include "chrome/common/render_messages.h"
#include "chrome/common/worker_messages.h"
+#if defined(OS_WIN)
+#include "chrome/browser/sandbox_policy.h"
+#endif
+
WorkerProcessHost::WorkerProcessHost(
ResourceDispatcherHost* resource_dispatcher_host_)
@@ -38,16 +42,18 @@ bool WorkerProcessHost::Init() {
return false;
CommandLine cmd_line(exe_path);
-
- // TODO(jabdelmalek): factor out common code from renderer/plugin that does
- // sandboxing and command line copying and reuse here.
cmd_line.AppendSwitchWithValue(switches::kProcessType,
switches::kWorkerProcess);
cmd_line.AppendSwitchWithValue(switches::kProcessChannelID, channel_id());
- base::ProcessHandle handle;
- if (!base::LaunchApp(cmd_line, false, false, &handle))
+ base::ProcessHandle process;
+#if defined(OS_WIN)
+ process = sandbox::StartProcess(&cmd_line);
+#else
+ base::LaunchApp(cmd_line, false, false, &process);
+#endif
+ if (!process)
return false;
- SetHandle(handle);
+ SetHandle(process);
return true;
}