Landing Recent QUIC changes until Fri Aug 4 19:57:17 2017 +0000

Desktop / Chromium - Ryan Hamilton [chromium.org] - 9 August 2017 21:55 EDT

Remove unused QUIC flags.

https://chromium-review.googlesource.com/c/608758


Addressing watchdog death in PacketNumberQueue::Add

Protected by existing flag FLAGS_quic_reloadable_flag_quic_frames_deque.

Merge internal change: 164298196 https://chromium-review.googlesource.com/c/609161


(1) Add test for QuicTextUtils::HexDump to make sure that 0x20 is printed as '.' (even though it is "printable" according to Wikipedia), and to make sure that values above numeric_limits::max() are cast properly (because char is signed on certain Chromium platforms). Kudos to diannahu@ for pointing these out at https://crrev.com/c/596076.

(2) Fix typo: s/QuicTextUtilsText/QuicTextUtilsTest/ in gfe/quic/platform/api/quic_text_utils_test.cc.

Merge internal change: 164258424 https://chromium-review.googlesource.com/c/609085


Move the QuicClient NetworkHelpers to their own files.

Merge internal change: 164167455 https://chromium-review.googlesource.com/c/609102


This CL extracts the network functionality from QuicClientBase and moves it into its own helper class. This will allow the same etwork helpers to be used across different implementations of QuicClient.

QuicClientBase::NetworkHelper - functions that manage creating sockets, managing addresses, and running the event loop.

QuicClientEpollNetworkHelper (is a QuicClientBase::NetworkHelper) - handles creating fds and managing the epoll server.

QuicClient (is a QuicSpdyClientBase) - contains a QuicClientEpollNetworkHelper. This should be a no-op change from the original QuicClient in terms of usage.

Merge internal change: 164145756 https://chromium-review.googlesource.com/c/607158


Promote a DCHECK to QUIC_BUG in quic_dispatcher.cc to debug QUIC INVALID_STREAM_DATA regression.

Merge internal change: 164058416 https://chromium-review.googlesource.com/c/607347


Small optimizations for PacketNumberQueue. Protected by existing flag FLAGS_quic_reloadable_flag_quic_frames_deque.

Merge internal change: 164031971 https://chromium-review.googlesource.com/c/607215


Rename Add to AddRange in PacketNumberQueue

n/a (renaming variable)

Merge internal change: 164018485 https://chromium-review.googlesource.com/c/607097


Rename QuicClientSessionBase to QuicSpdyClientSessionBase and QuicClientSession to QuicSpdyClientSession to correctly reflect their nature.

Merge internal change: 163979912 https://chromium-review.googlesource.com/c/607095


Actually instantiate CryptoHandshakeMessageTest so it actually runs :( Also fix CryptoHandshakeMessageTest.ServerDesignatedConnectionId which appears to have broken during the endian swapping refactor.

Merge internal change: 163903157 https://chromium-review.googlesource.com/c/607147


Actually instantiate CryptoFramerTests and QuicEpollAlarmFactoryTest so they actually run :(

Merge internal change: 163901212 https://chromium-review.googlesource.com/c/607055


Add a new ack decimation connection options to QUIC (AKDU) hich will aggregate only based on fraction of RTT. Protected by FLAGS_quic_reloadable_flag_quic_ack_decimation.

Merge internal change: 163879477 https://chromium-review.googlesource.com/c/607090


Adding flag count.

Protected by existing flag FLAGS_quic_reloadable_flag_quic_handle_acks.

Merge internal change: 163849139 https://chromium-review.googlesource.com/c/607087


Extract spdy specific details from QuicClientBase into its own class, QuicSpdyClientBase. Make QuicClient inherit from QuicSpdyClientBase. This is in prep for adding a new type of [non-H2] application protocol on top of Quic.

n/a refactor of QuicClientBase.

Merge internal change: 163739840 https://chromium-review.googlesource.com/c/607027


editorial change to some internal variable names

Fix typos in some variable names so that the format testers do not complain. Need to change these because a follow-on CL/162251542 makes substantive changes and the format checkers complain about the typos.

Merge internal change: 163711631 https://chromium-review.googlesource.com/c/606705


Use ExtractBits() for processing QUIC stream frame type byte

CL/163211775 added ExtractBits() for processing Ack Frame type bytes and it probably makes bit twiddling logic errors less likely. This change makes use of that helper function in the stream frame and adds SetBits() as the corresponding helper to construct type bytes.

Merge internal change: 163692528 https://chromium-review.googlesource.com/c/606735


Change-Id: I8b8f95c0b3bf56c28ccf012ee5575987744ef76f Reviewed-on: https://chromium-review.googlesource.com/609203 Commit-Queue: Ryan Hamilton

c440230 Landing Recent QUIC changes until Fri Aug 4 19:57:17 2017 +0000
net/BUILD.gn | 16 +-
net/quic/chromium/quic_chromium_client_session.cc | 15 +-
net/quic/chromium/quic_chromium_client_session.h | 4 +-
net/quic/chromium/quic_chromium_client_stream.cc | 2 +-
net/quic/chromium/quic_chromium_client_stream.h | 6 +-
.../chromium/quic_chromium_client_stream_test.cc | 10 +-
net/quic/chromium/quic_test_packet_maker.cc | 8 +-
net/quic/core/crypto/crypto_framer_test.cc | 5 +
.../core/crypto/crypto_handshake_message_test.cc | 9 +-
net/quic/core/crypto/crypto_protocol.h | 2 +
net/quic/core/frames/quic_ack_frame.cc | 117 +++++----
net/quic/core/frames/quic_ack_frame.h | 2 +-
net/quic/core/frames/quic_frames_test.cc | 171 ++++++++++---
net/quic/core/quic_client_promised_info.cc | 7 +-
net/quic/core/quic_client_promised_info.h | 10 +-
net/quic/core/quic_client_promised_info_test.cc | 17 +-
net/quic/core/quic_client_push_promise_index.h | 2 +-
.../core/quic_client_push_promise_index_test.cc | 19 +-
net/quic/core/quic_connection.cc | 20 +-
net/quic/core/quic_connection.h | 5 +-
net/quic/core/quic_connection_test.cc | 72 +++++-
net/quic/core/quic_flags_list.h | 13 +-
net/quic/core/quic_framer.cc | 124 ++++++----
net/quic/core/quic_framer_test.cc | 15 +-
net/quic/core/quic_sent_packet_manager.cc | 1 +
net/quic/core/quic_sent_packet_manager_test.cc | 10 +-
...on_base.cc => quic_spdy_client_session_base.cc} | 43 ++--
...sion_base.h => quic_spdy_client_session_base.h} | 18 +-
net/quic/platform/api/quic_text_utils_test.cc | 33 ++-
net/quic/test_tools/mock_crypto_client_stream.cc | 8 +-
net/quic/test_tools/mock_crypto_client_stream.h | 4 +-
.../test_tools/mock_quic_client_promised_info.cc | 2 +-
.../test_tools/mock_quic_client_promised_info.h | 2 +-
.../test_tools/mock_quic_spdy_client_stream.cc | 5 +-
net/quic/test_tools/mock_quic_spdy_client_stream.h | 2 +-
net/quic/test_tools/quic_test_utils.cc | 2 +-
net/quic/test_tools/quic_test_utils.h | 4 +-
net/tools/quic/end_to_end_test.cc | 242 +++++++++---------
net/tools/quic/quic_client.cc | 163 +++----------
net/tools/quic/quic_client.h | 85 ++-----
net/tools/quic/quic_client_base.cc | 267 +++-----------------
net/tools/quic/quic_client_base.h | 240 ++++++------------
net/tools/quic/quic_client_epoll_network_helper.cc | 185 ++++++++++++++
net/tools/quic/quic_client_epoll_network_helper.h | 125 ++++++++++
.../quic_client_message_loop_network_helper.cc | 146 +++++++++++
.../quic/quic_client_message_loop_network_helper.h | 84 +++++++
net/tools/quic/quic_dispatcher.cc | 5 +-
net/tools/quic/quic_epoll_alarm_factory_test.cc | 4 +
net/tools/quic/quic_simple_client.cc | 116 +--------
net/tools/quic/quic_simple_client.h | 44 +---
net/tools/quic/quic_spdy_client_base.cc | 270 +++++++++++++++++++++
net/tools/quic/quic_spdy_client_base.h | 215 ++++++++++++++++
...ient_session.cc => quic_spdy_client_session.cc} | 49 ++--
...client_session.h => quic_spdy_client_session.h} | 28 +--
...on_test.cc => quic_spdy_client_session_test.cc} | 86 +++----
net/tools/quic/quic_spdy_client_stream.cc | 4 +-
net/tools/quic/quic_spdy_client_stream.h | 6 +-
net/tools/quic/quic_spdy_client_stream_test.cc | 17 +-
net/tools/quic/test_tools/quic_client_peer.cc | 11 +-
net/tools/quic/test_tools/quic_test_client.cc | 126 +++++++---
net/tools/quic/test_tools/quic_test_client.h | 29 +--
61 files changed, 2060 insertions(+), 1292 deletions(-)

Upstream: git.chromium.org


  • Share