| OLD | NEW |
| 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 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/quic/core/quic_spdy_session.h" | 5 #include "net/quic/core/quic_spdy_session.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cstdint> | 8 #include <cstdint> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 621 connection()->CloseConnection(QUIC_INTERNAL_ERROR, error, | 621 connection()->CloseConnection(QUIC_INTERNAL_ERROR, error, |
| 622 ConnectionCloseBehavior::SILENT_CLOSE); | 622 ConnectionCloseBehavior::SILENT_CLOSE); |
| 623 } | 623 } |
| 624 | 624 |
| 625 void QuicSpdySession::OnConfigNegotiated() { | 625 void QuicSpdySession::OnConfigNegotiated() { |
| 626 QuicSession::OnConfigNegotiated(); | 626 QuicSession::OnConfigNegotiated(); |
| 627 if (config()->HasClientSentConnectionOption(kDHDT, perspective())) { | 627 if (config()->HasClientSentConnectionOption(kDHDT, perspective())) { |
| 628 DisableHpackDynamicTable(); | 628 DisableHpackDynamicTable(); |
| 629 } | 629 } |
| 630 const QuicVersion version = connection()->version(); | 630 const QuicVersion version = connection()->version(); |
| 631 if (FLAGS_quic_reloadable_flag_quic_enable_force_hol_blocking && | 631 if (!use_stream_notifier() && |
| 632 FLAGS_quic_reloadable_flag_quic_enable_force_hol_blocking && |
| 632 version == QUIC_VERSION_36 && config()->ForceHolBlocking(perspective())) { | 633 version == QUIC_VERSION_36 && config()->ForceHolBlocking(perspective())) { |
| 633 force_hol_blocking_ = true; | 634 force_hol_blocking_ = true; |
| 634 // Since all streams are tunneled through the headers stream, it | 635 // Since all streams are tunneled through the headers stream, it |
| 635 // is important that headers stream never flow control blocks. | 636 // is important that headers stream never flow control blocks. |
| 636 // Otherwise, busy-loop behaviour can ensue where data streams | 637 // Otherwise, busy-loop behaviour can ensue where data streams |
| 637 // data try repeatedly to write data not realizing that the | 638 // data try repeatedly to write data not realizing that the |
| 638 // tunnel through the headers stream is blocked. | 639 // tunnel through the headers stream is blocked. |
| 639 headers_stream_->flow_controller()->UpdateReceiveWindowSize( | 640 headers_stream_->flow_controller()->UpdateReceiveWindowSize( |
| 640 kStreamReceiveWindowLimit); | 641 kStreamReceiveWindowLimit); |
| 641 headers_stream_->flow_controller()->UpdateSendWindowOffset( | 642 headers_stream_->flow_controller()->UpdateSendWindowOffset( |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 816 SpdyPriority priority) { | 817 SpdyPriority priority) { |
| 817 auto* stream = static_cast<QuicSpdyStream*>( | 818 auto* stream = static_cast<QuicSpdyStream*>( |
| 818 QuicSession::MaybeCreateOutgoingDynamicStream(priority)); | 819 QuicSession::MaybeCreateOutgoingDynamicStream(priority)); |
| 819 if (stream) { | 820 if (stream) { |
| 820 stream->SetPriority(priority); | 821 stream->SetPriority(priority); |
| 821 } | 822 } |
| 822 return stream; | 823 return stream; |
| 823 } | 824 } |
| 824 | 825 |
| 825 } // namespace net | 826 } // namespace net |
| OLD | NEW |