Expose receive window size in QuicStream. Interface change only.

Needed in Envoy to setup flow control buffer limit.

PiperOrigin-RevId: 359284411
Change-Id: I692e59dfdda79fa504c177cd5ecc5e722d97b552
diff --git a/quic/core/quic_flow_controller.h b/quic/core/quic_flow_controller.h
index 7266a9e..3998081 100644
--- a/quic/core/quic_flow_controller.h
+++ b/quic/core/quic_flow_controller.h
@@ -77,6 +77,8 @@
   // Returns the current available send window.
   QuicByteCount SendWindowSize() const;
 
+  QuicByteCount receive_window_size() const { return receive_window_size_; }
+
   // Returns whether a BLOCKED frame should be sent.
   bool ShouldSendBlocked();
 
diff --git a/quic/core/quic_stream.cc b/quic/core/quic_stream.cc
index f0dca44..b8ac8cc 100644
--- a/quic/core/quic_stream.cc
+++ b/quic/core/quic_stream.cc
@@ -1439,4 +1439,11 @@
              : absl::nullopt;
 }
 
+absl::optional<QuicByteCount> QuicStream::GetReceiveWindow() const {
+  return flow_controller_.has_value()
+             ? absl::optional<QuicByteCount>(
+                   flow_controller_->receive_window_size())
+             : absl::nullopt;
+}
+
 }  // namespace quic
diff --git a/quic/core/quic_stream.h b/quic/core/quic_stream.h
index f3aa947..d89e460 100644
--- a/quic/core/quic_stream.h
+++ b/quic/core/quic_stream.h
@@ -454,6 +454,7 @@
 
   // Return the current flow control send window in bytes.
   absl::optional<QuicByteCount> GetSendWindow() const;
+  absl::optional<QuicByteCount> GetReceiveWindow() const;
 
  private:
   friend class test::QuicStreamPeer;