Index: net/spdy/spdy_session.cc |
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc |
index 51c6ee7919db120bb9c610c0028ff3daf12a1255..bbf35bf1d53db0027d2cf58ce3936a9ea3bf125b 100644 |
--- a/net/spdy/spdy_session.cc |
+++ b/net/spdy/spdy_session.cc |
@@ -1182,7 +1182,10 @@ scoped_ptr<SpdyBuffer> SpdySession::CreateDataBuffer(SpdyStreamId stream_id, |
scoped_ptr<SpdyBuffer> data_buffer(new SpdyBuffer(frame.Pass())); |
- if (flow_control_state_ == FLOW_CONTROL_STREAM_AND_SESSION) { |
+ // Send window size is based on payload size, so nothing to do if this is |
+ // just a FIN with no payload. |
+ if (flow_control_state_ == FLOW_CONTROL_STREAM_AND_SESSION && |
+ effective_len != 0) { |
DecreaseSendWindowSize(static_cast<int32>(effective_len)); |
data_buffer->AddConsumeCallback( |
base::Bind(&SpdySession::OnWriteBufferConsumed, |