commit | ab33c71abe965c573ccedadc54d38350524017af | [log] [tgz] |
---|---|---|
author | bnc <bnc@google.com> | Fri Jun 28 15:42:15 2019 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Jul 02 19:30:12 2019 -0700 |
tree | b4e6dbdd944251d1a9875edb75c183c1e920824a | |
parent | b932f95f81e3aa2f2d45c750094a304cacfca60c [diff] |
Do not pretend receiving FIN when receiving trailers in QUIC v99. In Google QUIC, trailing HEADERS must have FIN bit. In IETF QUIC, HTTP/3 frames do not have flags, so trailing HEADERS will never have FIN. This CL makes QuicSpdyStream stop faking a FIN bit. In non-v99 QUIC, |fin| must be true at the end of OnTrailingHeadersComplete(), otherwise the connection would have been closed in line 568. In v99 QUIC, |fin| is false in production, when OnStreamHeaderList() is called from OnHeadersFrameEnd(). However, a large number of tests call OnStreamHeaderList() with fin = true, so this needs to be supported for the time being. See linked bug. This is prework for https://crbug.com/978733. I do not want QuicSpdyStream to close the connection when trailers arrive, so that it can signal an error if other frames are received afterwards. Also, according to https://quicwg.org/base-drafts/draft-ietf-quic-http.html#request-response, PUSH_PROMISE frames can arrive after trailers, so the stream really should remain open. This CL also fixes descriptions of some QuicSpdyStream methods related to FIN flag. gfe-relnote: n/a, QUIC v99-only change. PiperOrigin-RevId: 255681867 Change-Id: I33928191e35d601514a0be5b18b8aa5ff389c831
QUICHE (QUIC, Http/2, Etc) is Google‘s implementation of QUIC and related protocols. It powers Chromium as well as Google’s QUIC servers and some other projects.
The code is currently in process of being moved from https://cs.chromium.org/chromium/src/net/third_party/ into this repository. Please excuse our appearance while we're under construction.