Index: net/socket/websocket_transport_client_socket_pool.cc |
diff --git a/net/socket/websocket_transport_client_socket_pool.cc b/net/socket/websocket_transport_client_socket_pool.cc |
index 131a9662e9ee37905c0fc20019e5894440f5c7f9..648652040ef2b84f89d96a2756ed8f1f69697a12 100644 |
--- a/net/socket/websocket_transport_client_socket_pool.cc |
+++ b/net/socket/websocket_transport_client_socket_pool.cc |
@@ -360,8 +360,12 @@ void WebSocketTransportClientSocketPool::RequestSockets( |
void WebSocketTransportClientSocketPool::CancelRequest( |
const std::string& group_name, |
ClientSocketHandle* handle) { |
+ DCHECK(!handle->is_initialized()); |
if (DeleteStalledRequest(handle)) |
return; |
+ scoped_ptr<StreamSocket> socket = handle->PassSocket(); |
+ if (socket) |
+ ReleaseSocket(handle->group_name(), socket.Pass(), handle->id()); |
if (!DeleteJob(handle)) |
pending_callbacks_.erase(handle); |
if (!ReachedMaxSocketsLimit() && !stalled_request_queue_.empty()) |