| Index: mojo/shell/runner/child/runner_connection.cc
|
| diff --git a/mojo/shell/runner/child/runner_connection.cc b/mojo/shell/runner/child/runner_connection.cc
|
| index 313c00a338d7bdade01b3a465639378835f78a0b..75b4648dc0db58f70f7753fe65959533d4e84baa 100644
|
| --- a/mojo/shell/runner/child/runner_connection.cc
|
| +++ b/mojo/shell/runner/child/runner_connection.cc
|
| @@ -74,6 +74,13 @@
|
| using GotApplicationRequestCallback =
|
| base::Callback<void(InterfaceRequest<mojom::ShellClient>)>;
|
|
|
| +void OnCreateMessagePipe(ScopedMessagePipeHandle* result,
|
| + Blocker::Unblocker unblocker,
|
| + ScopedMessagePipeHandle pipe) {
|
| + *result = std::move(pipe);
|
| + unblocker.Unblock(base::Bind(&base::DoNothing));
|
| +}
|
| +
|
| void OnGotApplicationRequest(InterfaceRequest<mojom::ShellClient>* out_request,
|
| InterfaceRequest<mojom::ShellClient> request) {
|
| *out_request = std::move(request);
|
| @@ -222,10 +229,13 @@
|
| std::string primordial_pipe_token =
|
| base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
| switches::kPrimordialPipeToken);
|
| - handle = edk::CreateChildMessagePipe(primordial_pipe_token);
|
| - }
|
| -
|
| - DCHECK(handle.is_valid());
|
| + Blocker blocker;
|
| + edk::CreateChildMessagePipe(
|
| + primordial_pipe_token,
|
| + base::Bind(&OnCreateMessagePipe, base::Unretained(&handle),
|
| + blocker.GetUnblocker()));
|
| + blocker.Block();
|
| + }
|
|
|
| Blocker blocker;
|
| controller_runner_->PostTask(
|
|
|