Remove static stream map as it's not used anymore.

gfe-relnote: code refactor. No behavior change.
PiperOrigin-RevId: 257653639
Change-Id: I3a054bb806b2102b53b45590315b44377f51b9fc
diff --git a/quic/core/http/quic_spdy_session.cc b/quic/core/http/quic_spdy_session.cc
index e264f3d..701a4c5 100644
--- a/quic/core/http/quic_spdy_session.cc
+++ b/quic/core/http/quic_spdy_session.cc
@@ -380,16 +380,16 @@
             headers_stream_->id());
 
   unowned_headers_stream_ = headers_stream_.get();
-  RegisterStaticStreamNew(std::move(headers_stream_),
-                          /*stream_already_counted = */ false);
+  RegisterStaticStream(std::move(headers_stream_),
+                       /*stream_already_counted = */ false);
 
   if (VersionHasStreamType(connection()->transport_version())) {
     auto send_control = QuicMakeUnique<QuicSendControlStream>(
         GetNextOutgoingUnidirectionalStreamId(), this,
         max_inbound_header_list_size_);
     send_control_stream_ = send_control.get();
-    RegisterStaticStreamNew(std::move(send_control),
-                            /*stream_already_counted = */ false);
+    RegisterStaticStream(std::move(send_control),
+                         /*stream_already_counted = */ false);
   }
 
   set_max_uncompressed_header_bytes(max_inbound_header_list_size_);
@@ -775,8 +775,8 @@
     case kControlStream: {  // HTTP/3 control stream.
       auto receive_stream = QuicMakeUnique<QuicReceiveControlStream>(pending);
       receive_control_stream_ = receive_stream.get();
-      RegisterStaticStreamNew(std::move(receive_stream),
-                              /*stream_already_counted = */ true);
+      RegisterStaticStream(std::move(receive_stream),
+                           /*stream_already_counted = */ true);
       receive_control_stream_->SetUnblocked();
       return true;
     }
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 8d94beb..5e6cbd4 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -81,7 +81,6 @@
           perspective() == Perspective::IS_SERVER,
           nullptr),
       currently_writing_stream_id_(0),
-      largest_static_stream_id_(0),
       is_handshake_confirmed_(false),
       goaway_sent_(false),
       goaway_received_(false),
@@ -109,7 +108,6 @@
 
   QuicStreamId id =
       QuicUtils::GetCryptoStreamId(connection_->transport_version());
-  largest_static_stream_id_ = std::max(id, largest_static_stream_id_);
   if (VersionHasIetfQuicFrames(connection_->transport_version())) {
     v99_streamid_manager_.RegisterStaticStream(id, false);
   }
@@ -119,23 +117,8 @@
   QUIC_LOG_IF(WARNING, !zombie_streams_.empty()) << "Still have zombie streams";
 }
 
-void QuicSession::RegisterStaticStream(QuicStreamId id, QuicStream* stream) {
-  static_stream_map_[id] = stream;
-
-  QUIC_BUG_IF(id >
-              largest_static_stream_id_ +
-                  QuicUtils::StreamIdDelta(connection_->transport_version()))
-      << ENDPOINT << "Static stream registered out of order: " << id
-      << " vs: " << largest_static_stream_id_;
-  largest_static_stream_id_ = std::max(id, largest_static_stream_id_);
-
-  if (VersionHasIetfQuicFrames(connection_->transport_version())) {
-    v99_streamid_manager_.RegisterStaticStream(id, false);
-  }
-}
-
-void QuicSession::RegisterStaticStreamNew(std::unique_ptr<QuicStream> stream,
-                                          bool stream_already_counted) {
+void QuicSession::RegisterStaticStream(std::unique_ptr<QuicStream> stream,
+                                       bool stream_already_counted) {
   DCHECK(stream->is_static());
   QuicStreamId stream_id = stream->id();
   dynamic_stream_map_[stream_id] = std::move(stream);
@@ -187,13 +170,6 @@
     return;
   }
 
-  if (frame.fin && QuicContainsKey(static_stream_map_, stream_id)) {
-    connection()->CloseConnection(
-        QUIC_INVALID_STREAM_ID, "Attempt to close a static stream",
-        ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
-    return;
-  }
-
   if (UsesPendingStreams() &&
       QuicUtils::GetStreamType(stream_id, perspective(),
                                IsIncomingStream(stream_id)) ==
@@ -252,8 +228,7 @@
   // TODO(fkastenholz): IETF Quic does not have static streams and does not
   // make exceptions for them with respect to processing things like
   // STOP_SENDING.
-  if (QuicContainsKey(static_stream_map_, stream_id) ||
-      QuicUtils::IsCryptoStreamId(connection_->transport_version(),
+  if (QuicUtils::IsCryptoStreamId(connection_->transport_version(),
                                   stream_id)) {
     QUIC_DVLOG(1) << ENDPOINT
                   << "Received STOP_SENDING for a static stream, id: "
@@ -350,13 +325,6 @@
     return;
   }
 
-  if (QuicContainsKey(static_stream_map_, stream_id)) {
-    connection()->CloseConnection(
-        QUIC_INVALID_STREAM_ID, "Attempt to reset a static stream",
-        ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
-    return;
-  }
-
   if (visitor_) {
     visitor_->OnRstStreamReceived(frame);
   }
@@ -1081,9 +1049,6 @@
   config_.SetInitialSessionFlowControlWindowToSend(session_window);
   flow_controller_.UpdateReceiveWindowSize(session_window);
   // Inform all existing streams about the new window.
-  for (auto const& kv : static_stream_map_) {
-    kv.second->flow_controller()->UpdateReceiveWindowSize(stream_window);
-  }
   for (auto const& kv : dynamic_stream_map_) {
     kv.second->flow_controller()->UpdateReceiveWindowSize(stream_window);
   }
@@ -1130,9 +1095,6 @@
   }
 
   // Inform all existing streams about the new window.
-  for (auto const& kv : static_stream_map_) {
-    kv.second->UpdateSendWindowOffset(new_window);
-  }
   for (auto const& kv : dynamic_stream_map_) {
     kv.second->UpdateSendWindowOffset(new_window);
   }
@@ -1220,7 +1182,6 @@
   QUIC_DVLOG(1) << ENDPOINT << "num_streams: " << dynamic_stream_map_.size()
                 << ". activating " << stream_id;
   DCHECK(!QuicContainsKey(dynamic_stream_map_, stream_id));
-  DCHECK(!QuicContainsKey(static_stream_map_, stream_id));
   dynamic_stream_map_[stream_id] = std::move(stream);
   if (IsIncomingStream(stream_id)) {
     ++num_dynamic_incoming_streams_;
@@ -1263,10 +1224,6 @@
                                   stream_id)) {
     return GetMutableCryptoStream();
   }
-  StaticStreamMap::iterator it = static_stream_map_.find(stream_id);
-  if (it != static_stream_map_.end()) {
-    return it->second;
-  }
   return GetOrCreateDynamicStream(stream_id);
 }
 
@@ -1321,8 +1278,6 @@
 
 QuicStream* QuicSession::GetOrCreateDynamicStream(
     const QuicStreamId stream_id) {
-  DCHECK(!QuicContainsKey(static_stream_map_, stream_id))
-      << "Attempt to call GetOrCreateDynamicStream for a static stream";
 
   DynamicStreamMap::iterator it = dynamic_stream_map_.find(stream_id);
   if (it != dynamic_stream_map_.end()) {
@@ -1390,8 +1345,7 @@
 bool QuicSession::IsOpenStream(QuicStreamId id) {
   DCHECK_NE(QuicUtils::GetInvalidStreamId(connection_->transport_version()),
             id);
-  if (QuicContainsKey(static_stream_map_, id) ||
-      QuicContainsKey(dynamic_stream_map_, id) ||
+  if (QuicContainsKey(dynamic_stream_map_, id) ||
       QuicContainsKey(pending_stream_map_, id) ||
       QuicUtils::IsCryptoStreamId(connection_->transport_version(), id)) {
     // Stream is active
@@ -1483,11 +1437,6 @@
 }
 
 bool QuicSession::IsStreamFlowControlBlocked() {
-  for (auto const& kv : static_stream_map_) {
-    if (kv.second->flow_controller()->IsBlocked()) {
-      return true;
-    }
-  }
   for (auto const& kv : dynamic_stream_map_) {
     if (kv.second->flow_controller()->IsBlocked()) {
       return true;
@@ -1559,12 +1508,10 @@
 
   // The number of the streams waiting for acks should not be larger than the
   // number of streams.
-  if (static_cast<size_t>(dynamic_stream_map_.size() +
-                          static_stream_map_.size() + zombie_streams_.size()) <
+  if (static_cast<size_t>(dynamic_stream_map_.size() + zombie_streams_.size()) <
       streams_waiting_for_acks_.size()) {
     QUIC_BUG << "More streams are waiting for acks than the number of streams. "
              << "Sizes: dynamic streams: " << dynamic_stream_map_.size()
-             << ", static streams: " << static_stream_map_.size()
              << ", zombie streams: " << zombie_streams_.size()
              << ", vs streams waiting for acks: "
              << streams_waiting_for_acks_.size();
@@ -1572,13 +1519,6 @@
 }
 
 QuicStream* QuicSession::GetStream(QuicStreamId id) const {
-  if (id <= largest_static_stream_id_) {
-    auto static_stream = static_stream_map_.find(id);
-    if (static_stream != static_stream_map_.end()) {
-      return static_stream->second;
-    }
-  }
-
   auto active_stream = dynamic_stream_map_.find(id);
   if (active_stream != dynamic_stream_map_.end()) {
     return active_stream->second.get();
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h
index 3325506..6bb31e1 100644
--- a/quic/core/quic_session.h
+++ b/quic/core/quic_session.h
@@ -429,8 +429,6 @@
   }
 
  protected:
-  using StaticStreamMap = QuicSmallMap<QuicStreamId, QuicStream*, 2>;
-
   using DynamicStreamMap =
       QuicSmallMap<QuicStreamId, std::unique_ptr<QuicStream>, 10>;
 
@@ -498,14 +496,12 @@
   // ProcessPendingStream().
   virtual bool UsesPendingStreams() const { return false; }
 
-  // Register (|id|, |stream|) with the static stream map. Override previous
-  // registrations with the same id.
-  void RegisterStaticStream(QuicStreamId id, QuicStream* stream);
-  // TODO(renjietang): Replace the original Register method with the new one
-  // once flag is deprecated.
-  void RegisterStaticStreamNew(std::unique_ptr<QuicStream> stream,
-                               bool stream_already_counted);
-  const StaticStreamMap& static_streams() const { return static_stream_map_; }
+  // Transfer ownership of |stream| to dynamic_stream_map_, and register
+  // |stream| as static in stream id manager. |stream_already_counted| is true
+  // if |stream| is created from pending stream and is already known as an open
+  // stream.
+  void RegisterStaticStream(std::unique_ptr<QuicStream> stream,
+                            bool stream_already_counted);
 
   DynamicStreamMap& dynamic_streams() { return dynamic_stream_map_; }
   const DynamicStreamMap& dynamic_streams() const {
@@ -644,10 +640,6 @@
 
   QuicConfig config_;
 
-  // Static streams, such as crypto and header streams. Owned by child classes
-  // that create these streams.
-  StaticStreamMap static_stream_map_;
-
   // Map from StreamId to pointers to streams. Owns the streams.
   DynamicStreamMap dynamic_stream_map_;
 
@@ -699,9 +691,6 @@
   // call stack of OnCanWrite.
   QuicStreamId currently_writing_stream_id_;
 
-  // The largest stream id in |static_stream_map_|.
-  QuicStreamId largest_static_stream_id_;
-
   // Cached value of whether the crypto handshake has been confirmed.
   bool is_handshake_confirmed_;
 
diff --git a/quic/core/quic_session_test.cc b/quic/core/quic_session_test.cc
index 44f5869..0f8420d 100644
--- a/quic/core/quic_session_test.cc
+++ b/quic/core/quic_session_test.cc
@@ -1298,8 +1298,8 @@
       QuicUtils::GetHeadersStreamId(connection_->transport_version());
   std::unique_ptr<TestStream> fake_headers_stream = QuicMakeUnique<TestStream>(
       headers_stream_id, &session_, /*is_static*/ true, BIDIRECTIONAL);
-  QuicSessionPeer::RegisterStaticStreamNew(&session_,
-                                           std::move(fake_headers_stream));
+  QuicSessionPeer::RegisterStaticStream(&session_,
+                                        std::move(fake_headers_stream));
   // Send two bytes of payload.
   QuicStreamFrame data1(headers_stream_id, true, 0, QuicStringPiece("HT"));
   EXPECT_CALL(*connection_,
@@ -1317,8 +1317,8 @@
       QuicUtils::GetHeadersStreamId(connection_->transport_version());
   std::unique_ptr<TestStream> fake_headers_stream = QuicMakeUnique<TestStream>(
       headers_stream_id, &session_, /*is_static*/ true, BIDIRECTIONAL);
-  QuicSessionPeer::RegisterStaticStreamNew(&session_,
-                                           std::move(fake_headers_stream));
+  QuicSessionPeer::RegisterStaticStream(&session_,
+                                        std::move(fake_headers_stream));
   // Send two bytes of payload.
   QuicRstStreamFrame rst1(kInvalidControlFrameId, headers_stream_id,
                           QUIC_ERROR_PROCESSING_STREAM, 0);
@@ -2502,8 +2502,8 @@
   QuicStreamId stream_id = 0;
   std::unique_ptr<TestStream> fake_static_stream = QuicMakeUnique<TestStream>(
       stream_id, &session_, /*is_static*/ true, BIDIRECTIONAL);
-  QuicSessionPeer::RegisterStaticStreamNew(&session_,
-                                           std::move(fake_static_stream));
+  QuicSessionPeer::RegisterStaticStream(&session_,
+                                        std::move(fake_static_stream));
   // Check that a stream id in the static stream map is ignored.
   // Note that the notion of a static stream is Google-specific.
   QuicStopSendingFrame frame(1, stream_id, 123);
diff --git a/quic/test_tools/quic_server_session_base_peer.h b/quic/test_tools/quic_server_session_base_peer.h
index d2a21a6..b29fe46 100644
--- a/quic/test_tools/quic_server_session_base_peer.h
+++ b/quic/test_tools/quic_server_session_base_peer.h
@@ -21,11 +21,6 @@
   static void SetCryptoStream(QuicServerSessionBase* s,
                               QuicCryptoServerStream* crypto_stream) {
     s->crypto_stream_.reset(crypto_stream);
-    if (!QuicVersionUsesCryptoFrames(s->connection()->transport_version())) {
-      s->RegisterStaticStream(
-          QuicUtils::GetCryptoStreamId(s->connection()->transport_version()),
-          crypto_stream);
-    }
   }
   static bool IsBandwidthResumptionEnabled(QuicServerSessionBase* s) {
     return s->bandwidth_resumption_enabled_;
diff --git a/quic/test_tools/quic_session_peer.cc b/quic/test_tools/quic_session_peer.cc
index 3d4c9f3..018d35a 100644
--- a/quic/test_tools/quic_session_peer.cc
+++ b/quic/test_tools/quic_session_peer.cc
@@ -130,12 +130,6 @@
 }
 
 // static
-QuicSession::StaticStreamMap& QuicSessionPeer::static_streams(
-    QuicSession* session) {
-  return session->static_stream_map_;
-}
-
-// static
 QuicSession::DynamicStreamMap& QuicSessionPeer::dynamic_streams(
     QuicSession* session) {
   return session->dynamic_streams();
@@ -167,17 +161,9 @@
 
 // static
 void QuicSessionPeer::RegisterStaticStream(QuicSession* session,
-                                           QuicStreamId id,
-                                           QuicStream* stream) {
-  return session->RegisterStaticStream(id, stream);
-}
-
-// static
-void QuicSessionPeer::RegisterStaticStreamNew(
-    QuicSession* session,
-    std::unique_ptr<QuicStream> stream) {
-  return session->RegisterStaticStreamNew(std::move(stream),
-                                          /*stream_already_counted = */ false);
+                                           std::unique_ptr<QuicStream> stream) {
+  return session->RegisterStaticStream(std::move(stream),
+                                       /*stream_already_counted = */ false);
 }
 
 // static
diff --git a/quic/test_tools/quic_session_peer.h b/quic/test_tools/quic_session_peer.h
index 3828981..f414f19 100644
--- a/quic/test_tools/quic_session_peer.h
+++ b/quic/test_tools/quic_session_peer.h
@@ -56,7 +56,6 @@
                                               QuicStreamId stream_id);
   static std::map<QuicStreamId, QuicStreamOffset>&
   GetLocallyClosedStreamsHighestOffset(QuicSession* session);
-  static QuicSession::StaticStreamMap& static_streams(QuicSession* session);
   static QuicSession::DynamicStreamMap& dynamic_streams(QuicSession* session);
   static const QuicSession::ClosedStreams& closed_streams(QuicSession* session);
   static QuicSession::ZombieStreamMap& zombie_streams(QuicSession* session);
@@ -65,9 +64,6 @@
   static void ActivateStream(QuicSession* session,
                              std::unique_ptr<QuicStream> stream);
   static void RegisterStaticStream(QuicSession* session,
-                                   QuicStreamId stream_id,
-                                   QuicStream* stream);
-  static void RegisterStaticStreamNew(QuicSession* session,
                                       std::unique_ptr<QuicStream> stream);
 
   // Discern the state of a stream.  Exactly one of these should be true at a
diff --git a/quic/test_tools/quic_spdy_session_peer.cc b/quic/test_tools/quic_spdy_session_peer.cc
index 4c5b9fd..affdbd6 100644
--- a/quic/test_tools/quic_spdy_session_peer.cc
+++ b/quic/test_tools/quic_spdy_session_peer.cc
@@ -16,15 +16,6 @@
   return session->headers_stream();
 }
 
-// static
-void QuicSpdySessionPeer::SetHeadersStream(QuicSpdySession* session,
-                                           QuicHeadersStream* headers_stream) {
-  session->headers_stream_.reset(headers_stream);
-  if (headers_stream != nullptr) {
-    session->RegisterStaticStream(headers_stream->id(), headers_stream);
-  }
-}
-
 void QuicSpdySessionPeer::SetUnownedHeadersStream(
     QuicSpdySession* session,
     QuicHeadersStream* headers_stream) {
diff --git a/quic/test_tools/quic_spdy_session_peer.h b/quic/test_tools/quic_spdy_session_peer.h
index 49795ba..f97b264 100644
--- a/quic/test_tools/quic_spdy_session_peer.h
+++ b/quic/test_tools/quic_spdy_session_peer.h
@@ -24,8 +24,6 @@
   QuicSpdySessionPeer() = delete;
 
   static QuicHeadersStream* GetHeadersStream(QuicSpdySession* session);
-  static void SetHeadersStream(QuicSpdySession* session,
-                               QuicHeadersStream* headers_stream);
   static void SetUnownedHeadersStream(QuicSpdySession* session,
                                       QuicHeadersStream* headers_stream);
   static const spdy::SpdyFramer& GetSpdyFramer(QuicSpdySession* session);
diff --git a/quic/tools/quic_simple_server_session_test.cc b/quic/tools/quic_simple_server_session_test.cc
index c1bc8ac..eeb9ce3 100644
--- a/quic/tools/quic_simple_server_session_test.cc
+++ b/quic/tools/quic_simple_server_session_test.cc
@@ -58,11 +58,6 @@
   static void SetCryptoStream(QuicSimpleServerSession* s,
                               QuicCryptoServerStream* crypto_stream) {
     s->crypto_stream_.reset(crypto_stream);
-    if (!QuicVersionUsesCryptoFrames(s->connection()->transport_version())) {
-      s->RegisterStaticStream(
-          QuicUtils::GetCryptoStreamId(s->connection()->transport_version()),
-          crypto_stream);
-    }
   }
 
   static QuicSpdyStream* CreateIncomingStream(QuicSimpleServerSession* s,