Land Recent QUIC Changes
commit9bb57c7152c7b430c2338c7f1c7a5404e421774f
authorrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Mon, 31 Mar 2014 20:36:04 +0000 (31 20:36 +0000)
committerrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Mon, 31 Mar 2014 20:36:04 +0000 (31 20:36 +0000)
tree2dc4141440e75fd0a82cd280add80d6418306909
parent8bd5938206ed01f45172f423cd26889404800d3d
Land Recent QUIC Changes

Remove a LOG_IF(DFATAL) for retransmitting packets which were never
given a sent time.

This DCHECK was firing on Chrome when Windows buffered a packet and
before the callback for the packet being sent, Chrome received a server
reject and had to change crypto context and retransmit all unacked
packets.

Merge internal change: 63686840
https://codereview.chromium.org/214413009/

Rename of QUIC flow control member variables to be more explicit (prefix
flow_control) and more descriptive ("max" instead of "initial").

Merge internal change: 63599012
https://codereview.chromium.org/215423003/

Change comment in QuicSessionTest to be more accurate, and add another
expectation to ensure stream is not flow control blocked before sending
any data.

Merge internal change: 63604321

Fixed compilation warnings in quic_sent_packet_manager_test.cc.

https://codereview.chromium.org/214823010/

Added UseWriter changes to QuicTestClient while porting internal
code that handles the client side of unwinding UDP proxied QUIC changes.

Merge internal change: 63542972
https://codereview.chromium.org/214083003/

Change to QUIC's SendAlgorithmInterface to remove IsHandshake from
TimeUntilSend.

Changed QuicSentPacketManager to ensure it always retransmitted crypto
handshake packets before other retransmissions.

Merge internal change: 63540663
https://codereview.chromium.org/214923003/

Removing TransmissionType from QUIC's TimeUntilSend method.

The only real user was was TcpCubicSender for tail loss probe, and TLP
is better fully contained within the SentPacketManager.

Merge internal change: 63501475
https://codereview.chromium.org/214083002/

Removed unnecessary transmission_type from Quic's send algorithm
interface.

The few remaining uses were improper, so there is a minor change in
behavior.

Merge internal change: 63480011
https://codereview.chromium.org/211693004/

Introduce QUIC_VERSION_17: per-stream flow control. Default send window
is 16 KB, and the client/server can specify higher values in their
CHLO/SHLO messages. WINDOW_UPDATE frames are sent when the receiver has
consumed more than half of their receive window (behavior copied from
SPDY), and BLOCKED frames are sent if a write is attempted while flow
control blocked.

Protected behind FLAGS_enable_quic_stream_flow_control.

Merge internal change: 63474251
https://codereview.chromium.org/211743005/

Adding an accessor to quic dispatcher.

Merge internal change: 63470311
https://codereview.chromium.org/208273008/

R=rch@chromium.org

Review URL: https://codereview.chromium.org/215663002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260637 0039d316-1c4b-4281-b951-d872f2087c98
88 files changed:
net/net.gyp
net/quic/congestion_control/channel_estimator.cc
net/quic/congestion_control/fix_rate_sender.cc
net/quic/congestion_control/fix_rate_sender.h
net/quic/congestion_control/fix_rate_test.cc
net/quic/congestion_control/inter_arrival_bitrate_ramp_up.cc
net/quic/congestion_control/inter_arrival_overuse_detector.cc
net/quic/congestion_control/inter_arrival_probe.cc
net/quic/congestion_control/inter_arrival_sender.cc
net/quic/congestion_control/inter_arrival_sender.h
net/quic/congestion_control/inter_arrival_sender_test.cc
net/quic/congestion_control/pacing_sender.cc
net/quic/congestion_control/pacing_sender.h
net/quic/congestion_control/pacing_sender_test.cc
net/quic/congestion_control/send_algorithm_interface.h
net/quic/congestion_control/tcp_cubic_sender.cc
net/quic/congestion_control/tcp_cubic_sender.h
net/quic/congestion_control/tcp_cubic_sender_test.cc
net/quic/crypto/crypto_server_test.cc
net/quic/crypto/quic_crypto_client_config.cc
net/quic/crypto/quic_crypto_client_config.h
net/quic/crypto/quic_crypto_client_config_test.cc
net/quic/crypto/quic_crypto_server_config.cc
net/quic/crypto/quic_crypto_server_config.h
net/quic/quic_client_session.cc
net/quic/quic_config.cc
net/quic/quic_config.h
net/quic/quic_config_test.cc
net/quic/quic_connection.cc
net/quic/quic_connection.h
net/quic/quic_connection_test.cc
net/quic/quic_crypto_client_stream.cc
net/quic/quic_crypto_client_stream_test.cc
net/quic/quic_crypto_server_stream.cc
net/quic/quic_crypto_stream.cc
net/quic/quic_crypto_stream.h
net/quic/quic_crypto_stream_test.cc
net/quic/quic_data_stream.cc
net/quic/quic_data_stream.h
net/quic/quic_data_stream_test.cc
net/quic/quic_end_to_end_unittest.cc
net/quic/quic_flags.cc [new file with mode: 0644]
net/quic/quic_flags.h [new file with mode: 0644]
net/quic/quic_framer.cc
net/quic/quic_headers_stream.cc
net/quic/quic_headers_stream.h
net/quic/quic_headers_stream_test.cc
net/quic/quic_http_stream_test.cc
net/quic/quic_protocol.cc
net/quic/quic_protocol.h
net/quic/quic_received_packet_manager.cc
net/quic/quic_sent_packet_manager.cc
net/quic/quic_sent_packet_manager.h
net/quic/quic_sent_packet_manager_test.cc
net/quic/quic_session.cc
net/quic/quic_session.h
net/quic/quic_session_test.cc
net/quic/quic_stream_factory.cc
net/quic/quic_stream_sequencer.cc
net/quic/quic_stream_sequencer.h
net/quic/quic_stream_sequencer_test.cc
net/quic/reliable_quic_stream.cc
net/quic/reliable_quic_stream.h
net/quic/reliable_quic_stream_test.cc
net/quic/test_tools/quic_test_utils.cc
net/quic/test_tools/quic_test_utils.h
net/quic/test_tools/reliable_quic_stream_peer.cc
net/quic/test_tools/reliable_quic_stream_peer.h
net/tools/quic/end_to_end_test.cc
net/tools/quic/quic_client.cc
net/tools/quic/quic_client.h
net/tools/quic/quic_client_bin.cc
net/tools/quic/quic_dispatcher.cc
net/tools/quic/quic_dispatcher.h
net/tools/quic/quic_dispatcher_test.cc
net/tools/quic/quic_server.cc
net/tools/quic/quic_server.h
net/tools/quic/quic_spdy_client_stream_test.cc
net/tools/quic/quic_spdy_server_stream_test.cc
net/tools/quic/test_tools/mock_quic_dispatcher.cc
net/tools/quic/test_tools/quic_dispatcher_peer.cc
net/tools/quic/test_tools/quic_dispatcher_peer.h
net/tools/quic/test_tools/quic_test_client.cc
net/tools/quic/test_tools/quic_test_client.h
net/tools/quic/test_tools/quic_test_utils.cc
net/tools/quic/test_tools/quic_test_utils.h
net/tools/quic/test_tools/server_thread.cc
net/tools/quic/test_tools/server_thread.h