| Index: content/browser/renderer_host/render_process_host_impl.cc
|
| diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
|
| index 79eeee2ffcf4a1e6665a8871fc4bfd83e2e16baa..09091528fe014fc03ebcdf5dc99f254035818e41 100644
|
| --- a/content/browser/renderer_host/render_process_host_impl.cc
|
| +++ b/content/browser/renderer_host/render_process_host_impl.cc
|
| @@ -831,6 +831,7 @@ bool RenderProcessHostImpl::Init() {
|
| // null, so we re-initialize it here.
|
| if (!channel_)
|
| InitializeChannelProxy();
|
| + DCHECK(pending_connection_);
|
|
|
| // Unpause the Channel briefly. This will be paused again below if we launch a
|
| // real child process. Note that messages may be sent in the short window
|
| @@ -911,7 +912,7 @@ bool RenderProcessHostImpl::Init() {
|
| // at this stage.
|
| child_process_launcher_.reset(new ChildProcessLauncher(
|
| base::MakeUnique<RendererSandboxedProcessLauncherDelegate>(),
|
| - std::move(cmd_line), GetID(), this, child_token_,
|
| + std::move(cmd_line), GetID(), this, std::move(pending_connection_),
|
| base::Bind(&RenderProcessHostImpl::OnMojoError, id_)));
|
| channel_->Pause();
|
|
|
| @@ -934,9 +935,6 @@ void RenderProcessHostImpl::EnableSendQueue() {
|
| }
|
|
|
| void RenderProcessHostImpl::InitializeChannelProxy() {
|
| - // Generate a token used to identify the new child process.
|
| - child_token_ = mojo::edk::GenerateRandomToken();
|
| -
|
| scoped_refptr<base::SingleThreadTaskRunner> io_task_runner =
|
| BrowserThread::GetTaskRunnerForThread(BrowserThread::IO);
|
|
|
| @@ -961,10 +959,11 @@ void RenderProcessHostImpl::InitializeChannelProxy() {
|
| }
|
|
|
| // Establish a ServiceManager connection for the new render service instance.
|
| - child_connection_.reset(new ChildConnection(
|
| - mojom::kRendererServiceName,
|
| - base::StringPrintf("%d_%d", id_, instance_id_++), child_token_, connector,
|
| - io_task_runner));
|
| + pending_connection_.reset(new mojo::edk::PendingProcessConnection);
|
| + child_connection_.reset(
|
| + new ChildConnection(mojom::kRendererServiceName,
|
| + base::StringPrintf("%d_%d", id_, instance_id_++),
|
| + *pending_connection_, connector, io_task_runner));
|
|
|
| // Send an interface request to bootstrap the IPC::Channel. Note that this
|
| // request will happily sit on the pipe until the process is launched and
|
|
|