Land Recent QUIC Changes.

Slight improvement to QUIC version negotation debug logging.

Merge internal change: 73319950
https://codereview.chromium.org/477813003/


Improve QUIC's SentEntropyManagerTest and removing a test from
QuicConnectionTest that tests no code in QuicConnection.

Merge internal change: 73298415
https://codereview.chromium.org/479463002/


quic_session.h doesn't need to include util/gtl/linked_hash_map.h.

Merge internal change: 73256287
https://codereview.chromium.org/477863003/


Fix comment for QUIC handshake message tag COPT.

Merge internal change: 73256108
https://codereview.chromium.org/474133002/


Not used in production. Add InRecovery() method to QUIC send algorithm
interface, and pass slow start bool to bandwidth recorder.

We still want to generate bandwidth estimates while in slow start, and
include this information in the STK proto. We also need to know when we
are in recovery mode so we can avoid calculating estimates.

Merge internal change: 73239536
https://codereview.chromium.org/479443002/


Add a flag to enable QUIC's BBR congestion control by default instead of
Cubic in order to test and gather logs on internal servers.

Merge internal change: 73146298
https://codereview.chromium.org/477863002/


Add a QuicSustainedBandwidthEstimator class. Not yet used.

Followup change list in progress (not ready for review, but in case you
want to see intended usage) which does the following:

1) Use this in the QuicSentPacketManager.
2) Detect substantial differences between subsequent sustained bandwidth
   estimates.
3) Send estimates to client in server config update.

internal change list: 72831442

Merge internal change: 73132177
https://codereview.chromium.org/477053002/


Re-add the QUIC DCHECK to ensure packets are always sent in the order of
increasing sequence number.

Merge internal change: 73128051
https://codereview.chromium.org/469383004/


Change to optimize QUIC's RetransmittableFrames::HasCryptoHandshake by
storing it once when the crypto frame is added to RetransmittableFrames.

Merge internal change: 73125935
https://codereview.chromium.org/467263003/


Add an Update method on QuicAlarm which contains a granularity.  Also
change the idle network timeout to be 1 second shorter on the client and
1 second longer on the server.

Change saves ~2% of CPU according to an EndToEndTest profile.

Merge internal change: 73125905
https://codereview.chromium.org/471313002/

[email protected]

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

Cr-Commit-Position: refs/heads/master@{#290106}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290106 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/net.gypi b/net/net.gypi
index b85f57b..ce064b2d 100644
--- a/net/net.gypi
+++ b/net/net.gypi
@@ -925,6 +925,8 @@
       'quic/quic_stream_factory.h',
       'quic/quic_stream_sequencer.cc',
       'quic/quic_stream_sequencer.h',
+      'quic/quic_sustained_bandwidth_recorder.cc',
+      'quic/quic_sustained_bandwidth_recorder.h',
       'quic/quic_time.cc',
       'quic/quic_time.h',
       'quic/quic_types.cc',
@@ -1549,6 +1551,7 @@
       'quic/quic_socket_address_coder_test.cc',
       'quic/quic_stream_factory_test.cc',
       'quic/quic_stream_sequencer_test.cc',
+      'quic/quic_sustained_bandwidth_recorder_test.cc',
       'quic/quic_time_test.cc',
       'quic/quic_unacked_packet_map_test.cc',
       'quic/quic_utils_chromium_test.cc',