diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-18 23:46:53 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-18 23:46:53 +0000 |
commit | 4f4a13fdcca50a40cc0d761fe9bd00b643169992 (patch) | |
tree | 1e9e92deee4830a194c50232327754a99403ccf1 /chrome/browser/worker_host | |
parent | c9d869c9d91ccb7ad8f061a93e7265bcddd85b47 (diff) | |
download | chromium_src-4f4a13fdcca50a40cc0d761fe9bd00b643169992.zip chromium_src-4f4a13fdcca50a40cc0d761fe9bd00b643169992.tar.gz chromium_src-4f4a13fdcca50a40cc0d761fe9bd00b643169992.tar.bz2 |
Refactor sandboxing code so that it can be used by worker processes.
Review URL: http://codereview.chromium.org/42311
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12038 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/worker_host')
-rw-r--r-- | chrome/browser/worker_host/worker_process_host.cc | 18 |
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; } |