Chromium Code Reviews| Index: net/websockets/websocket_basic_handshake_stream.cc |
| diff --git a/net/websockets/websocket_basic_handshake_stream.cc b/net/websockets/websocket_basic_handshake_stream.cc |
| index 808383bacf40f99fac7fea6c3640cdb732398ca3..5a2806071f9c57fe1b9079f3465a77f5c720a1a2 100644 |
| --- a/net/websockets/websocket_basic_handshake_stream.cc |
| +++ b/net/websockets/websocket_basic_handshake_stream.cc |
| @@ -234,7 +234,7 @@ bool ValidatePerMessageDeflateExtension(const WebSocketExtension& extension, |
| the_strings_server_and_client_must_be_the_same_length); |
| typedef std::vector<WebSocketExtension::Parameter> ParameterVector; |
| - DCHECK(extension.name() == "permessage-deflate"); |
| + DCHECK_EQ("permessage-deflate", extension.name()); |
| const ParameterVector& parameters = extension.parameters(); |
| std::set<std::string> seen_names; |
| for (ParameterVector::const_iterator it = parameters.begin(); |
| @@ -526,10 +526,19 @@ std::string WebSocketBasicHandshakeStream::GetFailureMessage() const { |
| void WebSocketBasicHandshakeStream::ReadResponseHeadersCallback( |
| const CompletionCallback& callback, |
| int result) { |
| - if (result == OK) |
| + if (result == OK) { |
| result = ValidateResponse(); |
| - else |
| + } else { |
| + std::string message = "Unknown failure"; |
| + const scoped_refptr<HttpResponseHeaders>& headers = |
| + http_response_info_->headers; |
| + if (headers) { |
| + message = base::StringPrintf("Unexpected response code: %d", |
| + headers->response_code()); |
| + } |
| + failure_message_ = "Error during WebSocket handshake: " + message; |
| OnFinishOpeningHandshake(); |
|
Adam Rice
2014/02/03 08:43:52
OnFinishOpeningHandshake() is also called at line
yhirano
2014/02/03 09:32:52
Done in ValidateResponse.
HttpStreamParser return
Adam Rice
2014/02/04 03:52:46
In my tests, HttpStreamParser returns a positive v
yhirano
2014/02/04 04:15:50
Done.
|
| + } |
| callback.Run(result); |
| } |
| @@ -564,7 +573,7 @@ int WebSocketBasicHandshakeStream::ValidateResponse() { |
| // Other status codes are potentially risky (see the warnings in the |
| // WHATWG WebSocket API spec) and so are dropped by default. |
| default: |
| - failure_message_ = base::StringPrintf("Unexpected status code: %d", |
| + failure_message_ = base::StringPrintf("Unexpected response code: %d", |
| headers->response_code()); |
| OnFinishOpeningHandshake(); |
| return ERR_INVALID_RESPONSE; |