Index: net/websockets/websocket_stream.cc |
diff --git a/net/websockets/websocket_stream.cc b/net/websockets/websocket_stream.cc |
index 5920826eb69cd312a26ed043750e34845bbec70d..ca73a53a431c03ef69dd6c2a84147dad439c55b2 100644 |
--- a/net/websockets/websocket_stream.cc |
+++ b/net/websockets/websocket_stream.cc |
@@ -148,9 +148,13 @@ class WebSocketStreamRequestImpl : public WebSocketStreamRequest { |
timer_->Stop(); |
+ std::unique_ptr<URLRequest> url_request = std::move(url_request_); |
WebSocketHandshakeStreamBase* handshake_stream = handshake_stream_; |
handshake_stream_ = nullptr; |
connect_delegate_->OnSuccess(handshake_stream->Upgrade()); |
+ |
+ // This is safe even if |this| has already been deleted. |
+ url_request->CancelWithError(ERR_WEBSOCKET_HANDSHAKE_SUCCESS); |
} |
std::string FailureMessageFromNetError(int net_error) { |