| Index: mojo/shell/runner/host/child_process_host.cc
 | 
| diff --git a/mojo/shell/runner/host/child_process_host.cc b/mojo/shell/runner/host/child_process_host.cc
 | 
| index ae79312f4b7b35223c65df6b2ef8870df16e1469..b9a1c1fa7f6e90f09aef556933e5d5fbaa3330aa 100644
 | 
| --- a/mojo/shell/runner/host/child_process_host.cc
 | 
| +++ b/mojo/shell/runner/host/child_process_host.cc
 | 
| @@ -21,8 +21,8 @@
 | 
|  #include "mojo/edk/embedder/embedder.h"
 | 
|  #include "mojo/public/cpp/bindings/interface_ptr_info.h"
 | 
|  #include "mojo/public/cpp/system/core.h"
 | 
| +#include "mojo/shell/native_runner_delegate.h"
 | 
|  #include "mojo/shell/runner/common/switches.h"
 | 
| -#include "mojo/shell/runner/host/command_line_switch.h"
 | 
|  
 | 
|  #if defined(OS_LINUX) && !defined(OS_ANDROID)
 | 
|  #include "sandbox/linux/services/namespace_sandbox.h"
 | 
| @@ -35,16 +35,17 @@
 | 
|  namespace mojo {
 | 
|  namespace shell {
 | 
|  
 | 
| -ChildProcessHost::ChildProcessHost(
 | 
| -    base::TaskRunner* launch_process_runner,
 | 
| -    bool start_sandboxed,
 | 
| -    const base::FilePath& app_path,
 | 
| -    const std::vector<CommandLineSwitch>& command_line_switches)
 | 
| +ChildProcessHost::ChildProcessHost(base::TaskRunner* launch_process_runner,
 | 
| +                                   NativeRunnerDelegate* delegate,
 | 
| +                                   bool start_sandboxed,
 | 
| +                                   const Identity& target,
 | 
| +                                   const base::FilePath& app_path)
 | 
|      : launch_process_runner_(launch_process_runner),
 | 
| +      delegate_(delegate),
 | 
|        start_sandboxed_(start_sandboxed),
 | 
| +      target_(target),
 | 
|        app_path_(app_path),
 | 
|        start_child_process_event_(false, false),
 | 
| -      command_line_switches_(command_line_switches),
 | 
|        weak_factory_(this) {
 | 
|    node_channel_.reset(new edk::PlatformChannelPair);
 | 
|    primordial_pipe_token_ = edk::GenerateRandomToken();
 | 
| @@ -55,6 +56,7 @@ ChildProcessHost::ChildProcessHost(
 | 
|  
 | 
|  ChildProcessHost::ChildProcessHost(ScopedHandle channel)
 | 
|      : launch_process_runner_(nullptr),
 | 
| +      delegate_(nullptr),
 | 
|        start_sandboxed_(false),
 | 
|        start_child_process_event_(false, false),
 | 
|        weak_factory_(this) {
 | 
| @@ -149,8 +151,10 @@ void ChildProcessHost::DoLaunch() {
 | 
|    child_command_line.AppendSwitchASCII(switches::kPrimordialPipeToken,
 | 
|                                         primordial_pipe_token_);
 | 
|  
 | 
| -  for (const CommandLineSwitch& pair : command_line_switches_)
 | 
| -    child_command_line.AppendSwitchASCII(pair.key, pair.value);
 | 
| +  if (delegate_) {
 | 
| +    delegate_->AdjustCommandLineArgumentsForTarget(target_,
 | 
| +                                                   &child_command_line);
 | 
| +  }
 | 
|  
 | 
|    base::LaunchOptions options;
 | 
|  #if defined(OS_WIN)
 | 
| 
 |