Roll src/net/third_party/quiche/src/ fd3ee30e9..9a910e3de (17 commits)

https://quiche.googlesource.com/quiche.git/+log/fd3ee30e9b48..9a910e3deaec

$ git log fd3ee30e9..9a910e3de --date=short --no-merges --format='%ad %ae %s'
2019-08-19 dschinazi Generate stateless reset tokens by hashing instead of XOR.
2019-08-19 dschinazi Workaround for Android UDP network conformance test
2019-08-19 dschinazi Deprecate quic_use_allocated_connection_ids
2019-08-19 renjietang Rename ENCRYPTION_REESTABLISHED to ENCRYPTION_ESTABLISHED as ENCRRYPTION_FIRST_ESTABLISHED has been removed.
2019-08-19 wub gfe-relnote: (n/a) Ensure BandwidthSampler.max_ack_height_tracker_.aggregation_epoch_start_time_ is initialized before Update(). Protected by --gfe2_reloadable_flag_quic_track_ack_height_in_bandwidth_sampler2, which replaces the old v1 flag.
2019-08-19 dschinazi Deprecate quic_deterministic_replacement_connection_ids
2019-08-19 renjietang Do not send stream type twice in QPACK streams.
2019-08-19 renjietang Remove unused ENCRYPTION_FIRST_ESTABLISHED.
2019-08-19 dschinazi Use deterministic replacement connection IDs
2019-08-19 zhongyi gfe-relnote: rename OnConnectivityProbeReceived to OnPacketReceived. Not flag protected, this is a refactor and has no behavior change.
2019-08-19 fkastenholz Add default to function generating name of Transport Error Code
2019-08-16 bnc Rename QuicSpdyStreamBodyBuffer to QuicSpdyStreamBodyManager.
2019-08-16 wub gfe-relnote: Move QuicCryptoServerStream::Helper::GenerateConnectionIdForReject to QuicDispatcher::GenerateNewServerConnectionId. Refactor only.
2019-08-16 bnc Remove Http2String wrapper for std::string.
2019-08-16 dschinazi Flush queued frames when processing coalesced packets
2019-08-16 renjietang Add QpackStreams into QuicSpdySession.
2019-08-16 fkastenholz Add text outputter for IETF stream types

Created with:
  roll-dep src/net/third_party/quiche/src src/third_party/quic_trace/src

Change-Id: I4f5e3f43094b4a84c31b3ce64b4aaf1d694a571a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1761735
Reviewed-by: Tommi <[email protected]>
Reviewed-by: Zhongyi Shi <[email protected]>
Commit-Queue: Ryan Hamilton <[email protected]>
Cr-Commit-Position: refs/heads/master@{#689130}
diff --git a/net/BUILD.gn b/net/BUILD.gn
index d3a292c..0e1714e 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1323,7 +1323,6 @@
       "third_party/quiche/src/http2/platform/api/http2_optional.h",
       "third_party/quiche/src/http2/platform/api/http2_ptr_util.h",
       "third_party/quiche/src/http2/platform/api/http2_reconstruct_object.h",
-      "third_party/quiche/src/http2/platform/api/http2_string.h",
       "third_party/quiche/src/http2/platform/api/http2_string_piece.h",
       "third_party/quiche/src/http2/platform/api/http2_string_utils.h",
       "third_party/quiche/src/quic/core/congestion_control/bandwidth_sampler.cc",
@@ -1508,8 +1507,8 @@
       "third_party/quiche/src/quic/core/http/quic_spdy_session.h",
       "third_party/quiche/src/quic/core/http/quic_spdy_stream.cc",
       "third_party/quiche/src/quic/core/http/quic_spdy_stream.h",
-      "third_party/quiche/src/quic/core/http/quic_spdy_stream_body_buffer.cc",
-      "third_party/quiche/src/quic/core/http/quic_spdy_stream_body_buffer.h",
+      "third_party/quiche/src/quic/core/http/quic_spdy_stream_body_manager.cc",
+      "third_party/quiche/src/quic/core/http/quic_spdy_stream_body_manager.h",
       "third_party/quiche/src/quic/core/http/spdy_server_push_utils.cc",
       "third_party/quiche/src/quic/core/http/spdy_server_push_utils.h",
       "third_party/quiche/src/quic/core/http/spdy_utils.cc",
@@ -5527,7 +5526,7 @@
     "third_party/quiche/src/quic/core/http/quic_send_control_stream_test.cc",
     "third_party/quiche/src/quic/core/http/quic_server_session_base_test.cc",
     "third_party/quiche/src/quic/core/http/quic_spdy_session_test.cc",
-    "third_party/quiche/src/quic/core/http/quic_spdy_stream_body_buffer_test.cc",
+    "third_party/quiche/src/quic/core/http/quic_spdy_stream_body_manager_test.cc",
     "third_party/quiche/src/quic/core/http/quic_spdy_stream_test.cc",
     "third_party/quiche/src/quic/core/http/spdy_server_push_utils_test.cc",
     "third_party/quiche/src/quic/core/http/spdy_utils_test.cc",
@@ -5620,7 +5619,6 @@
     "third_party/quiche/src/quic/test_tools/simple_session_notifier_test.cc",
     "third_party/quiche/src/quic/test_tools/simulator/quic_endpoint_test.cc",
     "third_party/quiche/src/quic/test_tools/simulator/simulator_test.cc",
-    "third_party/quiche/src/quic/tools/quic_simple_crypto_server_stream_helper_test.cc",
     "third_party/quiche/src/spdy/core/array_output_buffer.cc",
     "third_party/quiche/src/spdy/core/array_output_buffer.h",
     "third_party/quiche/src/spdy/core/array_output_buffer_test.cc",
diff --git a/net/http2/platform/impl/http2_string_utils_impl.h b/net/http2/platform/impl/http2_string_utils_impl.h
index 5b648b0..3bd8be7 100644
--- a/net/http2/platform/impl/http2_string_utils_impl.h
+++ b/net/http2/platform/impl/http2_string_utils_impl.h
@@ -14,13 +14,12 @@
 #include "net/base/escape.h"
 #include "net/base/hex_utils.h"
 #include "net/third_party/quiche/src/http2/platform/api/http2_export.h"
-#include "net/third_party/quiche/src/http2/platform/api/http2_string.h"
 #include "net/third_party/quiche/src/http2/platform/api/http2_string_piece.h"
 
 namespace http2 {
 
 template <typename... Args>
-inline Http2String Http2StrCatImpl(const Args&... args) {
+inline std::string Http2StrCatImpl(const Args&... args) {
   std::ostringstream oss;
   int dummy[] = {1, (oss << args, 0)...};
   static_cast<void>(dummy);
@@ -28,33 +27,33 @@
 }
 
 template <typename... Args>
-inline void Http2StrAppendImpl(Http2String* output, Args... args) {
+inline void Http2StrAppendImpl(std::string* output, Args... args) {
   output->append(Http2StrCatImpl(args...));
 }
 
 template <typename... Args>
-inline Http2String Http2StringPrintfImpl(const Args&... args) {
+inline std::string Http2StringPrintfImpl(const Args&... args) {
   return base::StringPrintf(std::forward<const Args&>(args)...);
 }
 
-inline Http2String Http2HexEncodeImpl(const void* bytes, size_t size) {
+inline std::string Http2HexEncodeImpl(const void* bytes, size_t size) {
   return base::HexEncode(bytes, size);
 }
 
-inline Http2String Http2HexDecodeImpl(Http2StringPiece data) {
+inline std::string Http2HexDecodeImpl(Http2StringPiece data) {
   return net::HexDecode(data);
 }
 
-inline Http2String Http2HexDumpImpl(Http2StringPiece data) {
+inline std::string Http2HexDumpImpl(Http2StringPiece data) {
   return net::HexDump(data);
 }
 
-inline Http2String Http2HexEscapeImpl(Http2StringPiece data) {
+inline std::string Http2HexEscapeImpl(Http2StringPiece data) {
   return net::EscapeQueryParamValue(data, false);
 }
 
 template <typename Number>
-inline Http2String Http2HexImpl(Number number) {
+inline std::string Http2HexImpl(Number number) {
   std::stringstream str;
   str << std::hex << number;
   return str.str();
diff --git a/net/http2/platform/impl/http2_test_helpers_impl.cc b/net/http2/platform/impl/http2_test_helpers_impl.cc
index a00de1e..40858180 100644
--- a/net/http2/platform/impl/http2_test_helpers_impl.cc
+++ b/net/http2/platform/impl/http2_test_helpers_impl.cc
@@ -10,7 +10,7 @@
 // This is a copy of the same named method in ::testing::internal.
 // TODO(jamessynge): See about getting something like VERIFY_* adopted by
 // gUnit (probably a very difficult task!).
-Http2String GetBoolAssertionFailureMessage(
+std::string GetBoolAssertionFailureMessage(
     const ::testing::AssertionResult& assertion_result,
     const char* expression_text,
     const char* actual_predicate_value,
diff --git a/net/http2/platform/impl/http2_test_helpers_impl.h b/net/http2/platform/impl/http2_test_helpers_impl.h
index 535b217..cdcef0ce 100644
--- a/net/http2/platform/impl/http2_test_helpers_impl.h
+++ b/net/http2/platform/impl/http2_test_helpers_impl.h
@@ -16,7 +16,6 @@
 #include <sstream>
 
 #include "net/test/gtest_util.h"
-#include "net/third_party/quiche/src/http2/platform/api/http2_string.h"
 #include "testing/gmock/include/gmock/gmock-matchers.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -43,19 +42,19 @@
 
   operator bool() const { return matches_; }
 
-  const Http2String& printed_value() const { return printed_value_; }
-  const Http2String& matcher_description() const {
+  const std::string& printed_value() const { return printed_value_; }
+  const std::string& matcher_description() const {
     return matcher_description_;
   }
 
  private:
   bool matches_;
-  Http2String printed_value_;
-  Http2String matcher_description_;
+  std::string printed_value_;
+  std::string matcher_description_;
 };
 
 // Constructs a failure message for Boolean assertions such as VERIFY_TRUE.
-Http2String GetBoolAssertionFailureMessage(
+std::string GetBoolAssertionFailureMessage(
     const ::testing::AssertionResult& assertion_result,
     const char* expression_text,
     const char* actual_predicate_value,
@@ -64,9 +63,9 @@
 namespace {
 // Define HasSubstr() for Http2StringPiece arguments.
 // This shadows ::testing::HasSubstr(), which only works on argument types
-// that can be implicitly converted to a Http2String.
+// that can be implicitly converted to a std::string.
 inline ::testing::PolymorphicMatcher<net::test::StringPieceHasSubstrMatcher>
-HasSubstr(const Http2String& substring) {
+HasSubstr(const std::string& substring) {
   return ::testing::MakePolymorphicMatcher(
       net::test::StringPieceHasSubstrMatcher(substring));
 }
diff --git a/net/quic/bidirectional_stream_quic_impl_unittest.cc b/net/quic/bidirectional_stream_quic_impl_unittest.cc
index 2d096868..a166b05e6 100644
--- a/net/quic/bidirectional_stream_quic_impl_unittest.cc
+++ b/net/quic/bidirectional_stream_quic_impl_unittest.cc
@@ -841,7 +841,7 @@
 // TODO(nharper): Make these tests work with TLS.
 quic::ParsedQuicVersionVector AllSupportedVersionsWithQuicCrypto() {
   quic::ParsedQuicVersionVector versions;
-  for (const auto& version : quic::AllSupportedVersions()) {
+  for (const auto& version : quic::AllVersionsExcept99()) {
     if (version.handshake_protocol == quic::PROTOCOL_QUIC_CRYPTO) {
       versions.push_back(version);
     }
diff --git a/net/quic/mock_crypto_client_stream.cc b/net/quic/mock_crypto_client_stream.cc
index effe776..bf80471 100644
--- a/net/quic/mock_crypto_client_stream.cc
+++ b/net/quic/mock_crypto_client_stream.cc
@@ -134,7 +134,7 @@
             QuicMakeUnique<NullEncrypter>(Perspective::IS_CLIENT));
       }
       session()->connection()->SetDefaultEncryptionLevel(ENCRYPTION_ZERO_RTT);
-      session()->OnCryptoHandshakeEvent(QuicSession::ENCRYPTION_REESTABLISHED);
+      session()->OnCryptoHandshakeEvent(QuicSession::ENCRYPTION_ESTABLISHED);
       break;
     }
 
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc
index f300786a..6f915e7 100644
--- a/net/quic/quic_chromium_client_session.cc
+++ b/net/quic/quic_chromium_client_session.cc
@@ -1513,7 +1513,7 @@
     CryptoHandshakeEvent event) {
   if (!callback_.is_null() &&
       (!require_confirmation_ || event == HANDSHAKE_CONFIRMED ||
-       event == ENCRYPTION_REESTABLISHED)) {
+       event == ENCRYPTION_ESTABLISHED)) {
     // TODO(rtenneti): Currently for all CryptoHandshakeEvent events, callback_
     // could be called because there are no error events in CryptoHandshakeEvent
     // enum. If error events are added to CryptoHandshakeEvent, then the
@@ -1740,9 +1740,10 @@
   quic::QuicSpdySession::OnSuccessfulVersionNegotiation(version);
 }
 
-void QuicChromiumClientSession::OnConnectivityProbeReceived(
+void QuicChromiumClientSession::OnPacketReceived(
     const quic::QuicSocketAddress& self_address,
-    const quic::QuicSocketAddress& peer_address) {
+    const quic::QuicSocketAddress& peer_address,
+    bool is_connectivity_probe) {
   DVLOG(1) << "Speculative probing response from ip:port: "
            << peer_address.ToString()
            << " to ip:port: " << self_address.ToString() << " is received";
diff --git a/net/quic/quic_chromium_client_session.h b/net/quic/quic_chromium_client_session.h
index 6eee78fc..59ab035 100644
--- a/net/quic/quic_chromium_client_session.h
+++ b/net/quic/quic_chromium_client_session.h
@@ -504,9 +504,9 @@
                           quic::ConnectionCloseSource source) override;
   void OnSuccessfulVersionNegotiation(
       const quic::ParsedQuicVersion& version) override;
-  void OnConnectivityProbeReceived(
-      const quic::QuicSocketAddress& self_address,
-      const quic::QuicSocketAddress& peer_address) override;
+  void OnPacketReceived(const quic::QuicSocketAddress& self_address,
+                        const quic::QuicSocketAddress& peer_address,
+                        bool is_connectivity_probe) override;
   void OnPathDegrading() override;
   bool ShouldKeepConnectionAlive() const override;
 
diff --git a/net/quic/quic_chromium_client_session_test.cc b/net/quic/quic_chromium_client_session_test.cc
index ea83c2c7..1776759 100644
--- a/net/quic/quic_chromium_client_session_test.cc
+++ b/net/quic/quic_chromium_client_session_test.cc
@@ -256,7 +256,7 @@
 INSTANTIATE_TEST_SUITE_P(
     VersionIncludeStreamDependencySequence,
     QuicChromiumClientSessionTest,
-    ::testing::Combine(::testing::ValuesIn(quic::AllSupportedVersions()),
+    ::testing::Combine(::testing::ValuesIn(quic::AllVersionsExcept99()),
                        ::testing::Bool()));
 
 // TODO(950069): Add testing for frame_origin in NetworkIsolationKey using
diff --git a/net/quic/quic_flags_list.h b/net/quic/quic_flags_list.h
index 5705216..5c111c7 100644
--- a/net/quic/quic_flags_list.h
+++ b/net/quic/quic_flags_list.h
@@ -379,9 +379,10 @@
           false)
 
 // If true, QUIC will track max ack height in BandwidthSampler.
-QUIC_FLAG(bool,
-          FLAGS_quic_reloadable_flag_quic_track_ack_height_in_bandwidth_sampler,
-          false)
+QUIC_FLAG(
+    bool,
+    FLAGS_quic_reloadable_flag_quic_track_ack_height_in_bandwidth_sampler2,
+    false)
 
 // If true, QuicSession::ShouldKeepConnectionAlive() will not consider locally
 // closed streams whose highest byte offset is not received yet.
@@ -408,3 +409,15 @@
 QUIC_FLAG(bool,
           FLAGS_quic_restart_flag_quic_framer_uses_undecryptable_upcall,
           false)
+
+// When true, QuicUtils::GenerateStatelessResetToken will hash connection IDs
+// instead of XORing the bytes
+QUIC_FLAG(bool,
+          FLAGS_quic_restart_flag_quic_use_hashed_stateless_reset_tokens,
+          false)
+
+// This flag enables a temporary workaround which makes us reply to a specific
+// invalid packet that is sent by an Android UDP network conformance test.
+QUIC_FLAG(bool,
+          FLAGS_quic_reloadable_flag_quic_reply_to_old_android_conformance_test,
+          false)
diff --git a/net/quic/quic_http_stream_test.cc b/net/quic/quic_http_stream_test.cc
index d02810c..1a16a03 100644
--- a/net/quic/quic_http_stream_test.cc
+++ b/net/quic/quic_http_stream_test.cc
@@ -712,7 +712,7 @@
 INSTANTIATE_TEST_SUITE_P(
     VersionIncludeStreamDependencySequence,
     QuicHttpStreamTest,
-    ::testing::Combine(::testing::ValuesIn(quic::AllSupportedVersions()),
+    ::testing::Combine(::testing::ValuesIn(quic::AllVersionsExcept99()),
                        ::testing::Bool()));
 
 TEST_P(QuicHttpStreamTest, RenewStreamForAuth) {
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc
index cec55d3..23af9ff 100644
--- a/net/quic/quic_network_transaction_unittest.cc
+++ b/net/quic/quic_network_transaction_unittest.cc
@@ -160,7 +160,7 @@
 std::vector<PoolingTestParams> GetPoolingTestParams() {
   std::vector<PoolingTestParams> params;
   quic::ParsedQuicVersionVector all_supported_versions =
-      quic::AllSupportedVersions();
+      quic::AllVersionsExcept99();
   for (const quic::ParsedQuicVersion version : all_supported_versions) {
     // TODO(rch): crbug.com/978745 - Make this work with TLS
     if (version.handshake_protocol != quic::PROTOCOL_TLS1_3) {
@@ -970,7 +970,7 @@
 
 quic::ParsedQuicVersionVector AllSupportedVersionsWithoutTls() {
   quic::ParsedQuicVersionVector versions;
-  for (auto version : quic::AllSupportedVersions()) {
+  for (auto version : quic::AllVersionsExcept99()) {
     // TODO(rch): crbug.com/978745 - Make this work with TLS
     if (version.handshake_protocol != quic::PROTOCOL_TLS1_3) {
       versions.push_back(version);
diff --git a/net/quic/quic_stream_factory_test.cc b/net/quic/quic_stream_factory_test.cc
index e0a1b9c..714a618 100644
--- a/net/quic/quic_stream_factory_test.cc
+++ b/net/quic/quic_stream_factory_test.cc
@@ -119,7 +119,7 @@
 std::vector<TestParams> GetTestParams() {
   std::vector<TestParams> params;
   quic::ParsedQuicVersionVector all_supported_versions =
-      quic::AllSupportedVersions();
+      quic::AllVersionsExcept99();
   for (const auto& version : all_supported_versions) {
     // TODO(rch): crbug.com/978745 - Make this work with TLS
     if (version.handshake_protocol != quic::PROTOCOL_TLS1_3) {
@@ -162,7 +162,7 @@
 std::vector<PoolingTestParams> GetPoolingTestParams() {
   std::vector<PoolingTestParams> params;
   quic::ParsedQuicVersionVector all_supported_versions =
-      quic::AllSupportedVersions();
+      quic::AllVersionsExcept99();
   for (const quic::ParsedQuicVersion version : all_supported_versions) {
     // TODO(rch): crbug.com/978745 - Make this work with TLS
     if (version.handshake_protocol != quic::PROTOCOL_TLS1_3) {
diff --git a/net/quic/quic_test_packet_maker.cc b/net/quic/quic_test_packet_maker.cc
index d18d7a0..0b7f60f 100644
--- a/net/quic/quic_test_packet_maker.cc
+++ b/net/quic/quic_test_packet_maker.cc
@@ -802,6 +802,8 @@
     quic::SettingsFrame settings;
     settings.values[quic::SETTINGS_MAX_HEADER_LIST_SIZE] =
         kQuicMaxHeaderListSize;
+    settings.values[quic::SETTINGS_QPACK_MAX_TABLE_CAPACITY] =
+        quic::kDefaultQpackMaxDynamicTableCapacity;
     std::unique_ptr<char[]> buffer1;
     quic::QuicByteCount frame_length1 =
         http_encoder_.SerializeSettingsFrame(settings, &buffer1);
@@ -897,6 +899,8 @@
     quic::SettingsFrame settings;
     settings.values[quic::SETTINGS_MAX_HEADER_LIST_SIZE] =
         kQuicMaxHeaderListSize;
+    settings.values[quic::SETTINGS_QPACK_MAX_TABLE_CAPACITY] =
+        quic::kDefaultQpackMaxDynamicTableCapacity;
     std::unique_ptr<char[]> buffer1;
     quic::QuicByteCount frame_length1 =
         http_encoder_.SerializeSettingsFrame(settings, &buffer1);
@@ -969,6 +973,8 @@
     quic::SettingsFrame settings;
     settings.values[quic::SETTINGS_MAX_HEADER_LIST_SIZE] =
         kQuicMaxHeaderListSize;
+    settings.values[quic::SETTINGS_QPACK_MAX_TABLE_CAPACITY] =
+        quic::kDefaultQpackMaxDynamicTableCapacity;
     std::unique_ptr<char[]> buffer1;
     quic::QuicByteCount frame_length1 =
         http_encoder_.SerializeSettingsFrame(settings, &buffer1);
@@ -1314,6 +1320,8 @@
   std::string type(1, 0x00);
   quic::SettingsFrame settings;
   settings.values[quic::SETTINGS_MAX_HEADER_LIST_SIZE] = kQuicMaxHeaderListSize;
+  settings.values[quic::SETTINGS_QPACK_MAX_TABLE_CAPACITY] =
+      quic::kDefaultQpackMaxDynamicTableCapacity;
   std::unique_ptr<char[]> buffer;
   quic::QuicByteCount frame_length =
       http_encoder_.SerializeSettingsFrame(settings, &buffer);
@@ -1359,6 +1367,8 @@
   std::string type(1, 0x00);
   quic::SettingsFrame settings;
   settings.values[quic::SETTINGS_MAX_HEADER_LIST_SIZE] = kQuicMaxHeaderListSize;
+  settings.values[quic::SETTINGS_QPACK_MAX_TABLE_CAPACITY] =
+      quic::kDefaultQpackMaxDynamicTableCapacity;
   std::unique_ptr<char[]> buffer;
   quic::QuicByteCount frame_length =
       http_encoder_.SerializeSettingsFrame(settings, &buffer);
@@ -1377,6 +1387,9 @@
 
   std::vector<quic::QuicStreamFrame> stream_frames =
       GenerateNextStreamFrames(stream_id, false, data);
+  stream_frames.push_back(GenerateNextStreamFrame(10, false, "\x02"));
+  stream_frames.push_back(GenerateNextStreamFrame(6, false, "\x03"));
+
   for (const auto& frame : stream_frames)
     frames.push_back(quic::QuicFrame(frame));
 
diff --git a/net/tools/quic/quic_simple_server_session_helper.cc b/net/tools/quic/quic_simple_server_session_helper.cc
index 376d857..7cb1bd6 100644
--- a/net/tools/quic/quic_simple_server_session_helper.cc
+++ b/net/tools/quic/quic_simple_server_session_helper.cc
@@ -9,18 +9,10 @@
 namespace net {
 
 QuicSimpleServerSessionHelper::QuicSimpleServerSessionHelper(
-    quic::QuicRandom* random)
-    : random_(random) {}
+    quic::QuicRandom* random) {}
 
 QuicSimpleServerSessionHelper::~QuicSimpleServerSessionHelper() = default;
 
-quic::QuicConnectionId
-QuicSimpleServerSessionHelper::GenerateConnectionIdForReject(
-    quic::QuicTransportVersion /*version*/,
-    quic::QuicConnectionId /*connection_id*/) const {
-  return quic::QuicUtils::CreateRandomConnectionId(random_);
-}
-
 bool QuicSimpleServerSessionHelper::CanAcceptClientHello(
     const quic::CryptoHandshakeMessage& message,
     const quic::QuicSocketAddress& client_address,
diff --git a/net/tools/quic/quic_simple_server_session_helper.h b/net/tools/quic/quic_simple_server_session_helper.h
index 4ba4ac6f..7f25052 100644
--- a/net/tools/quic/quic_simple_server_session_helper.h
+++ b/net/tools/quic/quic_simple_server_session_helper.h
@@ -19,18 +19,11 @@
 
   ~QuicSimpleServerSessionHelper() override;
 
-  quic::QuicConnectionId GenerateConnectionIdForReject(
-      quic::QuicTransportVersion /*version*/,
-      quic::QuicConnectionId /*connection_id*/) const override;
-
   bool CanAcceptClientHello(const quic::CryptoHandshakeMessage& message,
                             const quic::QuicSocketAddress& client_address,
                             const quic::QuicSocketAddress& peer_address,
                             const quic::QuicSocketAddress& self_address,
                             std::string* error_details) const override;
-
- private:
-  quic::QuicRandom* random_;  // Unowned.
 };
 
 }  // namespace net