commit | caf68bd38245dec8464a424e13c146c398862004 | [log] [tgz] |
---|---|---|
author | bnc <bnc@google.com> | Tue Mar 30 05:43:18 2021 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Mar 30 05:44:47 2021 -0700 |
tree | 9d55eb3dffdb665741d7c0f3211c5103264826b1 | |
parent | cff6df57ecd63f7068b61e88b97678dcfa6f2403 [diff] |
Avoid unnecessary copy in HttpDecoder if entire payload is present. Move parsing logic from FinishParsing() to ParseEntirePayload() for CANCEL_PUSH, SETTINGS, GOAWAY, MAX_PUSH_ID, PRIORITY_UPDATE, PRIORITY_UPDATE_REQUEST_STREAM, and ACCEPT_CH frame types. Skip FinishParsing() for these frames except when payload is empty, when ReadFramePayload() is skipped. Rename BufferFramePayload() to BufferOrParsePayload(), only buffer if necessary, and call ParseEntirePayload() when possible. Pass QuicDataReader to FinishParsing() to make it convenient to pass it on to BufferOrParsePayload() where nothing is read from it. PiperOrigin-RevId: 365791256 Change-Id: I3fa150e2b886f024de01f85a6b25e5953a8cb0ec
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.