| Index: net/spdy/spdy_session.h
|
| diff --git a/net/spdy/spdy_session.h b/net/spdy/spdy_session.h
|
| index 52ecad76211beefa065a5fca5fd34f0824ff3aaa..4d94e8fc4ed59976f2be280d89b6618a69cd60bf 100644
|
| --- a/net/spdy/spdy_session.h
|
| +++ b/net/spdy/spdy_session.h
|
| @@ -58,9 +58,6 @@ const int kMaxConcurrentPushedStreams = 1000;
|
| // yielding.
|
| const int kMaxReadBytesWithoutYielding = 32 * 1024;
|
|
|
| -// The initial receive window size for both streams and sessions.
|
| -const int32 kDefaultInitialRecvWindowSize = 10 * 1024 * 1024; // 10MB
|
| -
|
| // First and last valid stream IDs. As we always act as the client,
|
| // start at 1 for the first stream id.
|
| const SpdyStreamId kFirstStreamId = 1;
|
| @@ -245,7 +242,8 @@ class NET_EXPORT SpdySession : public BufferedSpdyFramerVisitorInterface,
|
| bool enable_compression,
|
| bool enable_ping_based_connection_checking,
|
| NextProto default_protocol,
|
| - size_t stream_initial_recv_window_size,
|
| + size_t session_max_recv_window_size,
|
| + size_t stream_max_recv_window_size,
|
| size_t initial_max_concurrent_streams,
|
| size_t max_concurrent_streams_limit,
|
| TimeFunc time_func,
|
| @@ -463,9 +461,9 @@ class NET_EXPORT SpdySession : public BufferedSpdyFramerVisitorInterface,
|
| return stream_initial_send_window_size_;
|
| }
|
|
|
| - // Returns the current |stream_initial_recv_window_size_|.
|
| - int32 stream_initial_recv_window_size() const {
|
| - return stream_initial_recv_window_size_;
|
| + // Returns the current |stream_max_recv_window_size_|.
|
| + int32 stream_max_recv_window_size() const {
|
| + return stream_max_recv_window_size_;
|
| }
|
|
|
| // Returns true if no stream in the session can send data due to
|
| @@ -1112,6 +1110,25 @@ class NET_EXPORT SpdySession : public BufferedSpdyFramerVisitorInterface,
|
| // The (version-dependent) flow control state.
|
| FlowControlState flow_control_state_;
|
|
|
| + // Current send window size. Zero unless session flow control is turned on.
|
| + int32 session_send_window_size_;
|
| +
|
| + // Maximum receive window size. Each time a WINDOW_UPDATE is sent, it
|
| + // restores the receive window size to this value. Zero unless session flow
|
| + // control is turned on.
|
| + int32 session_max_recv_window_size_;
|
| +
|
| + // Sum of |session_unacked_recv_window_bytes_| and current receive window
|
| + // size. Zero unless session flow control is turned on.
|
| + // TODO(bnc): Rename or change semantics so that |window_size_| is actual
|
| + // window size.
|
| + int32 session_recv_window_size_;
|
| +
|
| + // When bytes are consumed, SpdyIOBuffer destructor calls back to SpdySession,
|
| + // and this member keeps count of them until the corresponding WINDOW_UPDATEs
|
| + // are sent. Zero unless session flow control is turned on.
|
| + int32 session_unacked_recv_window_bytes_;
|
| +
|
| // Initial send window size for this session's streams. Can be
|
| // changed by an arriving SETTINGS frame. Newly created streams use
|
| // this value for the initial send window size.
|
| @@ -1122,13 +1139,7 @@ class NET_EXPORT SpdySession : public BufferedSpdyFramerVisitorInterface,
|
| // frame with window size announcement to be sent on startup. Newly
|
| // created streams will use this value for the initial receive
|
| // window size.
|
| - int32 stream_initial_recv_window_size_;
|
| -
|
| - // Session flow control variables. All zero unless session flow
|
| - // control is turned on.
|
| - int32 session_send_window_size_;
|
| - int32 session_recv_window_size_;
|
| - int32 session_unacked_recv_window_bytes_;
|
| + int32 stream_max_recv_window_size_;
|
|
|
| // A queue of stream IDs that have been send-stalled at some point
|
| // in the past.
|
|
|