Remove blocked stream limit enforcement from QpackOfflineDecoder.
QpackDecoder enforces the limit on the number of blocked streams since
cr/264688336. The logic in QpackOfflineDecoder is now redundant and can be
removed.
gfe-relnote: n/a, change to QUIC v99-only code. Protected by existing disabled gfe2_reloadable_flag_quic_enable_version_99.
PiperOrigin-RevId: 268685048
Change-Id: I0eede2e03f58b15adca1b8a67eaa7f0ffdcdd821
diff --git a/quic/core/qpack/offline/qpack_offline_decoder.cc b/quic/core/qpack/offline/qpack_offline_decoder.cc
index c958725..cf62090 100644
--- a/quic/core/qpack/offline/qpack_offline_decoder.cc
+++ b/quic/core/qpack/offline/qpack_offline_decoder.cc
@@ -19,7 +19,7 @@
namespace quic {
QpackOfflineDecoder::QpackOfflineDecoder()
- : encoder_stream_error_detected_(false), max_blocked_streams_(0) {}
+ : encoder_stream_error_detected_(false) {}
bool QpackOfflineDecoder::DecodeAndVerifyOfflineData(
QuicStringPiece input_filename,
@@ -75,7 +75,8 @@
++piece_it;
// Maximum allowed number of blocked streams.
- if (!QuicTextUtils::StringToUint64(*piece_it, &max_blocked_streams_)) {
+ uint64_t max_blocked_streams = 0;
+ if (!QuicTextUtils::StringToUint64(*piece_it, &max_blocked_streams)) {
QUIC_LOG(ERROR) << "Error parsing part of input filename \"" << *piece_it
<< "\" as an integer.";
return false;
@@ -92,7 +93,7 @@
return false;
}
qpack_decoder_ = std::make_unique<QpackDecoder>(
- maximum_dynamic_table_capacity, max_blocked_streams_, this);
+ maximum_dynamic_table_capacity, max_blocked_streams, this);
qpack_decoder_->set_qpack_stream_sender_delegate(
&decoder_stream_sender_delegate_);
@@ -181,22 +182,6 @@
decoder->headers_handler->ReleaseHeaderList());
decoders_.pop_front();
}
-
- // Enforce limit on blocked streams.
- // TODO(b/112770235): Move this logic to QpackDecoder.
- uint64_t blocked_streams_count = 0;
- for (const auto& decoder : decoders_) {
- if (!decoder.headers_handler->decoding_completed()) {
- ++blocked_streams_count;
- }
- }
-
- if (blocked_streams_count > max_blocked_streams_) {
- QUIC_LOG(ERROR) << "Too many blocked streams: limit is "
- << max_blocked_streams_ << ", actual count is "
- << blocked_streams_count;
- return false;
- }
}
if (!decoders_.empty()) {
diff --git a/quic/core/qpack/offline/qpack_offline_decoder.h b/quic/core/qpack/offline/qpack_offline_decoder.h
index dcb8894..c12c491 100644
--- a/quic/core/qpack/offline/qpack_offline_decoder.h
+++ b/quic/core/qpack/offline/qpack_offline_decoder.h
@@ -73,7 +73,6 @@
bool encoder_stream_error_detected_;
NoopQpackStreamSenderDelegate decoder_stream_sender_delegate_;
std::unique_ptr<QpackDecoder> qpack_decoder_;
- uint64_t max_blocked_streams_;
// Objects necessary for decoding, one list element for each header block.
std::list<Decoder> decoders_;