| Index: content/browser/child_process_launcher.cc
|
| diff --git a/content/browser/child_process_launcher.cc b/content/browser/child_process_launcher.cc
|
| index 12b2dee98a37175a9194dfa954b43996616ae1e1..e93bb08efd4846340e6c467b0c349efee237bdb2 100644
|
| --- a/content/browser/child_process_launcher.cc
|
| +++ b/content/browser/child_process_launcher.cc
|
| @@ -115,14 +115,14 @@ void OnChildProcessStartedAndroid(const NotifyCallback& callback,
|
| }
|
| #endif
|
|
|
| -void LaunchOnLauncherThread(const NotifyCallback& callback,
|
| - BrowserThread::ID client_thread_id,
|
| - int child_process_id,
|
| - SandboxedProcessLauncherDelegate* delegate,
|
| - mojo::edk::ScopedPlatformHandle client_handle,
|
| - base::CommandLine* cmd_line) {
|
| +void LaunchOnLauncherThread(
|
| + const NotifyCallback& callback,
|
| + BrowserThread::ID client_thread_id,
|
| + int child_process_id,
|
| + std::unique_ptr<SandboxedProcessLauncherDelegate> delegate,
|
| + mojo::edk::ScopedPlatformHandle client_handle,
|
| + std::unique_ptr<base::CommandLine> cmd_line) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::PROCESS_LAUNCHER);
|
| - std::unique_ptr<SandboxedProcessLauncherDelegate> delegate_deleter(delegate);
|
| #if !defined(OS_ANDROID)
|
| ZygoteHandle zygote = nullptr;
|
| int launch_result = LAUNCH_RESULT_FAILURE;
|
| @@ -134,7 +134,6 @@ void LaunchOnLauncherThread(const NotifyCallback& callback,
|
| #elif defined(OS_POSIX) && !defined(OS_ANDROID)
|
| base::EnvironmentMap env = delegate->GetEnvironment();
|
| #endif
|
| - std::unique_ptr<base::CommandLine> cmd_line_deleter(cmd_line);
|
| base::TimeTicks begin_launch_time = base::TimeTicks::Now();
|
|
|
| base::Process process;
|
| @@ -152,8 +151,8 @@ void LaunchOnLauncherThread(const NotifyCallback& callback,
|
| cmd_line->AppendSwitchASCII(
|
| mojo::edk::PlatformChannelPair::kMojoPlatformChannelHandleSwitch,
|
| base::UintToString(base::win::HandleToUint32(handles[0])));
|
| - launch_result =
|
| - StartSandboxedProcess(delegate, cmd_line, handles, &process);
|
| + launch_result = StartSandboxedProcess(
|
| + delegate.get(), cmd_line.get(), handles, &process);
|
| }
|
| #elif defined(OS_POSIX)
|
| std::string process_type =
|
| @@ -333,7 +332,7 @@ void LaunchOnLauncherThread(const NotifyCallback& callback,
|
| }
|
|
|
| // After updating the broker, release the lock and let the child's
|
| - // messasge be processed on the broker's thread.
|
| + // message be processed on the broker's thread.
|
| broker->GetLock().Release();
|
| #endif // defined(OS_MACOSX)
|
| }
|
| @@ -392,8 +391,8 @@ void SetProcessBackgroundedOnLauncherThread(base::Process process,
|
| } // namespace
|
|
|
| ChildProcessLauncher::ChildProcessLauncher(
|
| - SandboxedProcessLauncherDelegate* delegate,
|
| - base::CommandLine* cmd_line,
|
| + std::unique_ptr<SandboxedProcessLauncherDelegate> delegate,
|
| + std::unique_ptr<base::CommandLine> cmd_line,
|
| int child_process_id,
|
| Client* client,
|
| const std::string& mojo_child_token,
|
| @@ -416,7 +415,7 @@ ChildProcessLauncher::ChildProcessLauncher(
|
| weak_factory_(this) {
|
| DCHECK(CalledOnValidThread());
|
| CHECK(BrowserThread::GetCurrentThreadIdentifier(&client_thread_id_));
|
| - Launch(delegate, cmd_line, child_process_id);
|
| + Launch(std::move(delegate), std::move(cmd_line), child_process_id);
|
| }
|
|
|
| ChildProcessLauncher::~ChildProcessLauncher() {
|
| @@ -430,9 +429,10 @@ ChildProcessLauncher::~ChildProcessLauncher() {
|
| }
|
| }
|
|
|
| -void ChildProcessLauncher::Launch(SandboxedProcessLauncherDelegate* delegate,
|
| - base::CommandLine* cmd_line,
|
| - int child_process_id) {
|
| +void ChildProcessLauncher::Launch(
|
| + std::unique_ptr<SandboxedProcessLauncherDelegate> delegate,
|
| + std::unique_ptr<base::CommandLine> cmd_line,
|
| + int child_process_id) {
|
| DCHECK(CalledOnValidThread());
|
|
|
| #if defined(OS_ANDROID)
|
| @@ -458,7 +458,7 @@ void ChildProcessLauncher::Launch(SandboxedProcessLauncherDelegate* delegate,
|
| if (delegate->ShouldLaunchElevated()) {
|
| mojo::edk::NamedPlatformChannelPair named_pair;
|
| server_handle = named_pair.PassServerHandle();
|
| - named_pair.PrepareToPassClientHandleToChildProcess(cmd_line);
|
| + named_pair.PrepareToPassClientHandleToChildProcess(cmd_line.get());
|
| } else
|
| #endif
|
| {
|
| @@ -473,8 +473,8 @@ void ChildProcessLauncher::Launch(SandboxedProcessLauncherDelegate* delegate,
|
| BrowserThread::PostTask(
|
| BrowserThread::PROCESS_LAUNCHER, FROM_HERE,
|
| base::Bind(&LaunchOnLauncherThread, reply_callback, client_thread_id_,
|
| - child_process_id, delegate,
|
| - base::Passed(&client_handle), cmd_line));
|
| + child_process_id, base::Passed(&delegate),
|
| + base::Passed(&client_handle), base::Passed(&cmd_line)));
|
| }
|
|
|
| void ChildProcessLauncher::UpdateTerminationStatus(bool known_dead) {
|
|
|