Signal error on PUSH_PROMISE and CANCEL_PUSH frames. Since HttpEncoder is not capable of sending MAX_PUSH_ID frames, receiving these frames is a violation of the spec. For simplicity, use the error code H3_FRAME_ERROR. This is incorrect, because receiving a PUSH_PROMISE frame by the client on the control stream, or receiving a CANCEL_PUSH frame either by the client or by the server on the control stream should trigger an H3_ID_ERROR, and these frames in other cases should trigger a H3_FRAME_UNEXPECTED error. However, it is expected to be exceedingly rare for any endpoint to send such frames without receiving a MAX_PUSH_ID frame, so the error code does not matter as much as actually closing the connection. Protected by FLAGS_quic_reloadable_flag_quic_error_on_http3_push. PiperOrigin-RevId: 370762371 Change-Id: I18d4d29e95faf9919858bada73ef0b5912afbd8b
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.