Landing Recent QUIC changes until Fri Sep 29 00:06:03 2017 +0000

add QUIC crypters for IETF QUIC
Merge internal change: 170420433
https://chromium-review.googlesource.com/c/chromium/src/+/705702

Protect ourselves from QUIC suddenly closing the connection and all streams in.
This adds a method from QuicSessionInterface to QuartcSessionInterface.
Merge internal change: 170418649
https://chromium-review.googlesource.com/c/chromium/src/+/706035

Introduce a new ParsedQuicVersion struct to store both the handshake protocol and transport version parsed out of QUIC version label.
Merge internal change: 170412049
https://chromium-review.googlesource.com/c/chromium/src/+/705699

Rename the QuicVersion enum to QuicTransportVersion in preparation for support QUIC crypto and TLS at the same time, over the same version of the transport.
Merge internal change: 170400414
https://chromium-review.googlesource.com/c/chromium/src/+/706076

Add option to AEAD base crypters to use IETF nonce construction
Merge internal change: 170376079
https://chromium-review.googlesource.com/c/chromium/src/+/705697

Consolidates QuicAckFrame-building test functions in various tests into two (overloading) InitAckFrame functions in quic_test_util.
Merge internal change: 170363616
https://chromium-review.googlesource.com/c/chromium/src/+/705694

Fix documentation for QUIC's ChaCha20Poly1305 crypters
Merge internal change: 170357046
https://chromium-review.googlesource.com/c/chromium/src/+/705277

Deprecate FLAGS_quic_reloadable_flag_quic_save_data_before_consumption2.
Merge internal change: 170352428
https://chromium-review.googlesource.com/c/chromium/src/+/705276

Deprecate FLAGS_quic_reloadable_flag_quic_use_stream_notifier2.
Merge internal change: 170240760
https://chromium-review.googlesource.com/c/chromium/src/+/705176

Deprecates --gfe2_restart_flag_quic_header_list_size.
Merge internal change: 170236774
https://chromium-review.googlesource.com/c/chromium/src/+/705174

Replace a pair with a struct for lost packets and move it and the LostPacketVector to quic_types.h
Merge internal change: 170230475
https://chromium-review.googlesource.com/c/chromium/src/+/705116

Deprecate FLAGS_quic_reloadable_flag_quic_consuming_data_faster.
Merge internal change: 170227329
https://chromium-review.googlesource.com/c/chromium/src/+/704160

Default enable fixes to QUIC's Cubic congestion control to allow per ack updates and fix beta last max.
Merge internal change: 170135670
https://chromium-review.googlesource.com/c/chromium/src/+/704159

Add function to get HandshakeProtocol enum value from QuicVersionLabel
Merge internal change: 170124279
https://chromium-review.googlesource.com/c/chromium/src/+/701775

Expose QuicVersionLabel in QuicConnection
Merge internal change: 170080968
https://chromium-review.googlesource.com/c/chromium/src/+/701799

Move AckedPacketVector from QUIC's SendAlgorithmInterface to quic_types.h.
Merge internal change: 170076503
https://chromium-review.googlesource.com/c/chromium/src/+/700418

Replace TimeUntilSend() with CanSend() in SendAlgorithmInterface
Merge internal change: 169930578
https://chromium-review.googlesource.com/c/chromium/src/+/698944

In QUIC, send stateless reset token in SHLO. Protected by FLAGS_quic_reloadable_flag_quic_send_reset_token_in_shlo.
Merge internal change: 169904881
https://chromium-review.googlesource.com/c/chromium/src/+/698644

[email protected], [email protected], [email protected]

Bug: 
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I75437c05b8bfb53a5240890297904ae65b58d6f7
Reviewed-on: https://chromium-review.googlesource.com/706394
Reviewed-by: Bence Béky <[email protected]>
Reviewed-by: Misha Efimov <[email protected]>
Reviewed-by: Zhongyi Shi <[email protected]>
Commit-Queue: Michael Warres <[email protected]>
Cr-Commit-Position: refs/heads/master@{#507379}
diff --git a/net/BUILD.gn b/net/BUILD.gn
index 2ca509c..45a815e 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1177,12 +1177,24 @@
       "quic/core/crypto/aes_128_gcm_12_decrypter.h",
       "quic/core/crypto/aes_128_gcm_12_encrypter.cc",
       "quic/core/crypto/aes_128_gcm_12_encrypter.h",
+      "quic/core/crypto/aes_128_gcm_decrypter.cc",
+      "quic/core/crypto/aes_128_gcm_decrypter.h",
+      "quic/core/crypto/aes_128_gcm_encrypter.cc",
+      "quic/core/crypto/aes_128_gcm_encrypter.h",
+      "quic/core/crypto/aes_256_gcm_decrypter.cc",
+      "quic/core/crypto/aes_256_gcm_decrypter.h",
+      "quic/core/crypto/aes_256_gcm_encrypter.cc",
+      "quic/core/crypto/aes_256_gcm_encrypter.h",
       "quic/core/crypto/cert_compressor.cc",
       "quic/core/crypto/cert_compressor.h",
       "quic/core/crypto/chacha20_poly1305_decrypter.cc",
       "quic/core/crypto/chacha20_poly1305_decrypter.h",
       "quic/core/crypto/chacha20_poly1305_encrypter.cc",
       "quic/core/crypto/chacha20_poly1305_encrypter.h",
+      "quic/core/crypto/chacha20_poly1305_tls_decrypter.cc",
+      "quic/core/crypto/chacha20_poly1305_tls_decrypter.h",
+      "quic/core/crypto/chacha20_poly1305_tls_encrypter.cc",
+      "quic/core/crypto/chacha20_poly1305_tls_encrypter.h",
       "quic/core/crypto/channel_id.cc",
       "quic/core/crypto/channel_id.h",
       "quic/core/crypto/common_cert_set.cc",
@@ -4970,9 +4982,15 @@
     "quic/core/congestion_control/windowed_filter_test.cc",
     "quic/core/crypto/aes_128_gcm_12_decrypter_test.cc",
     "quic/core/crypto/aes_128_gcm_12_encrypter_test.cc",
+    "quic/core/crypto/aes_128_gcm_decrypter_test.cc",
+    "quic/core/crypto/aes_128_gcm_encrypter_test.cc",
+    "quic/core/crypto/aes_256_gcm_decrypter_test.cc",
+    "quic/core/crypto/aes_256_gcm_encrypter_test.cc",
     "quic/core/crypto/cert_compressor_test.cc",
     "quic/core/crypto/chacha20_poly1305_decrypter_test.cc",
     "quic/core/crypto/chacha20_poly1305_encrypter_test.cc",
+    "quic/core/crypto/chacha20_poly1305_tls_decrypter_test.cc",
+    "quic/core/crypto/chacha20_poly1305_tls_encrypter_test.cc",
     "quic/core/crypto/channel_id_test.cc",
     "quic/core/crypto/common_cert_set_test.cc",
     "quic/core/crypto/crypto_framer_test.cc",