Landing Recent QUIC changes until Thu Dec 21 15:21:19 2017 +0000

Sync flags.
https://chromium-review.googlesource.com/c/chromium/src/+/843166

Fix typo in comment
Merge internal change: 179811481
https://chromium-review.googlesource.com/c/chromium/src/+/843165

In QUIC, allow receiving overlapping stream data. Protected by FLAGS_quic_reloadable_flag_quic_allow_receiving_overlapping_data.
Merge internal change: 179808379
https://chromium-review.googlesource.com/c/chromium/src/+/842710

In QUIC, change OnStreamFrameAcked, OnStreamFrameLost to OnFrameAcked and OnFrameLost, respectively. No functional change expected.
Also rename StreamNotifierInterface to SessionNotifierInterface. Wrap QuicConnection's Neuter NeuterUnencryptedPackets into QuicSession::NeuterUnencryptedData.
Merge internal change: 179806882
https://chromium-review.googlesource.com/c/chromium/src/+/842708

Merge TcpCubicSenderBytes with its parent class, TcpCubicSenderBase.
Merge internal change: 179756874
https://chromium-review.googlesource.com/c/chromium/src/+/843087

Choose QUIC handshake protocol based on QUIC version. Protected by FLAGS_quic_supports_tls_handshake.
Merge internal change: 179743631
https://chromium-review.googlesource.com/c/chromium/src/+/843086

Add a QUIC connection option, 1TLP, to configure QUIC to send 1 TLP instead of 2.  Also fixes QUIC's BBRSender to support changing the min CWND to 1 with the MIN1 connection option. Protected by FLAGS_quic_reloadable_flag_quic_one_tlp.
Merge internal change: 179722291
https://chromium-review.googlesource.com/c/chromium/src/+/843083

Deprecate flag FLAGS_quic_reloadable_flag_quic_deprecate_largest_observed in the false position. QuicAckFrame.largest_acked is kept for performance reasons.
Merge internal change: 179691236
https://chromium-review.googlesource.com/c/chromium/src/+/842704

Deprecate FLAGS_quic_reloadable_flag_quic_bbr_ack_aggregation_window.
Merge internal change: 179582366
https://chromium-review.googlesource.com/c/chromium/src/+/841267

Deprecate FLAGS_quic_reloadable_flag_quic_bbr_conservation_in_startup.
Merge internal change: 179492415
https://chromium-review.googlesource.com/c/chromium/src/+/840828

Add an end_to_end_test making sure packet write error does not cause crash.
Merge internal change: 179460919
https://chromium-review.googlesource.com/c/chromium/src/+/840827

Deprecate FLAGS_quic_reloadable_flag_quic_remove_on_stream_frame_discarded.
Merge internal change: 179460654
https://chromium-review.googlesource.com/c/chromium/src/+/840648

Move state tracking whether QuartcPacketWriter is blocked into the class.
Derive whether QuartcPacketWriter is blocked from whether the last write
succeeded or failed.  When a write fails, transition to a not-writable state.
When OnTransportCanWrite() fires, set the packet writer to writable.
Merge internal change: 179434425
https://chromium-review.googlesource.com/c/chromium/src/+/840823

Move and update a DCHECK for ack sending.
Merge internal change: 179189976
https://chromium-review.googlesource.com/c/chromium/src/+/840663

[email protected]

Bug: 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_dbg_ng
Change-Id: I0bf7b12db581a0638ec927bcac85384d56a80f9f
Reviewed-on: https://chromium-review.googlesource.com/843128
Commit-Queue: Michael Warres <[email protected]>
Reviewed-by: Ryan Hamilton <[email protected]>
Cr-Commit-Position: refs/heads/master@{#526101}
diff --git a/net/quic/test_tools/quic_test_utils.cc b/net/quic/test_tools/quic_test_utils.cc
index 1859654..b207756 100644
--- a/net/quic/test_tools/quic_test_utils.cc
+++ b/net/quic/test_tools/quic_test_utils.cc
@@ -46,7 +46,7 @@
     end_of_previous_block = block.limit;
   }
 
-  ack.deprecated_largest_observed = ack.packets.Max();
+  ack.largest_acked = ack.packets.Max();
 
   return ack;
 }
@@ -58,7 +58,7 @@
 QuicAckFrame MakeAckFrameWithAckBlocks(size_t num_ack_blocks,
                                        QuicPacketNumber least_unacked) {
   QuicAckFrame ack;
-  ack.deprecated_largest_observed = 2 * num_ack_blocks + least_unacked;
+  ack.largest_acked = 2 * num_ack_blocks + least_unacked;
   // Add enough received packets to get num_ack_blocks ack blocks.
   for (QuicPacketNumber i = 2; i < 2 * num_ack_blocks + 1; i += 2) {
     ack.packets.Add(least_unacked + i);
@@ -845,6 +845,9 @@
 MockPacketCreatorDelegate::MockPacketCreatorDelegate() {}
 MockPacketCreatorDelegate::~MockPacketCreatorDelegate() {}
 
+MockSessionNotifier::MockSessionNotifier() {}
+MockSessionNotifier::~MockSessionNotifier() {}
+
 void CreateClientSessionForTest(
     QuicServerId server_id,
     bool supports_stateless_rejects,