| Index: mojo/shell/public/cpp/lib/connector_impl.cc
|
| diff --git a/mojo/shell/public/cpp/lib/connector_impl.cc b/mojo/shell/public/cpp/lib/connector_impl.cc
|
| index cc12dbb01dd13b7d7c73d2e25153b4a1341f3ed8..74edbe4d1e8bc5d91b328f93caa938114b764334 100644
|
| --- a/mojo/shell/public/cpp/lib/connector_impl.cc
|
| +++ b/mojo/shell/public/cpp/lib/connector_impl.cc
|
| @@ -61,10 +61,28 @@ scoped_ptr<Connection> ConnectorImpl::Connect(ConnectParams* params) {
|
| params->target().name(), params->target(),
|
| shell::mojom::kInvalidInstanceID, std::move(remote_interfaces),
|
| std::move(local_request), allowed, Connection::State::PENDING));
|
| +
|
| + shell::mojom::ShellClientFactoryPtr shell_client_factory;
|
| + shell::mojom::PIDReceiverRequest pid_receiver_request;
|
| + params->TakeClientProcessConnection(&shell_client_factory,
|
| + &pid_receiver_request);
|
| + shell::mojom::ClientProcessConnectionPtr client_process_connection;
|
| + if (shell_client_factory.is_bound() && pid_receiver_request.is_pending()) {
|
| + client_process_connection = shell::mojom::ClientProcessConnection::New();
|
| + client_process_connection->shell_client_factory =
|
| + shell_client_factory.PassInterface().PassHandle();
|
| + client_process_connection->pid_receiver_request =
|
| + pid_receiver_request.PassMessagePipe();
|
| + } else if (shell_client_factory.is_bound() ||
|
| + pid_receiver_request.is_pending()) {
|
| + NOTREACHED() << "If one of shell_client_factory or pid_receiver_request is"
|
| + << "valid, both must be valid.";
|
| + return std::move(registry);
|
| + }
|
| connector_->Connect(
|
| shell::mojom::Identity::From(params->target()),
|
| std::move(remote_request), std::move(local_interfaces),
|
| - registry->GetConnectCallback());
|
| + std::move(client_process_connection), registry->GetConnectCallback());
|
| return std::move(registry);
|
| }
|
|
|
|
|