commit | 828a57a60771f438521b6bff848ac43401df3d3d | [log] [tgz] |
---|---|---|
author | Victor Vasiliev <[email protected]> | Wed Oct 03 01:46:23 2018 |
committer | Commit Bot <[email protected]> | Wed Oct 03 01:46:23 2018 |
tree | 09034d3d5b8012fdf16651a99dc8feebaea8de59 | |
parent | cf9bf2510b9974c3c4013dc5d4c8a1defdfbac53 [diff] |
Landing Recent QUIC changes until 2:10 PM, Sep 28, 2018 UTC-4 Update QUIC feature flags to the state as of Tue Oct 2 15:08:15 EDT 2018 https://chromium-review.googlesource.com/c/chromium/src/+/1258028 Replace QuicUrlUtils with GURL. Merge internal change: 214964597 https://chromium-review.googlesource.com/c/1256143/ Implement QPACK encoder stream. The encoder stream is a unidirectional stream, so the two endpoints hold it differently. The endpoint that creates the stream has a QpackEncoderStreamSender instance that its QpackEncoder uses. The other side creates a QpackEncoderStreamReceiver instance when it receives the opening data from its peer and notifies its QpackDecoder. Of course each connection has two separate encoder streams corresponding to two independent compression contexts, so every endpoint will end up having one QpackEncoder, one QpackDecoder, one QpackEncoderStreamSender, and one QpackEncoderStreamReceiver. Merge internal change: 214847161 https://chromium-review.googlesource.com/c/1255664/ Fix hex string in QpackEncoderStreamReceiverTest.InsertWithNameReferenceIndexTooLarge. Hex encoded string had odd length; add one character. Merge internal change: 215318537 https://chromium-review.googlesource.com/c/1255664/ Refactor QpackDecoder States. 1. Split up DoNameString() into two methods: DoReadName(), which continues reading the headename, and DoDecodeName(), which does the optional Huffman decoding. Same with DoValueString(). This makes states more atomic and therefore maybe easier to reason about. 2. Add comments to explain the awkward difference between handling empty names and empty values. (The other option would be to handle empty names the same way, which feels wrong because they should never occur in HTTP, but QPACK does not forbid them.) Merge internal change: 214688919 https://chromium-review.googlesource.com/c/1254583/ Get rid of QuicControlFrame. No functional change, not protected. The only thing QuicControlFrame saves the derived classes from doing is to provide a default value(kInvalidControlFrameId), this can easily be done the derived classes too. Merge internal change: 214649060 https://chromium-review.googlesource.com/c/1254582/ Remove QuicSentPacketManager.HasUnackedPackets(), because it is misleading and should not be used externally. Merge internal change: 214612735 https://chromium-review.googlesource.com/c/1254581/ Fix QUIC's path degrading alarm so it is is not set on the server and uses HasInFlightPackets() instead of HasUnackedPackets(). Protected by FLAGS_quic_reloadable_flag_quic_fix_path_degrading_alarm. Merge internal change: 214705628 https://chromium-review.googlesource.com/c/1254581/ Modify QuicSentPacketManagerTest.GetTransmissionTimeCryptoHandshake to verify the exponential backoff of crypto packet retransmission timeout. For v39+, last_crypto_packet_sent_time_ gets updated each time a crypto packet gets sent. For v39-, last_crypto_packet_sent_time_ does not get updated for retransmitted crypto packets. Merge internal change: 214603426 https://chromium-review.googlesource.com/c/1254472/ Deprecate FLAGS_quic_reloadable_flag_quic_fix_retransmit_lost_data. Merge internal change: 214593916 https://chromium-review.googlesource.com/c/1254422/ Move checks on stream ID limits into common method in QuicStream Flag Protected by FLAGS_quic_use_common_stream_check This CL moves functionality that is common for checking on whether the limit on stream creation has been reached into a common QuicStream method. This work is preparatory to adding Version-99/IETF-QUIC's stream ID limits. Merge internal change: 214588549 https://chromium-review.googlesource.com/c/1254482/ Pull all inlined quic frames out of the anonymous struct within QuicFrame. No functional change, not protected. This is similar to what CL 210144041 did to the QuicStreamFrame. By doing this to all inlined frames, the anonymous struct will not contain anything with custom constructors, this allows the code to compile under GCC. The chromium bug for the compile issue with this code is https://bugs.chromium.org/p/chromium/issues/detail?id=882347#c6. The (more general) GCC bug is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77314 Merge internal change: 214536295 https://chromium-review.googlesource.com/c/1254469/ Rename EncodeHeaderSet() to EncodeHeaderList(). Because I renamed header set to header list in the QPACK draft at https://github.com/quicwg/base-drafts/pull/1725. (For some reason the argument of EncodeHeaderSet() was already called |header_list|.) n/a (Prototype code not in production yet.) Merge internal change: 214481848 https://chromium-review.googlesource.com/c/1254468/ Do not use std::string in QPACK code. Use QuicString instead. Merge internal change: 214457698 https://chromium-review.googlesource.com/c/1254467/ Enable timestamps in QUIC ack frames in QuaRTC. Merge internal change: 214450843 https://chromium-review.googlesource.com/c/1254481/ Remove unused QuicTestRandom class from QUIC platform. Merge internal change: 214341130 https://chromium-review.googlesource.com/c/1254465/ Change the vector of static streams in QuicWriteBlockedList from std::vector to QuicInlinedVector. Data structure change, not protected. Merge internal change: 214277121 https://chromium-review.googlesource.com/c/1254463/ Remove unused should_process_data from TestStream's constructor. Merge internal change: 214266461 https://chromium-review.googlesource.com/c/1254461/ Add framer support for IETF QUIC NEW_TOKEN frame. This change adds framer support for the NEW_TOKEN frame defined in IETF QUIC. Frames can be parsed and generated for Verion 99/IETF QUIC packets. Higher level code, to request generation of a NEW_TOKEN frame, or handle receipt of one, is not included in this C/L. Merge internal change: 214257180 https://chromium-review.googlesource.com/c/1254421/ [email protected] Change-Id: Ib8c6977043d47472968b0a5ca9653c38fe13c839 Reviewed-on: https://chromium-review.googlesource.com/c/1258029 Commit-Queue: Victor Vasiliev <[email protected]> Reviewed-by: Bence Béky <[email protected]> Cr-Commit-Position: refs/heads/master@{#596087}
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 .