Index: services/shell/public/cpp/lib/shell_connection.cc |
diff --git a/services/shell/public/cpp/lib/shell_connection.cc b/services/shell/public/cpp/lib/shell_connection.cc |
index 53e85917cee34afc0c4505bb72a7c61d05f98218..c72f9732fdfabe516b47f66d3fc311813767eba7 100644 |
--- a/services/shell/public/cpp/lib/shell_connection.cc |
+++ b/services/shell/public/cpp/lib/shell_connection.cc |
@@ -10,7 +10,6 @@ |
#include "mojo/public/cpp/bindings/interface_ptr.h" |
#include "mojo/public/cpp/bindings/interface_request.h" |
#include "services/shell/public/cpp/capabilities.h" |
-#include "services/shell/public/cpp/connector.h" |
#include "services/shell/public/cpp/lib/connection_impl.h" |
#include "services/shell/public/cpp/lib/connector_impl.h" |
#include "services/shell/public/cpp/shell_client.h" |
@@ -21,11 +20,16 @@ namespace shell { |
// ShellConnection, public: |
ShellConnection::ShellConnection(shell::ShellClient* client, |
- mojom::ShellClientRequest request) |
- : client_(client), binding_(this) { |
- mojom::ConnectorPtr connector; |
- pending_connector_request_ = GetProxy(&connector); |
- connector_.reset(new ConnectorImpl(std::move(connector))); |
+ mojom::ShellClientRequest request, |
+ std::unique_ptr<Connector> connector, |
+ mojom::ConnectorRequest connector_request) |
+ : pending_connector_request_(std::move(connector_request)), |
+ client_(client), binding_(this), connector_(std::move(connector)) { |
+ if (!connector_) { |
+ connector_ = Connector::Create(&pending_connector_request_); |
+ } else { |
+ DCHECK(pending_connector_request_.is_pending()); |
+ } |
DCHECK(request.is_pending()); |
binding_.Bind(std::move(request)); |