commit | 70914269abdaa5d208822c1114a9f8e438e290e1 | [log] [tgz] |
---|---|---|
author | bnc <bnc@google.com> | Sat Mar 16 12:49:50 2019 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Sat Mar 16 12:50:35 2019 -0700 |
tree | 66f3cd61e646294d6b51444e43afacb6b1457d0a | |
parent | 6987b4ab40325b3fab82417cf2ad2125a4819030 [diff] |
Improve handing of frames with empty payload in HttpDecoder. The current draft allows HTTP frames to have an empty payload. Before this CL, there were some issues with our implementation: (1) Frames with empty payload were not processed until data from the next frame arrived. (2) OnDataFrameStart() and OnHeadersFrameStart() were only called after some more data (frame payload or next frame) arrived, even though all necessary argument values were already available when the frame header was processed. (3) If a DATA or HEADERS or PUSH_PROMISE frame had no payload, On*FramePayload() was called once with an empty string argument. This CL adds one more state to the state machine, and fixes these issues. It also documents that the |payload| argument of On*FramePayload() cannot be empty by adding some DCHECKs. gfe-relnote: n/a. Change in QUIC v99 only, code path not used in production. PiperOrigin-RevId: 238811718 Change-Id: I020dd16ebdb529a77fb2fa7969a65ceede667530
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.