Index: trunk/src/net/websockets/websocket_basic_handshake_stream.cc |
=================================================================== |
--- trunk/src/net/websockets/websocket_basic_handshake_stream.cc (revision 282330) |
+++ trunk/src/net/websockets/websocket_basic_handshake_stream.cc (working copy) |
@@ -539,11 +539,20 @@ |
} |
void WebSocketBasicHandshakeStream::OnFinishOpeningHandshake() { |
+ DCHECK(connect_delegate_); |
DCHECK(http_response_info_); |
- WebSocketDispatchOnFinishOpeningHandshake(connect_delegate_, |
- url_, |
- http_response_info_->headers, |
- http_response_info_->response_time); |
+ scoped_refptr<HttpResponseHeaders> headers = http_response_info_->headers; |
+ // If the headers are too large, HttpStreamParser will just not parse them at |
+ // all. |
+ if (headers) { |
+ scoped_ptr<WebSocketHandshakeResponseInfo> response( |
+ new WebSocketHandshakeResponseInfo(url_, |
+ headers->response_code(), |
+ headers->GetStatusText(), |
+ headers, |
+ http_response_info_->response_time)); |
+ connect_delegate_->OnFinishOpeningHandshake(response.Pass()); |
+ } |
} |
int WebSocketBasicHandshakeStream::ValidateResponse(int rv) { |