| Index: content/browser/child_process_launcher.cc
|
| diff --git a/content/browser/child_process_launcher.cc b/content/browser/child_process_launcher.cc
|
| index 7dfad56a08ea1950b287984188d6697a49cba07a..252012b7ec7b4e5920a8dcf0bfed311f7aad48f4 100644
|
| --- a/content/browser/child_process_launcher.cc
|
| +++ b/content/browser/child_process_launcher.cc
|
| @@ -20,12 +20,12 @@
|
| #include "content/public/common/content_descriptors.h"
|
| #include "content/public/common/content_switches.h"
|
| #include "content/public/common/result_codes.h"
|
| +#include "content/public/common/sandboxed_process_launcher_delegate.h"
|
|
|
| #if defined(OS_WIN)
|
| #include "base/files/file_path.h"
|
| #include "content/common/sandbox_win.h"
|
| #include "content/public/common/sandbox_init.h"
|
| -#include "content/public/common/sandboxed_process_launcher_delegate.h"
|
| #elif defined(OS_MACOSX)
|
| #include "content/browser/mach_broker_mac.h"
|
| #elif defined(OS_ANDROID)
|
| @@ -71,16 +71,7 @@ class ChildProcessLauncher::Context
|
| }
|
|
|
| void Launch(
|
| -#if defined(OS_WIN)
|
| SandboxedProcessLauncherDelegate* delegate,
|
| - bool launch_elevated,
|
| -#elif defined(OS_ANDROID)
|
| - int ipcfd,
|
| -#elif defined(OS_POSIX)
|
| - bool use_zygote,
|
| - const base::EnvironmentMap& environ,
|
| - int ipcfd,
|
| -#endif
|
| CommandLine* cmd_line,
|
| int child_process_id,
|
| Client* client) {
|
| @@ -92,7 +83,7 @@ class ChildProcessLauncher::Context
|
| // We need to close the client end of the IPC channel to reliably detect
|
| // child termination. We will close this fd after we create the child
|
| // process which is asynchronous on Android.
|
| - ipcfd_ = ipcfd;
|
| + ipcfd_ = delegate->GetIpcFd();
|
| #endif
|
| BrowserThread::PostTask(
|
| BrowserThread::PROCESS_LAUNCHER, FROM_HERE,
|
| @@ -101,16 +92,7 @@ class ChildProcessLauncher::Context
|
| make_scoped_refptr(this),
|
| client_thread_id_,
|
| child_process_id,
|
| -#if defined(OS_WIN)
|
| delegate,
|
| - launch_elevated,
|
| -#elif defined(OS_ANDROID)
|
| - ipcfd,
|
| -#elif defined(OS_POSIX)
|
| - use_zygote,
|
| - environ,
|
| - ipcfd,
|
| -#endif
|
| cmd_line));
|
| }
|
|
|
| @@ -185,17 +167,20 @@ class ChildProcessLauncher::Context
|
| scoped_refptr<Context> this_object,
|
| BrowserThread::ID client_thread_id,
|
| int child_process_id,
|
| -#if defined(OS_WIN)
|
| SandboxedProcessLauncherDelegate* delegate,
|
| - bool launch_elevated,
|
| + CommandLine* cmd_line) {
|
| +#if defined(OS_WIN)
|
| + bool launch_elevated = delegate->ShouldLaunchElevated();
|
| #elif defined(OS_ANDROID)
|
| - int ipcfd,
|
| + int ipcfd = delegate->GetIpcFd();
|
| +#elif defined(OS_MACOSX)
|
| + base::EnvironmentMap env = delegate->GetEnvironment();
|
| + int ipcfd = delegate->GetIpcFd();
|
| #elif defined(OS_POSIX)
|
| - bool use_zygote,
|
| - const base::EnvironmentMap& env,
|
| - int ipcfd,
|
| + bool use_zygote = delegate->ShouldUseZygote();
|
| + base::EnvironmentMap env = delegate->GetEnvironment();
|
| + int ipcfd = delegate->GetIpcFd();
|
| #endif
|
| - CommandLine* cmd_line) {
|
| scoped_ptr<CommandLine> cmd_line_deleter(cmd_line);
|
| base::TimeTicks begin_launch_time = base::TimeTicks::Now();
|
|
|
| @@ -430,29 +415,13 @@ class ChildProcessLauncher::Context
|
|
|
|
|
| ChildProcessLauncher::ChildProcessLauncher(
|
| -#if defined(OS_WIN)
|
| SandboxedProcessLauncherDelegate* delegate,
|
| - bool launch_elevated,
|
| -#elif defined(OS_POSIX)
|
| - bool use_zygote,
|
| - const base::EnvironmentMap& environ,
|
| - int ipcfd,
|
| -#endif
|
| CommandLine* cmd_line,
|
| int child_process_id,
|
| Client* client) {
|
| context_ = new Context();
|
| context_->Launch(
|
| -#if defined(OS_WIN)
|
| delegate,
|
| - launch_elevated,
|
| -#elif defined(OS_ANDROID)
|
| - ipcfd,
|
| -#elif defined(OS_POSIX)
|
| - use_zygote,
|
| - environ,
|
| - ipcfd,
|
| -#endif
|
| cmd_line,
|
| child_process_id,
|
| client);
|
|
|