| Index: net/quic/reliable_quic_stream.cc
|
| diff --git a/net/quic/reliable_quic_stream.cc b/net/quic/reliable_quic_stream.cc
|
| index f01c7d30cebf38674ce9bf8780d564bbe070c9bc..7785e72690ee26c065e1f4313dcdfe53e9cc5076 100644
|
| --- a/net/quic/reliable_quic_stream.cc
|
| +++ b/net/quic/reliable_quic_stream.cc
|
| @@ -333,14 +333,14 @@ void ReliableQuicStream::OnCanWrite() {
|
|
|
| void ReliableQuicStream::MaybeSendBlocked() {
|
| flow_controller_.MaybeSendBlocked();
|
| - if (stream_contributes_to_connection_flow_control_) {
|
| - connection_flow_controller_->MaybeSendBlocked();
|
| + if (!stream_contributes_to_connection_flow_control_) {
|
| + return;
|
| }
|
| + connection_flow_controller_->MaybeSendBlocked();
|
| // If we are connection level flow control blocked, then add the stream
|
| // to the write blocked list. It will be given a chance to write when a
|
| // connection level WINDOW_UPDATE arrives.
|
| - if (stream_contributes_to_connection_flow_control_ &&
|
| - connection_flow_controller_->IsBlocked() &&
|
| + if (connection_flow_controller_->IsBlocked() &&
|
| !flow_controller_.IsBlocked()) {
|
| session_->MarkWriteBlocked(id(), EffectivePriority());
|
| }
|
| @@ -490,22 +490,24 @@ void ReliableQuicStream::OnWindowUpdateFrame(
|
| }
|
|
|
| bool ReliableQuicStream::MaybeIncreaseHighestReceivedOffset(uint64 new_offset) {
|
| - if (flow_controller_.IsEnabled()) {
|
| - uint64 increment =
|
| - new_offset - flow_controller_.highest_received_byte_offset();
|
| - if (flow_controller_.UpdateHighestReceivedOffset(new_offset)) {
|
| - // If |new_offset| increased the stream flow controller's highest received
|
| - // offset, then we need to increase the connection flow controller's value
|
| - // by the incremental difference.
|
| - if (stream_contributes_to_connection_flow_control_) {
|
| - connection_flow_controller_->UpdateHighestReceivedOffset(
|
| - connection_flow_controller_->highest_received_byte_offset() +
|
| - increment);
|
| - }
|
| - return true;
|
| - }
|
| + if (!flow_controller_.IsEnabled()) {
|
| + return false;
|
| }
|
| - return false;
|
| + uint64 increment =
|
| + new_offset - flow_controller_.highest_received_byte_offset();
|
| + if (!flow_controller_.UpdateHighestReceivedOffset(new_offset)) {
|
| + return false;
|
| + }
|
| +
|
| + // If |new_offset| increased the stream flow controller's highest received
|
| + // offset, then we need to increase the connection flow controller's value
|
| + // by the incremental difference.
|
| + if (stream_contributes_to_connection_flow_control_) {
|
| + connection_flow_controller_->UpdateHighestReceivedOffset(
|
| + connection_flow_controller_->highest_received_byte_offset() +
|
| + increment);
|
| + }
|
| + return true;
|
| }
|
|
|
| void ReliableQuicStream::AddBytesSent(uint64 bytes) {
|
| @@ -531,11 +533,11 @@ void ReliableQuicStream::AddBytesConsumed(uint64 bytes) {
|
| }
|
|
|
| bool ReliableQuicStream::IsFlowControlBlocked() {
|
| - bool stream_flow_control_blocked = flow_controller_.IsBlocked();
|
| - bool connecton_flow_control_blocked =
|
| - stream_contributes_to_connection_flow_control_ &&
|
| + if (flow_controller_.IsBlocked()) {
|
| + return true;
|
| + }
|
| + return stream_contributes_to_connection_flow_control_ &&
|
| connection_flow_controller_->IsBlocked();
|
| - return stream_flow_control_blocked || connecton_flow_control_blocked;
|
| }
|
|
|
| } // namespace net
|
|
|