Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(188)

Side by Side Diff: net/spdy/spdy_stream.cc

Issue 9392030: SPDY Proxy - Bug fix to handle flow control (spdy/2.1) (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/spdy/spdy_stream.h" 5 #include "net/spdy/spdy_stream.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 NetLog::TYPE_SPDY_STREAM_UPDATE_SEND_WINDOW, 185 NetLog::TYPE_SPDY_STREAM_UPDATE_SEND_WINDOW,
186 make_scoped_refptr(new NetLogSpdyStreamWindowUpdateParameter( 186 make_scoped_refptr(new NetLogSpdyStreamWindowUpdateParameter(
187 stream_id_, -delta_window_size, send_window_size_))); 187 stream_id_, -delta_window_size, send_window_size_)));
188 } 188 }
189 189
190 void SpdyStream::IncreaseRecvWindowSize(int delta_window_size) { 190 void SpdyStream::IncreaseRecvWindowSize(int delta_window_size) {
191 DCHECK_GE(delta_window_size, 1); 191 DCHECK_GE(delta_window_size, 1);
192 // By the time a read is isued, stream may become inactive. 192 // By the time a read is isued, stream may become inactive.
193 if (!session_->IsStreamActive(stream_id_)) 193 if (!session_->IsStreamActive(stream_id_))
194 return; 194 return;
195
196 if (!session_->is_flow_control_enabled())
197 return;
198
195 int new_window_size = recv_window_size_ + delta_window_size; 199 int new_window_size = recv_window_size_ + delta_window_size;
196 if (recv_window_size_ > 0) 200 if (recv_window_size_ > 0)
197 DCHECK(new_window_size > 0); 201 DCHECK(new_window_size > 0);
198 202
199 recv_window_size_ = new_window_size; 203 recv_window_size_ = new_window_size;
200 net_log_.AddEvent( 204 net_log_.AddEvent(
201 NetLog::TYPE_SPDY_STREAM_UPDATE_RECV_WINDOW, 205 NetLog::TYPE_SPDY_STREAM_UPDATE_RECV_WINDOW,
202 make_scoped_refptr(new NetLogSpdyStreamWindowUpdateParameter( 206 make_scoped_refptr(new NetLogSpdyStreamWindowUpdateParameter(
203 stream_id_, delta_window_size, recv_window_size_))); 207 stream_id_, delta_window_size, recv_window_size_)));
204 session_->SendWindowUpdate(stream_id_, delta_window_size); 208 session_->SendWindowUpdate(stream_id_, delta_window_size);
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 UMA_HISTOGRAM_TIMES("Net.SpdyStreamDownloadTime", 684 UMA_HISTOGRAM_TIMES("Net.SpdyStreamDownloadTime",
681 recv_last_byte_time_ - recv_first_byte_time_); 685 recv_last_byte_time_ - recv_first_byte_time_);
682 UMA_HISTOGRAM_TIMES("Net.SpdyStreamTime", 686 UMA_HISTOGRAM_TIMES("Net.SpdyStreamTime",
683 recv_last_byte_time_ - send_time_); 687 recv_last_byte_time_ - send_time_);
684 688
685 UMA_HISTOGRAM_COUNTS("Net.SpdySendBytes", send_bytes_); 689 UMA_HISTOGRAM_COUNTS("Net.SpdySendBytes", send_bytes_);
686 UMA_HISTOGRAM_COUNTS("Net.SpdyRecvBytes", recv_bytes_); 690 UMA_HISTOGRAM_COUNTS("Net.SpdyRecvBytes", recv_bytes_);
687 } 691 }
688 692
689 } // namespace net 693 } // namespace net
OLDNEW
« net/spdy/spdy_proxy_client_socket.cc ('K') | « net/spdy/spdy_proxy_client_socket.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698