In WebTransport, make FIN be a return of Read() method rather than a visitor call.

Currently, we notify the reader about FIN being read by calling Visitor::OnFinRead inside Read().  This has a problem that FIN can be processed *before* the final chunk of data in the stream (which would be processed after Read() returns).

As far as I can tell, the only reason this code works as-is is mostly a series of coincidences, and as soon as I tried to exercise it more carefully in one of WebTransport over HTTP/3 tests, it failed.

PiperOrigin-RevId: 366824443
Change-Id: Ie803f2ed206333eba683065f6251216a9c549fd7
10 files changed
tree: 05042540df98555489896a4c3780c3dd53667a10
  1. common/
  2. epoll_server/
  3. http2/
  4. quic/
  5. spdy/
  6. CONTRIBUTING.md
  7. LICENSE
  8. README.md
README.md

QUICHE

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. QUICHE is only supported on little-endian platforms.

Code can be viewed in CodeSearch in Quiche and is imported into Chromium.