Move handling of STOP_SENDING frame from QuicSession to QuicStream.

Refactor only. not protected.

PiperOrigin-RevId: 321656082
Change-Id: I430fc25ab69436c817d95c5ef6626e69ddb80dda
diff --git a/quic/core/quic_stream.cc b/quic/core/quic_stream.cc
index 6318ac1..9e695d4 100644
--- a/quic/core/quic_stream.cc
+++ b/quic/core/quic_stream.cc
@@ -494,6 +494,12 @@
   }
 
   stream_error_ = static_cast<QuicRstStreamErrorCode>(code);
+
+  session()->SendRstStream(id(),
+                           static_cast<quic::QuicRstStreamErrorCode>(code),
+                           stream_bytes_written(), /*send_rst_only = */ true);
+  rst_sent_ = true;
+  CloseWriteSide();
   return true;
 }
 
@@ -579,7 +585,8 @@
 
 void QuicStream::Reset(QuicRstStreamErrorCode error) {
   stream_error_ = error;
-  session()->SendRstStream(id(), error, stream_bytes_written());
+  session()->SendRstStream(id(), error, stream_bytes_written(),
+                           /*send_rst_only = */ false);
   rst_sent_ = true;
   if (read_side_closed_ && write_side_closed_ && !IsWaitingForAcks()) {
     session()->OnStreamDoneWaitingForAcks(id_);
@@ -824,7 +831,7 @@
     // RST_STREAM frame.
     QUIC_DLOG(INFO) << ENDPOINT << "Sending RST_STREAM in OnClose: " << id();
     session_->SendRstStream(id(), QUIC_RST_ACKNOWLEDGEMENT,
-                            stream_bytes_written());
+                            stream_bytes_written(), /*send_rst_only = */ false);
     session_->OnStreamDoneWaitingForAcks(id_);
     rst_sent_ = true;
   }