Deprecate -gfe2_reloadable_flag_quic_use_inlining_send_buffer_everywhere.

This removes the old SendBuffer.  Renaming the new buffer will happen in the follow-up CL.

PiperOrigin-RevId: 892028122
diff --git a/build/source_list.bzl b/build/source_list.bzl
index f6286ad..63110c2 100644
--- a/build/source_list.bzl
+++ b/build/source_list.bzl
@@ -369,7 +369,6 @@
     "quic/core/quic_stream_frame_data_producer.h",
     "quic/core/quic_stream_id_manager.h",
     "quic/core/quic_stream_priority.h",
-    "quic/core/quic_stream_send_buffer.h",
     "quic/core/quic_stream_send_buffer_base.h",
     "quic/core/quic_stream_send_buffer_inlining.h",
     "quic/core/quic_stream_sequencer.h",
@@ -700,7 +699,6 @@
     "quic/core/quic_stream.cc",
     "quic/core/quic_stream_id_manager.cc",
     "quic/core/quic_stream_priority.cc",
-    "quic/core/quic_stream_send_buffer.cc",
     "quic/core/quic_stream_send_buffer_base.cc",
     "quic/core/quic_stream_send_buffer_inlining.cc",
     "quic/core/quic_stream_sequencer.cc",
diff --git a/build/source_list.gni b/build/source_list.gni
index f112266..3facd3d 100644
--- a/build/source_list.gni
+++ b/build/source_list.gni
@@ -369,7 +369,6 @@
     "src/quiche/quic/core/quic_stream_frame_data_producer.h",
     "src/quiche/quic/core/quic_stream_id_manager.h",
     "src/quiche/quic/core/quic_stream_priority.h",
-    "src/quiche/quic/core/quic_stream_send_buffer.h",
     "src/quiche/quic/core/quic_stream_send_buffer_base.h",
     "src/quiche/quic/core/quic_stream_send_buffer_inlining.h",
     "src/quiche/quic/core/quic_stream_sequencer.h",
@@ -700,7 +699,6 @@
     "src/quiche/quic/core/quic_stream.cc",
     "src/quiche/quic/core/quic_stream_id_manager.cc",
     "src/quiche/quic/core/quic_stream_priority.cc",
-    "src/quiche/quic/core/quic_stream_send_buffer.cc",
     "src/quiche/quic/core/quic_stream_send_buffer_base.cc",
     "src/quiche/quic/core/quic_stream_send_buffer_inlining.cc",
     "src/quiche/quic/core/quic_stream_sequencer.cc",
diff --git a/build/source_list.json b/build/source_list.json
index 06bb7e5..c663b43 100644
--- a/build/source_list.json
+++ b/build/source_list.json
@@ -368,7 +368,6 @@
     "quiche/quic/core/quic_stream_frame_data_producer.h",
     "quiche/quic/core/quic_stream_id_manager.h",
     "quiche/quic/core/quic_stream_priority.h",
-    "quiche/quic/core/quic_stream_send_buffer.h",
     "quiche/quic/core/quic_stream_send_buffer_base.h",
     "quiche/quic/core/quic_stream_send_buffer_inlining.h",
     "quiche/quic/core/quic_stream_sequencer.h",
@@ -699,7 +698,6 @@
     "quiche/quic/core/quic_stream.cc",
     "quiche/quic/core/quic_stream_id_manager.cc",
     "quiche/quic/core/quic_stream_priority.cc",
-    "quiche/quic/core/quic_stream_send_buffer.cc",
     "quiche/quic/core/quic_stream_send_buffer_base.cc",
     "quiche/quic/core/quic_stream_send_buffer_inlining.cc",
     "quiche/quic/core/quic_stream_sequencer.cc",
diff --git a/quiche/common/quiche_feature_flags_list.h b/quiche/common/quiche_feature_flags_list.h
index ea1687b..2297515 100755
--- a/quiche/common/quiche_feature_flags_list.h
+++ b/quiche/common/quiche_feature_flags_list.h
@@ -66,7 +66,6 @@
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_testonly_default_false, false, false, "A testonly reloadable flag that will always default to false.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_testonly_default_true, true, true, "A testonly reloadable flag that will always default to true.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_update_max_datagram, false, true, "If true, updates the maximum datagram size after flushing pending packets.")
-QUICHE_FLAG(bool, quiche_reloadable_flag_quic_use_inlining_send_buffer_everywhere, true, true, "Use QuicStreamSendBufferInlining consistently everywhere in the codebase.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_use_proof_source_get_cert_chains, true, true, "When true, quic::TlsServerHandshaker will use ProofSource::GetCertChains() instead of ProofSource::GetCertChain()")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_use_received_client_addresses_cache, true, true, "If true, use a LRU cache to record client addresses of packets received on server's original address.")
 QUICHE_FLAG(bool, quiche_restart_flag_quic_dispatcher_close_connection_on_invalid_ack, false, false, "An invalid ack is an ack that the peer sent for a packet that was not sent by the dispatcher. If true, the dispatcher will close the connection if it receives an invalid ack.")
diff --git a/quiche/quic/core/quic_buffered_packet_store.cc b/quiche/quic/core/quic_buffered_packet_store.cc
index 45173d8..9dd6bf6 100644
--- a/quiche/quic/core/quic_buffered_packet_store.cc
+++ b/quiche/quic/core/quic_buffered_packet_store.cc
@@ -27,7 +27,6 @@
 #include "quiche/quic/core/quic_packet_creator.h"
 #include "quiche/quic/core/quic_packet_number.h"
 #include "quiche/quic/core/quic_packets.h"
-#include "quiche/quic/core/quic_stream_send_buffer.h"
 #include "quiche/quic/core/quic_stream_send_buffer_inlining.h"
 #include "quiche/quic/core/quic_time.h"
 #include "quiche/quic/core/quic_types.h"
@@ -626,12 +625,7 @@
 
 static std::unique_ptr<QuicStreamSendBufferBase> CreateSendBuffer(
     quiche::QuicheBufferAllocator* allocator) {
-  if (GetQuicReloadableFlag(quic_use_inlining_send_buffer_everywhere)) {
-    QUIC_RELOADABLE_FLAG_COUNT_N(quic_use_inlining_send_buffer_everywhere, 2,
-                                 2);
-    return std::make_unique<QuicStreamSendBufferInlining>(allocator);
-  }
-  return std::make_unique<QuicStreamSendBufferOld>(allocator);
+  return std::make_unique<QuicStreamSendBufferInlining>(allocator);
 }
 
 PacketCollector::PacketCollector(quiche::QuicheBufferAllocator* allocator)
diff --git a/quiche/quic/core/quic_buffered_packet_store.h b/quiche/quic/core/quic_buffered_packet_store.h
index 6d0b403..aed8a42 100644
--- a/quiche/quic/core/quic_buffered_packet_store.h
+++ b/quiche/quic/core/quic_buffered_packet_store.h
@@ -28,7 +28,6 @@
 #include "quiche/quic/core/quic_packet_writer.h"
 #include "quiche/quic/core/quic_packets.h"
 #include "quiche/quic/core/quic_stream_frame_data_producer.h"
-#include "quiche/quic/core/quic_stream_send_buffer.h"
 #include "quiche/quic/core/quic_stream_send_buffer_base.h"
 #include "quiche/quic/core/quic_time.h"
 #include "quiche/quic/core/quic_types.h"
diff --git a/quiche/quic/core/quic_crypto_stream.cc b/quiche/quic/core/quic_crypto_stream.cc
index 895dab7..a9d433b 100644
--- a/quiche/quic/core/quic_crypto_stream.cc
+++ b/quiche/quic/core/quic_crypto_stream.cc
@@ -18,7 +18,6 @@
 #include "quiche/quic/core/quic_error_codes.h"
 #include "quiche/quic/core/quic_interval_set.h"
 #include "quiche/quic/core/quic_session.h"
-#include "quiche/quic/core/quic_stream_send_buffer.h"
 #include "quiche/quic/core/quic_stream_send_buffer_base.h"
 #include "quiche/quic/core/quic_stream_send_buffer_inlining.h"
 #include "quiche/quic/core/quic_types.h"
@@ -599,12 +598,7 @@
     QuicSession* session) {
   quiche::QuicheBufferAllocator* allocator =
       session->connection()->helper()->GetStreamSendBufferAllocator();
-  if (GetQuicReloadableFlag(quic_use_inlining_send_buffer_everywhere)) {
-    QUIC_RELOADABLE_FLAG_COUNT_N(quic_use_inlining_send_buffer_everywhere, 1,
-                                 2);
-    return std::make_unique<QuicStreamSendBufferInlining>(allocator);
-  }
-  return std::make_unique<QuicStreamSendBufferOld>(allocator);
+  return std::make_unique<QuicStreamSendBufferInlining>(allocator);
 }
 
 QuicCryptoStream::CryptoSubstream::CryptoSubstream(
diff --git a/quiche/quic/core/quic_dispatcher.cc b/quiche/quic/core/quic_dispatcher.cc
index acbda23..5105534 100644
--- a/quiche/quic/core/quic_dispatcher.cc
+++ b/quiche/quic/core/quic_dispatcher.cc
@@ -50,7 +50,6 @@
 #include "quiche/quic/core/quic_packets.h"
 #include "quiche/quic/core/quic_session.h"
 #include "quiche/quic/core/quic_stream_frame_data_producer.h"
-#include "quiche/quic/core/quic_stream_send_buffer.h"
 #include "quiche/quic/core/quic_time.h"
 #include "quiche/quic/core/quic_time_wait_list_manager.h"
 #include "quiche/quic/core/quic_types.h"
diff --git a/quiche/quic/core/quic_stream.cc b/quiche/quic/core/quic_stream.cc
index ecb7421..10308a2 100644
--- a/quiche/quic/core/quic_stream.cc
+++ b/quiche/quic/core/quic_stream.cc
@@ -28,7 +28,6 @@
 #include "quiche/quic/core/quic_interval_set.h"
 #include "quiche/quic/core/quic_session.h"
 #include "quiche/quic/core/quic_stream_priority.h"
-#include "quiche/quic/core/quic_stream_send_buffer.h"
 #include "quiche/quic/core/quic_stream_send_buffer_base.h"
 #include "quiche/quic/core/quic_stream_send_buffer_inlining.h"
 #include "quiche/quic/core/quic_stream_sequencer.h"
diff --git a/quiche/quic/core/quic_stream.h b/quiche/quic/core/quic_stream.h
index 25ad82e..0839956 100644
--- a/quiche/quic/core/quic_stream.h
+++ b/quiche/quic/core/quic_stream.h
@@ -34,7 +34,6 @@
 #include "quiche/quic/core/quic_flow_controller.h"
 #include "quiche/quic/core/quic_interval_set.h"
 #include "quiche/quic/core/quic_stream_priority.h"
-#include "quiche/quic/core/quic_stream_send_buffer.h"
 #include "quiche/quic/core/quic_stream_send_buffer_base.h"
 #include "quiche/quic/core/quic_stream_send_buffer_inlining.h"
 #include "quiche/quic/core/quic_stream_sequencer.h"
diff --git a/quiche/quic/core/quic_stream_send_buffer.cc b/quiche/quic/core/quic_stream_send_buffer.cc
deleted file mode 100644
index 32c5e35..0000000
--- a/quiche/quic/core/quic_stream_send_buffer.cc
+++ /dev/null
@@ -1,197 +0,0 @@
-// Copyright (c) 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "quiche/quic/core/quic_stream_send_buffer.h"
-
-#include <algorithm>
-#include <cstddef>
-#include <utility>
-
-#include "absl/strings/string_view.h"
-#include "absl/types/span.h"
-#include "quiche/quic/core/quic_data_writer.h"
-#include "quiche/quic/core/quic_interval.h"
-#include "quiche/quic/core/quic_interval_set.h"
-#include "quiche/quic/core/quic_stream_send_buffer_base.h"
-#include "quiche/quic/core/quic_types.h"
-#include "quiche/quic/platform/api/quic_bug_tracker.h"
-#include "quiche/quic/platform/api/quic_flags.h"
-#include "quiche/quic/platform/api/quic_logging.h"
-#include "quiche/common/platform/api/quiche_logging.h"
-#include "quiche/common/quiche_buffer_allocator.h"
-#include "quiche/common/quiche_mem_slice.h"
-
-namespace quic {
-
-namespace {
-
-struct CompareOffset {
-  bool operator()(const BufferedSlice& slice, QuicStreamOffset offset) const {
-    return slice.offset + slice.slice.length() < offset;
-  }
-};
-
-}  // namespace
-
-BufferedSlice::BufferedSlice(quiche::QuicheMemSlice mem_slice,
-                             QuicStreamOffset offset)
-    : slice(std::move(mem_slice)), offset(offset) {}
-
-BufferedSlice::BufferedSlice(BufferedSlice&& other) = default;
-
-BufferedSlice& BufferedSlice::operator=(BufferedSlice&& other) = default;
-
-BufferedSlice::~BufferedSlice() {}
-
-QuicInterval<uint64_t> BufferedSlice::interval() const {
-  const uint64_t length = slice.length();
-  return QuicInterval<uint64_t>(offset, offset + length);
-}
-
-QuicStreamSendBufferOld::QuicStreamSendBufferOld(
-    quiche::QuicheBufferAllocator* allocator)
-    : allocator_(allocator) {}
-
-void QuicStreamSendBufferOld::SaveStreamData(absl::string_view data) {
-  QUIC_DVLOG(2) << "Save stream data offset " << stream_offset_ << " length "
-                << data.length();
-  QUICHE_DCHECK(!data.empty());
-
-  // Latch the maximum data slice size.
-  const QuicByteCount max_data_slice_size =
-      GetQuicFlag(quic_send_buffer_max_data_slice_size);
-  while (!data.empty()) {
-    auto slice_len = std::min<absl::string_view::size_type>(
-        data.length(), max_data_slice_size);
-    auto buffer =
-        quiche::QuicheBuffer::Copy(allocator_, data.substr(0, slice_len));
-    SaveMemSlice(quiche::QuicheMemSlice(std::move(buffer)));
-
-    data = data.substr(slice_len);
-  }
-}
-
-void QuicStreamSendBufferOld::SaveMemSlice(quiche::QuicheMemSlice slice) {
-  QUIC_DVLOG(2) << "Save slice offset " << stream_offset_ << " length "
-                << slice.length();
-  if (slice.empty()) {
-    QUIC_BUG(quic_bug_10853_1) << "Try to save empty MemSlice to send buffer.";
-    return;
-  }
-  size_t length = slice.length();
-  BufferedSlice bs = BufferedSlice(std::move(slice), stream_offset_);
-  interval_deque_.PushBack(std::move(bs));
-  stream_offset_ += length;
-}
-
-QuicByteCount QuicStreamSendBufferOld::SaveMemSliceSpan(
-    absl::Span<quiche::QuicheMemSlice> span) {
-  QuicByteCount total = 0;
-  for (quiche::QuicheMemSlice& slice : span) {
-    if (slice.empty()) {
-      // Skip empty slices.
-      continue;
-    }
-    total += slice.length();
-    SaveMemSlice(std::move(slice));
-  }
-  return total;
-}
-
-bool QuicStreamSendBufferOld::WriteStreamData(QuicStreamOffset offset,
-                                              QuicByteCount data_length,
-                                              QuicDataWriter* writer) {
-  // The iterator returned from |interval_deque_| will automatically advance
-  // the internal write index for the QuicIntervalDeque. The incrementing is
-  // done in operator++.
-  for (auto slice_it = interval_deque_.DataAt(offset);
-       slice_it != interval_deque_.DataEnd(); ++slice_it) {
-    if (data_length == 0 || offset < slice_it->offset) {
-      break;
-    }
-
-    QuicByteCount slice_offset = offset - slice_it->offset;
-    QuicByteCount available_bytes_in_slice =
-        slice_it->slice.length() - slice_offset;
-    QuicByteCount copy_length = std::min(data_length, available_bytes_in_slice);
-    if (!writer->WriteBytes(slice_it->slice.data() + slice_offset,
-                            copy_length)) {
-      QUIC_BUG(quic_bug_10853_2) << "Writer fails to write.";
-      return false;
-    }
-    offset += copy_length;
-    data_length -= copy_length;
-  }
-  return data_length == 0;
-}
-
-bool QuicStreamSendBufferOld::FreeMemSlices(QuicStreamOffset start,
-                                            QuicStreamOffset end) {
-  auto it = interval_deque_.DataBegin();
-  if (it == interval_deque_.DataEnd() || it->slice.empty()) {
-    QUIC_BUG(quic_bug_10853_4)
-        << "Trying to ack stream data [" << start << ", " << end << "), "
-        << (it == interval_deque_.DataEnd()
-                ? "and there is no outstanding data."
-                : "and the first slice is empty.");
-    return false;
-  }
-  if (!it->interval().Contains(start)) {
-    // Slow path that not the earliest outstanding data gets acked.
-    it = std::lower_bound(interval_deque_.DataBegin(),
-                          interval_deque_.DataEnd(), start, CompareOffset());
-  }
-  if (it == interval_deque_.DataEnd() || it->slice.empty()) {
-    QUIC_BUG(quic_bug_10853_5)
-        << "Offset " << start << " with iterator offset: " << it->offset
-        << (it == interval_deque_.DataEnd() ? " does not exist."
-                                            : " has already been acked.");
-    return false;
-  }
-  for (; it != interval_deque_.DataEnd(); ++it) {
-    if (it->offset >= end) {
-      break;
-    }
-    if (!it->slice.empty() &&
-        bytes_acked().Contains(it->offset, it->offset + it->slice.length())) {
-      it->slice.Reset();
-    }
-  }
-  return true;
-}
-
-void QuicStreamSendBufferOld::CleanUpBufferedSlices() {
-  while (!interval_deque_.Empty() &&
-         interval_deque_.DataBegin()->slice.empty()) {
-    interval_deque_.PopFront();
-  }
-}
-
-size_t QuicStreamSendBufferOld::size() const { return interval_deque_.Size(); }
-
-void QuicStreamSendBufferOld::SetStreamOffsetForTest(
-    QuicStreamOffset new_offset) {
-  QuicStreamSendBufferBase::SetStreamOffsetForTest(new_offset);
-  stream_offset_ = new_offset;
-}
-
-absl::string_view QuicStreamSendBufferOld::LatestWriteForTest() {
-  absl::string_view last_slice = "";
-  for (auto it = interval_deque_.DataBegin(); it != interval_deque_.DataEnd();
-       ++it) {
-    last_slice = it->slice.AsStringView();
-  }
-  return last_slice;
-}
-
-QuicByteCount QuicStreamSendBufferOld::TotalDataBufferedForTest() {
-  QuicByteCount length = 0;
-  for (auto slice = interval_deque_.DataBegin();
-       slice != interval_deque_.DataEnd(); ++slice) {
-    length += slice->slice.length();
-  }
-  return length;
-}
-
-}  // namespace quic
diff --git a/quiche/quic/core/quic_stream_send_buffer.h b/quiche/quic/core/quic_stream_send_buffer.h
deleted file mode 100644
index e21277a..0000000
--- a/quiche/quic/core/quic_stream_send_buffer.h
+++ /dev/null
@@ -1,109 +0,0 @@
-// Copyright (c) 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef QUICHE_QUIC_CORE_QUIC_STREAM_SEND_BUFFER_H_
-#define QUICHE_QUIC_CORE_QUIC_STREAM_SEND_BUFFER_H_
-
-#include <cstddef>
-#include <cstdint>
-
-#include "absl/strings/string_view.h"
-#include "absl/types/span.h"
-#include "quiche/quic/core/quic_interval.h"
-#include "quiche/quic/core/quic_interval_deque.h"
-#include "quiche/quic/core/quic_stream_send_buffer_base.h"
-#include "quiche/quic/core/quic_types.h"
-#include "quiche/common/platform/api/quiche_export.h"
-#include "quiche/common/quiche_buffer_allocator.h"
-#include "quiche/common/quiche_mem_slice.h"
-
-namespace quic {
-
-namespace test {
-class QuicStreamSendBufferPeer;
-}
-
-class QuicDataWriter;
-
-// BufferedSlice comprises information of a piece of stream data stored in
-// contiguous memory space. Please note, BufferedSlice is constructed when
-// stream data is saved in send buffer and is removed when stream data is fully
-// acked. It is move-only.
-struct QUICHE_EXPORT BufferedSlice {
-  BufferedSlice(quiche::QuicheMemSlice mem_slice, QuicStreamOffset offset);
-  BufferedSlice(BufferedSlice&& other);
-  BufferedSlice& operator=(BufferedSlice&& other);
-
-  BufferedSlice(const BufferedSlice& other) = delete;
-  BufferedSlice& operator=(const BufferedSlice& other) = delete;
-  ~BufferedSlice();
-
-  // Return an interval representing the offset and length.
-  QuicInterval<uint64_t> interval() const;
-
-  // Stream data of this data slice.
-  quiche::QuicheMemSlice slice;
-  // Location of this data slice in the stream.
-  QuicStreamOffset offset;
-};
-
-// QuicStreamSendBuffer contains a list of QuicStreamDataSlices. New data slices
-// are added to the tail of the list. Data slices are removed from the head of
-// the list when they get fully acked. Stream data can be retrieved and acked
-// across slice boundaries. Stream data must be saved before being written, and
-// it cannot be written after it is marked as acked. Stream data can be written
-// out-of-order within those bounds, but note that in-order wites are O(1)
-// whereas out-of-order writes are O(log(n)), see QuicIntervalDeque for details.
-class QUICHE_EXPORT QuicStreamSendBufferOld : public QuicStreamSendBufferBase {
- public:
-  explicit QuicStreamSendBufferOld(quiche::QuicheBufferAllocator* allocator);
-
-  // Save |data| to send buffer.
-  void SaveStreamData(absl::string_view data) override;
-
-  // Save |slice| to send buffer.
-  void SaveMemSlice(quiche::QuicheMemSlice slice) override;
-
-  // Save all slices in |span| to send buffer. Return total bytes saved.
-  QuicByteCount SaveMemSliceSpan(
-      absl::Span<quiche::QuicheMemSlice> span) override;
-
-  // Write |data_length| of data starts at |offset|. Returns true if all data
-  // was successfully written. Returns false if the writer fails to write, or if
-  // the data was already marked as acked, or if the data was never saved in the
-  // first place.
-  bool WriteStreamData(QuicStreamOffset offset, QuicByteCount data_length,
-                       QuicDataWriter* writer) override;
-
-  // Number of data slices in send buffer.
-  size_t size() const override;
-
-  QuicStreamOffset stream_offset() const override { return stream_offset_; }
-
-  void SetStreamOffsetForTest(QuicStreamOffset new_offset) override;
-  absl::string_view LatestWriteForTest() override;
-  QuicByteCount TotalDataBufferedForTest() override;
-
- private:
-  friend class test::QuicStreamSendBufferPeer;
-
-  // Called when data within offset [start, end) gets acked. Frees fully
-  // acked buffered slices if any. Returns false if the corresponding data does
-  // not exist or has been acked.
-  bool FreeMemSlices(QuicStreamOffset start, QuicStreamOffset end) override;
-
-  // Cleanup acked data from the start of the interval.
-  void CleanUpBufferedSlices() override;
-
-  QuicIntervalDeque<BufferedSlice> interval_deque_;
-
-  // Offset of next inserted byte.
-  QuicStreamOffset stream_offset_ = 0;
-
-  quiche::QuicheBufferAllocator* allocator_;
-};
-
-}  // namespace quic
-
-#endif  // QUICHE_QUIC_CORE_QUIC_STREAM_SEND_BUFFER_H_
diff --git a/quiche/quic/core/quic_stream_send_buffer_test.cc b/quiche/quic/core/quic_stream_send_buffer_test.cc
index 059bca6..5bf35f8 100644
--- a/quiche/quic/core/quic_stream_send_buffer_test.cc
+++ b/quiche/quic/core/quic_stream_send_buffer_test.cc
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "quiche/quic/core/quic_stream_send_buffer.h"
-
 #include <cstddef>
 #include <cstring>
 #include <memory>
@@ -20,7 +18,6 @@
 #include "quiche/quic/core/quic_types.h"
 #include "quiche/quic/platform/api/quic_expect_bug.h"
 #include "quiche/quic/platform/api/quic_flags.h"
-#include "quiche/quic/test_tools/quic_interval_deque_peer.h"
 #include "quiche/quic/test_tools/quic_test_utils.h"
 #include "quiche/common/platform/api/quiche_test.h"
 #include "quiche/common/quiche_buffer_allocator.h"
@@ -31,35 +28,9 @@
 namespace quic {
 namespace test {
 
-// TODO: b/417402601 - remove this after the old SendBuffer implementation is
-// gone.
-class QuicStreamSendBufferPeer {
- public:
-  static int32_t write_index(QuicStreamSendBufferOld* send_buffer) {
-    return QuicIntervalDequePeer::GetCachedIndex(&send_buffer->interval_deque_);
-  }
-};
-
 namespace {
 
-enum class SendBufferType {
-  kDefault,
-  kInlining,
-};
-
-std::string SendBufferTypeName(
-    const testing::TestParamInfo<SendBufferType>& type) {
-  switch (type.param) {
-    case SendBufferType::kDefault:
-      return "Default";
-    case SendBufferType::kInlining:
-      return "Inlining";
-  }
-  return "<invalid>";
-}
-
-class QuicStreamSendBufferTest
-    : public quiche::test::QuicheTestWithParam<SendBufferType> {
+class QuicStreamSendBufferTest : public quiche::test::QuicheTest {
  public:
   QuicStreamSendBufferTest() {
     send_buffer_ = CreateBuffer();
@@ -96,13 +67,7 @@
   }
 
   std::unique_ptr<QuicStreamSendBufferBase> CreateBuffer() {
-    switch (GetParam()) {
-      case SendBufferType::kDefault:
-        return std::make_unique<QuicStreamSendBufferOld>(&allocator_);
-      case SendBufferType::kInlining:
         return std::make_unique<QuicStreamSendBufferInlining>(&allocator_);
-    }
-    return nullptr;
   }
 
   void WriteAllData() {
@@ -120,12 +85,7 @@
   std::unique_ptr<QuicStreamSendBufferBase> send_buffer_;
 };
 
-INSTANTIATE_TEST_SUITE_P(QuicStreamSendBufferTests, QuicStreamSendBufferTest,
-                         testing::Values(SendBufferType::kDefault,
-                                         SendBufferType::kInlining),
-                         SendBufferTypeName);
-
-TEST_P(QuicStreamSendBufferTest, CopyDataToBuffer) {
+TEST_F(QuicStreamSendBufferTest, CopyDataToBuffer) {
   char buf[4000];
   QuicDataWriter writer(4000, buf, quiche::HOST_BYTE_ORDER);
   std::string copy1(1024, 'a');
@@ -165,7 +125,7 @@
 }
 
 // Regression test for b/143491027.
-TEST_P(QuicStreamSendBufferTest,
+TEST_F(QuicStreamSendBufferTest,
        WriteStreamDataContainsBothRetransmissionAndNewData) {
   std::string copy1(1024, 'a');
   std::string copy2 =
@@ -174,18 +134,8 @@
   char buf[6000];
   QuicDataWriter writer(6000, buf, quiche::HOST_BYTE_ORDER);
   // Write more than one slice.
-  if (GetParam() == SendBufferType::kDefault) {
-    EXPECT_EQ(0,
-              QuicStreamSendBufferPeer::write_index(
-                  static_cast<QuicStreamSendBufferOld*>(send_buffer_.get())));
-  }
   ASSERT_TRUE(send_buffer_->WriteStreamData(0, 1024, &writer));
   EXPECT_EQ(copy1, absl::string_view(buf, 1024));
-  if (GetParam() == SendBufferType::kDefault) {
-    EXPECT_EQ(1,
-              QuicStreamSendBufferPeer::write_index(
-                  static_cast<QuicStreamSendBufferOld*>(send_buffer_.get())));
-  }
 
   // Retransmit the first frame and also send new data.
   ASSERT_TRUE(send_buffer_->WriteStreamData(0, 2048, &writer));
@@ -198,7 +148,7 @@
   EXPECT_EQ(copy3, absl::string_view(buf + 1024 + 2048 + 50, 1124));
 }
 
-TEST_P(QuicStreamSendBufferTest, RemoveStreamFrame) {
+TEST_F(QuicStreamSendBufferTest, RemoveStreamFrame) {
   WriteAllData();
 
   QuicByteCount newly_acked_length;
@@ -220,7 +170,7 @@
   EXPECT_EQ(0u, send_buffer_->size());
 }
 
-TEST_P(QuicStreamSendBufferTest, RemoveStreamFrameAcrossBoundaries) {
+TEST_F(QuicStreamSendBufferTest, RemoveStreamFrameAcrossBoundaries) {
   WriteAllData();
 
   QuicByteCount newly_acked_length;
@@ -246,7 +196,7 @@
   EXPECT_EQ(0u, send_buffer_->size());
 }
 
-TEST_P(QuicStreamSendBufferTest, AckStreamDataMultipleTimes) {
+TEST_F(QuicStreamSendBufferTest, AckStreamDataMultipleTimes) {
   WriteAllData();
   QuicByteCount newly_acked_length;
   EXPECT_TRUE(send_buffer_->OnStreamDataAcked(100, 1500, &newly_acked_length));
@@ -269,7 +219,7 @@
   EXPECT_FALSE(send_buffer_->OnStreamDataAcked(4000, 100, &newly_acked_length));
 }
 
-TEST_P(QuicStreamSendBufferTest, AckStreamDataOutOfOrder) {
+TEST_F(QuicStreamSendBufferTest, AckStreamDataOutOfOrder) {
   WriteAllData();
   QuicByteCount newly_acked_length;
   EXPECT_TRUE(send_buffer_->OnStreamDataAcked(500, 1000, &newly_acked_length));
@@ -295,7 +245,7 @@
   EXPECT_EQ(0u, send_buffer_->TotalDataBufferedForTest());
 }
 
-TEST_P(QuicStreamSendBufferTest, PendingRetransmission) {
+TEST_F(QuicStreamSendBufferTest, PendingRetransmission) {
   WriteAllData();
   EXPECT_TRUE(send_buffer_->IsStreamDataOutstanding(0, 3840));
   EXPECT_FALSE(send_buffer_->HasPendingRetransmission());
@@ -336,7 +286,7 @@
   EXPECT_TRUE(send_buffer_->IsStreamDataOutstanding(400, 800));
 }
 
-TEST_P(QuicStreamSendBufferTest, OutOfOrderWrites) {
+TEST_F(QuicStreamSendBufferTest, OutOfOrderWrites) {
   char buf[3840] = {};
   // Write data out of order.
   QuicDataWriter writer2(sizeof(buf) - 1000, buf + 1000);
@@ -353,7 +303,7 @@
                          std::string(1280, 'c'), std::string(768, 'd')));
 }
 
-TEST_P(QuicStreamSendBufferTest, SaveMemSliceSpan) {
+TEST_F(QuicStreamSendBufferTest, SaveMemSliceSpan) {
   std::unique_ptr<QuicStreamSendBufferBase> send_buffer = CreateBuffer();
 
   std::string data(1024, 'a');
@@ -366,7 +316,7 @@
   EXPECT_EQ(10u, send_buffer->size());
 }
 
-TEST_P(QuicStreamSendBufferTest, SaveEmptyMemSliceSpan) {
+TEST_F(QuicStreamSendBufferTest, SaveEmptyMemSliceSpan) {
   std::unique_ptr<QuicStreamSendBufferBase> send_buffer = CreateBuffer();
 
   std::string data(1024, 'a');
@@ -380,7 +330,7 @@
   EXPECT_EQ(10u, send_buffer->size());
 }
 
-TEST_P(QuicStreamSendBufferTest, SmallWrite) {
+TEST_F(QuicStreamSendBufferTest, SmallWrite) {
   std::unique_ptr<QuicStreamSendBufferBase> send_buffer = CreateBuffer();
 
   constexpr absl::string_view kData = "abcd";
diff --git a/quiche/quic/test_tools/quic_stream_peer.h b/quiche/quic/test_tools/quic_stream_peer.h
index 996b78d..c096efb 100644
--- a/quiche/quic/test_tools/quic_stream_peer.h
+++ b/quiche/quic/test_tools/quic_stream_peer.h
@@ -5,10 +5,6 @@
 #ifndef QUICHE_QUIC_TEST_TOOLS_QUIC_STREAM_PEER_H_
 #define QUICHE_QUIC_TEST_TOOLS_QUIC_STREAM_PEER_H_
 
-#include <cstdint>
-
-#include "quiche/quic/core/quic_packets.h"
-#include "quiche/quic/core/quic_stream_send_buffer.h"
 #include "quiche/quic/core/quic_stream_send_buffer_base.h"
 #include "quiche/quic/core/quic_stream_sequencer.h"
 #include "quiche/quic/core/quic_types.h"
diff --git a/quiche/quic/test_tools/simple_data_producer.h b/quiche/quic/test_tools/simple_data_producer.h
index 1d70a57..b7ad6d1 100644
--- a/quiche/quic/test_tools/simple_data_producer.h
+++ b/quiche/quic/test_tools/simple_data_producer.h
@@ -8,7 +8,6 @@
 #include "absl/container/flat_hash_map.h"
 #include "absl/strings/string_view.h"
 #include "quiche/quic/core/quic_stream_frame_data_producer.h"
-#include "quiche/quic/core/quic_stream_send_buffer.h"
 #include "quiche/quic/core/quic_stream_send_buffer_inlining.h"
 #include "quiche/common/simple_buffer_allocator.h"