| Index: content/browser/child_process_launcher.cc
|
| diff --git a/content/browser/child_process_launcher.cc b/content/browser/child_process_launcher.cc
|
| index 92a3b0e78fe265556e83dffefe4b08d7d26d56ae..02387e09816cfd559f45903cbcef5edd0af3ab37 100644
|
| --- a/content/browser/child_process_launcher.cc
|
| +++ b/content/browser/child_process_launcher.cc
|
| @@ -67,10 +67,10 @@ namespace {
|
| typedef base::Callback<void(ZygoteHandle,
|
| #if defined(OS_ANDROID)
|
| base::ScopedFD,
|
| - base::ScopedFD,
|
| #endif
|
| base::Process,
|
| - int)> NotifyCallback;
|
| + int)>
|
| + NotifyCallback;
|
|
|
| void RecordHistogramsOnLauncherThread(base::TimeDelta launch_time) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::PROCESS_LAUNCHER);
|
| @@ -91,7 +91,6 @@ void RecordHistogramsOnLauncherThread(base::TimeDelta launch_time) {
|
| void OnChildProcessStartedAndroid(const NotifyCallback& callback,
|
| BrowserThread::ID client_thread_id,
|
| const base::TimeTicks begin_launch_time,
|
| - base::ScopedFD ipcfd,
|
| base::ScopedFD mojo_fd,
|
| base::ProcessHandle handle) {
|
| int launch_result = (handle == base::kNullProcessHandle)
|
| @@ -103,9 +102,9 @@ void OnChildProcessStartedAndroid(const NotifyCallback& callback,
|
| BrowserThread::PROCESS_LAUNCHER, FROM_HERE,
|
| base::Bind(&RecordHistogramsOnLauncherThread, launch_time));
|
|
|
| - base::Closure callback_on_client_thread(base::Bind(
|
| - callback, nullptr, base::Passed(&ipcfd), base::Passed(&mojo_fd),
|
| - base::Passed(base::Process(handle)), launch_result));
|
| + base::Closure callback_on_client_thread(
|
| + base::Bind(callback, nullptr, base::Passed(&mojo_fd),
|
| + base::Passed(base::Process(handle)), launch_result));
|
| if (BrowserThread::CurrentlyOn(client_thread_id)) {
|
| callback_on_client_thread.Run();
|
| } else {
|
| @@ -119,9 +118,6 @@ void LaunchOnLauncherThread(const NotifyCallback& callback,
|
| BrowserThread::ID client_thread_id,
|
| int child_process_id,
|
| SandboxedProcessLauncherDelegate* delegate,
|
| -#if defined(OS_ANDROID)
|
| - base::ScopedFD ipcfd,
|
| -#endif
|
| mojo::edk::ScopedPlatformHandle client_handle,
|
| base::CommandLine* cmd_line) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::PROCESS_LAUNCHER);
|
| @@ -134,10 +130,8 @@ void LaunchOnLauncherThread(const NotifyCallback& callback,
|
| bool launch_elevated = delegate->ShouldLaunchElevated();
|
| #elif defined(OS_MACOSX)
|
| base::EnvironmentMap env = delegate->GetEnvironment();
|
| - base::ScopedFD ipcfd = delegate->TakeIpcFd();
|
| #elif defined(OS_POSIX) && !defined(OS_ANDROID)
|
| base::EnvironmentMap env = delegate->GetEnvironment();
|
| - base::ScopedFD ipcfd = delegate->TakeIpcFd();
|
| #endif
|
| std::unique_ptr<base::CommandLine> cmd_line_deleter(cmd_line);
|
| base::TimeTicks begin_launch_time = base::TimeTicks::Now();
|
| @@ -170,12 +164,8 @@ void LaunchOnLauncherThread(const NotifyCallback& callback,
|
| DCHECK(mojo_fd.is_valid());
|
|
|
| #if defined(OS_ANDROID)
|
| - if (ipcfd.get() != -1)
|
| - files_to_register->Share(kPrimaryIPCChannel, ipcfd.get());
|
| files_to_register->Share(kMojoIPCChannel, mojo_fd.get());
|
| #else
|
| - if (ipcfd.get() != -1)
|
| - files_to_register->Transfer(kPrimaryIPCChannel, std::move(ipcfd));
|
| files_to_register->Transfer(kMojoIPCChannel, std::move(mojo_fd));
|
| #endif
|
| #endif
|
| @@ -253,8 +243,7 @@ void LaunchOnLauncherThread(const NotifyCallback& callback,
|
| StartChildProcess(
|
| cmd_line->argv(), child_process_id, std::move(files_to_register), regions,
|
| base::Bind(&OnChildProcessStartedAndroid, callback, client_thread_id,
|
| - begin_launch_time, base::Passed(&ipcfd),
|
| - base::Passed(&mojo_fd)));
|
| + begin_launch_time, base::Passed(&mojo_fd)));
|
|
|
| #elif defined(OS_POSIX)
|
| // We need to close the client end of the IPC channel to reliably detect
|
| @@ -454,10 +443,6 @@ void ChildProcessLauncher::Launch(SandboxedProcessLauncherDelegate* delegate,
|
| DCHECK(process_type == switches::kGpuProcess ||
|
| !cmd_line->HasSwitch(switches::kNoSandbox));
|
|
|
| - // 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.
|
| - base::ScopedFD ipcfd(delegate->TakeIpcFd().release());
|
| #endif
|
| mojo::edk::ScopedPlatformHandle server_handle;
|
| mojo::edk::ScopedPlatformHandle client_handle;
|
| @@ -481,9 +466,6 @@ void ChildProcessLauncher::Launch(SandboxedProcessLauncherDelegate* delegate,
|
| BrowserThread::PROCESS_LAUNCHER, FROM_HERE,
|
| base::Bind(&LaunchOnLauncherThread, reply_callback, client_thread_id_,
|
| child_process_id, delegate,
|
| -#if defined(OS_ANDROID)
|
| - base::Passed(&ipcfd),
|
| -#endif
|
| base::Passed(&client_handle), cmd_line));
|
| }
|
|
|
| @@ -528,7 +510,6 @@ void ChildProcessLauncher::DidLaunch(
|
| mojo::edk::ScopedPlatformHandle server_handle,
|
| ZygoteHandle zygote,
|
| #if defined(OS_ANDROID)
|
| - base::ScopedFD ipcfd,
|
| base::ScopedFD mojo_fd,
|
| #endif
|
| base::Process process,
|
| @@ -538,9 +519,6 @@ void ChildProcessLauncher::DidLaunch(
|
|
|
| if (instance.get()) {
|
| instance->Notify(zygote, std::move(server_handle),
|
| -#if defined(OS_ANDROID)
|
| - std::move(ipcfd),
|
| -#endif
|
| std::move(process), error_code);
|
| } else {
|
| if (process.IsValid() && terminate_on_shutdown) {
|
| @@ -555,9 +533,6 @@ void ChildProcessLauncher::DidLaunch(
|
|
|
| void ChildProcessLauncher::Notify(ZygoteHandle zygote,
|
| mojo::edk::ScopedPlatformHandle server_handle,
|
| -#if defined(OS_ANDROID)
|
| - base::ScopedFD ipcfd,
|
| -#endif
|
| base::Process process,
|
| int error_code) {
|
| DCHECK(CalledOnValidThread());
|
|
|