DescriptionFix SPDY error-handling if the connection gets closed just after use.
- Make SpdySession::IsReused() return true if the underlying socket was
UNUSED_IDLE. This makes the HttpNetworkTransaction-level retry try a fresh
socket in case a preconnected socket was stale.
- If the SpdySession closes in an event loop iteration between
HttpStreamFactoryImplJob::DoCreateStream and OnNewSpdySessionReadyCallback,
propogate the error to the request to prevent it from hanging. Do so by
creating the originating request's SpdyHttpStream as soon as the SpdySession
is created so it can sample SpdySession::IsReused() and advise
HttpNetworkTransaction on error.
- Delay pumping the SpdySession read loop by an event loop iteration. This
simplifies some logic and ensures that HttpNetworkTransaction receives a
SpdyHttpStream to advise retry logic. This does mean we lose the error code;
it now follows the asynchronous case and turns into ERR_CONNECTION_CLOSED in
SpdyHttpStream::InitializeStream.
BUG=352156
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=258647
Patch Set 1 #
Messages
Total messages: 8 (0 generated)
|