Change QuicSpdyStreamBodyBuffer API to decouple from QuicStreamSequencer.

The primary motivation is cleaner tests.

Before this CL:
* QuicSpdyStreamBodyBuffer keeps QuicStreamSequencer* but only calls a single
  method,
* MockSequencer is defined but its mock method is never called,
  because QuicStreamSequencer::MarkConsumed() is not virtual,
* a MockStream is needed for QuicStreamSequencer,
* QuicStreamFrames have to be constructed and fed to QuicStreamSequencer so that
  it does not crash on MarkConsumed() calls which cannot be mocked, but data is
  never actually read from QuicStreamSequencer,
* an HttpEncoder has to be used to create actual frame headers to feed to
  QuicStreamSequencer which are then not read,
* MockStream method calls triggered by QuicStreamSequencer::MarkConsumed() are
  tested, which only indirectly tests QuicSpdyStreamBodyBuffer behavior.

After this CL:
* QuicSpdyStreamBodyBuffer methods return size_t, caller must call
  QuicStreamSequencer::MarkConsumed(),
* no QuicStreamSequencer is needed,
* no MockStream is needed,
* no HttpEncoder is needed (int literals are used for frame header length),
* no QuicStreamFrames are needed,
* QuicSpdyStreamBodyBuffer behavior is directly tested by verifying return value.

gfe-relnote: n/a, no functional change to QUIC v99-only class.
PiperOrigin-RevId: 259526373
Change-Id: I3e67bf924649f0c12bd9706d9ebe13ec4be8e1bb
4 files changed
tree: e53e242a18fdeb0445277e4d8b481ac87a92fcd1
  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.

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.