Index: net/websockets/websocket_stream.cc |
diff --git a/net/websockets/websocket_stream.cc b/net/websockets/websocket_stream.cc |
index e81c24e706e702c83d152bd5671f75c27b90d78b..b245739aceb7bf7692b4875872c2b464a4d011ad 100644 |
--- a/net/websockets/websocket_stream.cc |
+++ b/net/websockets/websocket_stream.cc |
@@ -70,7 +70,20 @@ class StreamRequestImpl : public WebSocketStreamRequest { |
} |
void ReportFailure() { |
- connect_delegate_->OnFailure(kWebSocketErrorAbnormalClosure); |
+ std::string failure_message; |
+ if (create_helper_->stream()) { |
+ failure_message = create_helper_->stream()->FailureMessage(); |
+ } else { |
+ const URLRequestStatus& status = url_request_.status(); |
+ if (status.status() == URLRequestStatus::CANCELED) { |
+ failure_message = "WebSocket opening handshake was canceled"; |
+ } else if (status.status() == URLRequestStatus::FAILED) { |
+ failure_message = |
+ std::string("Error in connection establishment: ") + |
+ ErrorToString(status.error()); |
+ } |
+ } |
+ connect_delegate_->OnFailure(failure_message); |
} |
private: |