| Index: mojo/services/network/network_service_impl.cc
|
| diff --git a/mojo/services/network/network_service_impl.cc b/mojo/services/network/network_service_impl.cc
|
| index b86bcec5a3269157bd5381364fc255552814b44b..6026686e60bb4de47c5cbb7a079aa1525519b23f 100644
|
| --- a/mojo/services/network/network_service_impl.cc
|
| +++ b/mojo/services/network/network_service_impl.cc
|
| @@ -16,9 +16,11 @@
|
|
|
| namespace mojo {
|
|
|
| -NetworkServiceImpl::NetworkServiceImpl(ApplicationConnection* connection,
|
| +NetworkServiceImpl::NetworkServiceImpl(InterfaceRequest<NetworkService> request,
|
| + ApplicationConnection* connection,
|
| NetworkContext* context)
|
| - : context_(context),
|
| + : binding_(this, request.Pass()),
|
| + context_(context),
|
| origin_(GURL(connection->GetRemoteApplicationURL()).GetOrigin()) {
|
| }
|
|
|
| @@ -41,25 +43,27 @@ void NetworkServiceImpl::CreateURLLoader(InterfaceRequest<URLLoader> loader) {
|
| }
|
|
|
| void NetworkServiceImpl::GetCookieStore(InterfaceRequest<CookieStore> store) {
|
| - BindToRequest(new CookieStoreImpl(context_, origin_), &store);
|
| + new CookieStoreImpl(store.Pass(), context_, origin_);
|
| }
|
|
|
| void NetworkServiceImpl::CreateWebSocket(InterfaceRequest<WebSocket> socket) {
|
| - BindToRequest(new WebSocketImpl(context_), &socket);
|
| + new WebSocketImpl(socket.Pass(), context_);
|
| }
|
|
|
| void NetworkServiceImpl::CreateTCPBoundSocket(
|
| NetAddressPtr local_address,
|
| InterfaceRequest<TCPBoundSocket> bound_socket,
|
| const CreateTCPBoundSocketCallback& callback) {
|
| - scoped_ptr<TCPBoundSocketImpl> bound(new TCPBoundSocketImpl);
|
| + scoped_ptr<TCPBoundSocketImpl> bound(
|
| + new TCPBoundSocketImpl(bound_socket.Pass()));
|
| int net_error = bound->Bind(local_address.Pass());
|
| if (net_error != net::OK) {
|
| callback.Run(MakeNetworkError(net_error), NetAddressPtr());
|
| return;
|
| }
|
| NetAddressPtr resulting_local_address(bound->GetLocalAddress());
|
| - BindToRequest(bound.release(), &bound_socket);
|
| + // Release the implementation and let its lifecycle be managed by the pipe.
|
| + ignore_result(bound.release());
|
| callback.Run(MakeNetworkError(net::OK), resulting_local_address.Pass());
|
| }
|
|
|
|
|