Add Http2DecoderAdapter::SetMaxFrameSize(), currently unused.

This CL performs several minor refactors/non-functional changes:
  - Adds a setter SetMaxFrameSize() to store the new value in
    Http2DecoderAdapter and its Http2FrameDecoder member.
  - Renames recv_frame_size_limit_ to max_frame_size_, to reflect that the
    field corresponds to SETTINGS_MAX_FRAME_SIZE.
  - Removes some unneeded local variables.
  - Removes the frame_decoder_->set_maximum_payload_size() call from
    ProcessInput(). This change is a no-op because
    Http2DecoderAdapter's recv_frame_size_limit_/max_frame_size_ before was not
    altered from its default value [1] (so the repeated calls in ProcessInput()
    were no-ops). Furthermore, the default value already matches the
    frame_decoder_ default value for its maximum_payload_size_ [2].
    In production, ResetInternal() is only called in construction.

The addition of SetMaxFrameSize() is important for a future change in
OgHttp2Session, which will call this new method when sending custom
SETTINGS_MAX_FRAME_SIZE values to the peer.

[1] http://google3/third_party/spdy/core/http2_frame_decoder_adapter.h;l=313;rcl=402940499
[2] http://google3/third_party/http2/decoder/http2_frame_decoder.cc;l=37;rcl=433094660

PiperOrigin-RevId: 433892628
3 files changed
tree: 01b033853f5ebf1a14747baa520a92070f02469a
  1. common/
  2. epoll_server/
  3. http2/
  4. quic/
  5. spdy/
  6. CONTRIBUTING.md
  7. LICENSE
  8. README.md
README.md

QUICHE

QUICHE stands for QUIC, Http/2, Etc. It is Google‘s production-ready implementation of QUIC, HTTP/2, HTTP/3, and related protocols and tools. It powers Google’s servers, Chromium, Envoy, and other projects. It is actively developed and maintained.

There are two public QUICHE repositories. Either one may be used by embedders, as they are automatically kept in sync:

To embed QUICHE in your project, platform APIs need to be implemented and build files need to be created. Note that it is on the QUICHE team's roadmap to include default implementation for all platform APIs and to open-source build files. In the meanwhile, take a look at open source embedders like Chromium and Envoy to get started:

To contribute to QUICHE, follow instructions at CONTRIBUTING.md.

QUICHE is only supported on little-endian platforms.