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 |