commit | 1dd87f896364b429d038cfe689d2594b2a2d7ec0 | [log] [tgz] |
---|---|---|
author | Zhongyi Shi <[email protected]> | Thu Jan 03 05:24:48 2019 |
committer | Commit Bot <[email protected]> | Thu Jan 03 05:24:48 2019 |
tree | 41b8ae5ef97b1ae390f96881a3363b863571df53 | |
parent | 9d7ad7ad1afc2644b55ca4b4ff70f4a5cfe8d03e [diff] |
Landing Recent QUIC changes until 1:56 PM, Dec 21, 2018 UTC-8 Use PendingStreams to buffer incoming streams. Behavior changes protected by QUIC version 99 Allow QuicSession to buffer frames for incoming streams in a PendingStream until the first byte arrives, if ShouldBufferIncomingStream() returns true. Change QuicSpdySession to return true for v99 unidirectional streams. Merge internal change: 226538637 https://chromium-review.googlesource.com/c/chromium/src/+/1394084 Changes how QUIC connection IDs are created. Seventh step towards variable length QUIC connection IDs. This CL has more of the codebase treat QUIC connection IDs as opaque bags of bytes instead of uint64_t's. The change is protected by GFE restart flags quic_variable_length_connection_ids_(client|server). This CL also removes the enabling_blocked_by on quic_restart_flag_quic_connection_ids_network_byte_order. Merge internal change: 226428581 https://chromium-review.googlesource.com/c/chromium/src/+/1394083 In QUIC v99, client closes connection if it tries to create a server initiated bidirectional stream. Merge internal change: 226397697 https://chromium-review.googlesource.com/c/chromium/src/+/1393784 Add QpackHeaderTable::inserted_entry_count(). Turns out this quantity is needed for relative indexing on the encoder stream, not the dropped entry count. See https://quicwg.org/base-drafts/draft-ietf-quic-qpack.html#rfc.section.3.2.5. Merge internal change: 226352231 https://chromium-review.googlesource.com/c/chromium/src/+/1393342 Fix ServerSendsVersionNegotiation in http end_to_end_test In tests with the client supporting all versions (from a bucket) and the server supporting all possible versions, the client's choice of version can be one that the server also supports, but not be the head of the list. The current implementation of ServerSendsVersionNegotiation would return true in this case, even though the server won't send version negotiation. (This currently isn't an issue because of which tests are run with TLS enabled and how the buckets are set up, but it will be an issue when there are more version buckets added in the CRYPTO frame CL.) Merge internal change: 226246369 https://chromium-review.googlesource.com/c/chromium/src/+/1393673 Change header type byte in v99 to meet draft 17 https://quicwg.org/base-drafts/draft-ietf-quic-transport.html Merge internal change: 226235106 https://chromium-review.googlesource.com/c/chromium/src/+/1393672 Modify CheckMultiPathResponse to use a client_framer to validate path responses. Merge internal change: 226227650 https://chromium-review.googlesource.com/c/chromium/src/+/1393341 Add two DCHECKs to TestHeadersHandler::ReleaseHeaderList(). Because belts and suspenders. Merge internal change: 226211897 https://chromium-review.googlesource.com/c/chromium/src/+/1393377 Change flag count 'quic_monotonic_epoll_clock' to only increment when time goes backwards. Merge internal change: 226196406 https://chromium-review.googlesource.com/c/chromium/src/+/1393663 Make ReadFileContents take |filename| argument as QuicStringPiece. Merge internal change: 226192259 https://chromium-review.googlesource.com/c/chromium/src/+/1393462 Signal error in QpackProgressiveDecoder if header data prefix is incomplete. Every header block must have a prefix that communicates Largest Reference and Delta Base Index. Make it an error if header block data is terminated without a complete prefix. Merge internal change: 226190644 https://chromium-review.googlesource.com/c/chromium/src/+/1393550 Change behavior of empty QUIC connection IDs. Empty connection IDs (created using either QuicConnectionId() (the default constructor) or EmptyQuicConnectionId()) now have length zero instead of 8. QuicConnectionIdFromUInt64(0) is no longer considered empty. QuicConnectionIdIsEmpty() has been removed. Some test code is changed from EmptyConnectionId() to TestConnectionId() because the code it exercises expects 8-byte connection IDs. Merge internal change: 226099591 https://chromium-review.googlesource.com/c/chromium/src/+/1393549 Adopt QuicConnectionId::ToString(). Switches the parts of the code that need a string representation of a connection ID away from the hop through a uint64_t. Use QuicConnectionId::ToString() to stringify QUIC connection IDs as hex strings instead of decimal strings. Merge internal change: 226060328 https://chromium-review.googlesource.com/c/chromium/src/+/1393525 Change server_address/client_address to self_address/peer_address in ProcessPacketInterface::ProcessPacket and all override methods. Merge internal change: 225995694 https://chromium-review.googlesource.com/c/chromium/src/+/1393446 Fix Quic_Frame.cc output to use correct frame type for APPLICATION_CLOSE frame Quic_frame.cc attempted to output a CONNECTION_CLOSE frame when when the frame was, in fact, an APPLICATION_CLOSE. This CL corrects that. N/A - these frames exist only in version 99 Merge internal change: 225979605 https://chromium-review.googlesource.com/c/chromium/src/+/1393445 Add default virtual destructor for every derived class in QPACK. Merge internal change: 225925387 https://chromium-review.googlesource.com/c/chromium/src/+/1393434 Add stream_id to progressive encoder and decoder. This will be necessary for the encoder to keep track of references to dynamic entries by stream id, and for the decoder so that a Header Acknowledgement instruction (which contains the stream id) can be sent when decoding is complete. Also use the (currently incorrectly defined 32-bit, soon-to-be-64 bit) QuicStreamId type instead of uint64_t for stream IDs. Merge internal change: 225917487 https://chromium-review.googlesource.com/c/chromium/src/+/1393433 Add Header Data Prefix to Qpack{En,De}coder. Encoder does not emit dynamic entries yet, so Largest Reference and Base Index are always zero. Decoder does not decode dynamic entries yet, but at least records Largest Reference and Base Index. Merge internal change: 225908419 https://chromium-review.googlesource.com/c/chromium/src/+/1393334 Add Header Data Prefix instruction and necessary fields. Add support for second varint in QpackInstructoin{En,De}coder. Also rename static bit to S bit, because in the Header Data Prefix it is a Sign. Merge internal change: 225895953 https://chromium-review.googlesource.com/c/chromium/src/+/1392366 Sixth step towards variable length QUIC connection IDs. This CL creates QuicUtils::CreateRandomConnectionId() and adopts it from inside //third_party/quic/. There will be followup CLs to adopt it from our clients, to facilitate our effort of moving them away from QuicConnectionIdFromUInt64(). Merge internal change: 225884942 https://chromium-review.googlesource.com/c/chromium/src/+/1392362 Add QPACK dynamic table.(Prototype code not used in production yet.) Implement dynamic table with synchronous lookup only. The ability to request an entry that has not been added to the table yet and call back with the result later will be added in a future CL. However, as the decoder can request that the encoder never refers to an unacknowledged entry by setting SETTINGS_QPACK_BLOCKED_STREAMS to zero (default value), this functionality will be enough for a compliant (though not maximally efficient) decoder. This CL already uses the nomenclature "dynamic table capacity" and "maximum dynamic table capacity" proposed at https://github.com/quicwg/base-drafts/pull/2115#issuecomment-446796679 which has not been merged into the spec yet. Merge internal change: 225870655 https://chromium-review.googlesource.com/c/chromium/src/+/1392329 Split AppendIetfTypeByte and ProcessIetfTypeByte out from AppendIetfPacketHeader and ProcessIetfPacketHeader. Refactoring only. No functional change expected. Merge internal change: 225827558 https://chromium-review.googlesource.com/c/chromium/src/+/1392359 Change server_address/client_address to self_address/peer_address in buffered packet store. (n/a) Rename only, not protected. Merge internal change: 225817243 https://chromium-review.googlesource.com/c/chromium/src/+/1392177 Change-Id: I073e223e92314ac7fdb69a15098e63ac52855f7c Reviewed-on: https://chromium-review.googlesource.com/c/1394143 Commit-Queue: Zhongyi Shi <[email protected]> Reviewed-by: Nick Harper <[email protected]> Cr-Commit-Position: refs/heads/master@{#619590}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .