Index: content/browser/mojo/mojo_child_connection.cc |
diff --git a/content/browser/mojo/mojo_child_connection.cc b/content/browser/mojo/mojo_child_connection.cc |
index c837cbcb2df5f73b9efd7eb3a7f97a1950d1acb5..91690c1af5e5b344d35d28f45656dd9cdd906cda 100644 |
--- a/content/browser/mojo/mojo_child_connection.cc |
+++ b/content/browser/mojo/mojo_child_connection.cc |
@@ -24,6 +24,12 @@ |
mojo::ScopedMessagePipeHandle shell_client_pipe = |
mojo::edk::CreateParentMessagePipe(shell_client_token_, child_token); |
+ // Some process types get created before the main message loop. In this case |
+ // the shell request pipe will simply be closed, and the child can detect |
+ // this. |
+ if (!MojoShellConnection::GetForProcess()) |
+ return; |
+ |
shell::mojom::ShellClientPtr client; |
client.Bind(mojo::InterfacePtrInfo<shell::mojom::ShellClient>( |
std::move(shell_client_pipe), 0u)); |
@@ -36,10 +42,6 @@ |
params.set_client_process_connection(std::move(client), |
std::move(pid_receiver_request)); |
connection_ = connector->Connect(¶ms); |
-#if defined(OS_ANDROID) |
- service_registry_android_ = ServiceRegistryAndroid::Create( |
- connection_->GetInterfaceRegistry(), connection_->GetRemoteInterfaces()); |
-#endif |
} |
MojoChildConnection::~MojoChildConnection() {} |