gfe-relnote: deprecate quic_ignore_tlpr_if_no_pending_stream_data. PiperOrigin-RevId: 268284975 Change-Id: I9e22888285453fa081e9ed44493c0e6aebe71de9
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc index cc4899b..85489bc 100644 --- a/quic/core/quic_connection_test.cc +++ b/quic/core/quic_connection_test.cc
@@ -4081,14 +4081,9 @@ QuicTime::Delta min_rto_timeout = QuicTime::Delta::FromMilliseconds(kMinRetransmissionTimeMs); srtt = manager_->GetRttStats()->SmoothedOrInitialRtt(); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - // First TLP without unacked stream data will no longer use TLPR. - expected_delay = std::max(2 * srtt, 1.5 * srtt + 0.5 * min_rto_timeout); - } else { - expected_delay = - std::max(QuicTime::Delta::FromMilliseconds(kMinTailLossProbeTimeoutMs), - srtt * 0.5); - } + + // First TLP without unacked stream data will no longer use TLPR. + expected_delay = std::max(2 * srtt, 1.5 * srtt + 0.5 * min_rto_timeout); EXPECT_EQ(expected_delay, connection_.GetRetransmissionAlarm()->deadline() - clock_.Now()); @@ -4119,14 +4114,8 @@ ProcessAckPacket(&ack); // Verify the retransmission delay. - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - // First TLP without unacked stream data will no longer use TLPR. - expected_delay = std::max(2 * srtt, 1.5 * srtt + 0.5 * min_rto_timeout); - } else { - expected_delay = - std::max(QuicTime::Delta::FromMilliseconds(kMinTailLossProbeTimeoutMs), - srtt * 0.5); - } + // First TLP without unacked stream data will no longer use TLPR. + expected_delay = std::max(2 * srtt, 1.5 * srtt + 0.5 * min_rto_timeout); expected_delay = expected_delay - QuicTime::Delta::FromMilliseconds(5); EXPECT_EQ(expected_delay, connection_.GetRetransmissionAlarm()->deadline() - clock_.Now());
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc index 54e6444..e167c09 100644 --- a/quic/core/quic_sent_packet_manager.cc +++ b/quic/core/quic_sent_packet_manager.cc
@@ -108,8 +108,6 @@ pto_enabled_(false), max_probe_packets_per_pto_(2), consecutive_pto_count_(0), - ignore_tlpr_if_no_pending_stream_data_( - GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)), fix_rto_retransmission_(false), handshake_mode_disabled_(false) { SetSendAlgorithm(congestion_control_type); @@ -1090,12 +1088,9 @@ size_t consecutive_tlp_count) const { QuicTime::Delta srtt = rtt_stats_.SmoothedOrInitialRtt(); if (enable_half_rtt_tail_loss_probe_ && consecutive_tlp_count == 0u) { - if (!ignore_tlpr_if_no_pending_stream_data_ || - !session_decides_what_to_write()) { + if (!session_decides_what_to_write()) { return std::max(min_tlp_timeout_, srtt * 0.5); } - QUIC_RELOADABLE_FLAG_COUNT_N(quic_ignore_tlpr_if_no_pending_stream_data, 1, - 5); if (unacked_packets().HasUnackedStreamData()) { // Enable TLPR if there are pending data packets. return std::max(min_tlp_timeout_, srtt * 0.5);
diff --git a/quic/core/quic_sent_packet_manager.h b/quic/core/quic_sent_packet_manager.h index f201eb8..e50a181 100644 --- a/quic/core/quic_sent_packet_manager.h +++ b/quic/core/quic_sent_packet_manager.h
@@ -408,10 +408,6 @@ return unacked_packets_.supports_multiple_packet_number_spaces(); } - bool ignore_tlpr_if_no_pending_stream_data() const { - return ignore_tlpr_if_no_pending_stream_data_; - } - bool fix_rto_retransmission() const { return fix_rto_retransmission_; } bool pto_enabled() const { return pto_enabled_; } @@ -654,9 +650,6 @@ // Number of times the PTO timer has fired in a row without receiving an ack. size_t consecutive_pto_count_; - // Latched value of quic_ignore_tlpr_if_no_pending_stream_data. - const bool ignore_tlpr_if_no_pending_stream_data_; - // Latched value of quic_fix_rto_retransmission3 and // session_decides_what_to_write. bool fix_rto_retransmission_;
diff --git a/quic/core/quic_sent_packet_manager_test.cc b/quic/core/quic_sent_packet_manager_test.cc index 8fe02a7..be22dee 100644 --- a/quic/core/quic_sent_packet_manager_test.cc +++ b/quic/core/quic_sent_packet_manager_test.cc
@@ -1912,10 +1912,8 @@ rtt_stats->set_initial_rtt(QuicTime::Delta::FromMilliseconds(100)); QuicTime::Delta srtt = rtt_stats->initial_rtt(); QuicTime::Delta expected_tlp_delay = 0.5 * srtt; - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - // With no pending stream data, TLPR is ignored. - expected_tlp_delay = 2 * srtt; - } + // With no pending stream data, TLPR is ignored. + expected_tlp_delay = 2 * srtt; EXPECT_CALL(notifier_, HasUnackedStreamData()).WillRepeatedly(Return(false)); EXPECT_EQ(expected_tlp_delay, manager_.GetRetransmissionTime() - clock_.Now());
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc index f4e3f8a..68cfd6d 100644 --- a/quic/core/quic_session.cc +++ b/quic/core/quic_session.cc
@@ -827,10 +827,7 @@ zombie_streams_[stream->id()] = std::move(it->second); } else { // Clean up the stream since it is no longer waiting for acks. - if (ignore_tlpr_if_no_pending_stream_data() && - session_decides_what_to_write()) { - QUIC_RELOADABLE_FLAG_COUNT_N(quic_ignore_tlpr_if_no_pending_stream_data, - 2, 5); + if (session_decides_what_to_write()) { streams_waiting_for_acks_.erase(stream->id()); } closed_streams_.push_back(std::move(it->second)); @@ -1486,10 +1483,7 @@ } void QuicSession::OnStreamDoneWaitingForAcks(QuicStreamId id) { - if (ignore_tlpr_if_no_pending_stream_data() && - session_decides_what_to_write()) { - QUIC_RELOADABLE_FLAG_COUNT_N(quic_ignore_tlpr_if_no_pending_stream_data, 3, - 5); + if (session_decides_what_to_write()) { streams_waiting_for_acks_.erase(id); } @@ -1508,8 +1502,7 @@ } void QuicSession::OnStreamWaitingForAcks(QuicStreamId id) { - if (!ignore_tlpr_if_no_pending_stream_data() || - !session_decides_what_to_write()) + if (!session_decides_what_to_write()) return; // Exclude crypto stream's status since it is counted in HasUnackedCryptoData. @@ -1517,8 +1510,6 @@ return; } - QUIC_RELOADABLE_FLAG_COUNT_N(quic_ignore_tlpr_if_no_pending_stream_data, 4, - 5); streams_waiting_for_acks_.insert(id); // The number of the streams waiting for acks should not be larger than the @@ -1675,14 +1666,7 @@ } bool QuicSession::HasUnackedStreamData() const { - DCHECK(ignore_tlpr_if_no_pending_stream_data()); - if (ignore_tlpr_if_no_pending_stream_data()) { - QUIC_RELOADABLE_FLAG_COUNT_N(quic_ignore_tlpr_if_no_pending_stream_data, 5, - 5); - return !streams_waiting_for_acks_.empty(); - } - - return true; + return !streams_waiting_for_acks_.empty(); } WriteStreamDataResult QuicSession::WriteStreamData(QuicStreamId id,
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h index 11db24d..1475532 100644 --- a/quic/core/quic_session.h +++ b/quic/core/quic_session.h
@@ -651,11 +651,6 @@ // stream. void PendingStreamOnRstStream(const QuicRstStreamFrame& frame); - bool ignore_tlpr_if_no_pending_stream_data() const { - return connection_->sent_packet_manager() - .ignore_tlpr_if_no_pending_stream_data(); - } - // Keep track of highest received byte offset of locally closed streams, while // waiting for a definitive final highest offset from the peer. std::map<QuicStreamId, QuicStreamOffset>
diff --git a/quic/core/quic_stream_test.cc b/quic/core/quic_stream_test.cc index 56b4da2..3b0becc 100644 --- a/quic/core/quic_stream_test.cc +++ b/quic/core/quic_stream_test.cc
@@ -309,9 +309,7 @@ NO_FIN); })); stream_->WriteOrBufferData(QuicStringPiece(kData1, 2), false, nullptr); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); ASSERT_EQ(1u, write_blocked_list_->NumBlockedStreams()); EXPECT_EQ(1u, stream_->BufferedDataBytes()); } @@ -329,9 +327,7 @@ NO_FIN); })); stream_->WriteOrBufferData(QuicStringPiece(kData1, 2), true, nullptr); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); ASSERT_EQ(1u, write_blocked_list_->NumBlockedStreams()); } @@ -377,10 +373,8 @@ kDataLen - 1, 0u, NO_FIN); })); stream_->WriteOrBufferData(kData1, false, nullptr); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_EQ(1u, stream_->BufferedDataBytes()); EXPECT_TRUE(HasWriteBlockedStreams()); @@ -395,9 +389,7 @@ kDataLen - 1, kDataLen - 1, NO_FIN); })); stream_->OnCanWrite(); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); // And finally the end of the bytes_consumed. EXPECT_CALL(*session_, WritevData(_, _, _, _, _)) @@ -406,9 +398,7 @@ 2 * kDataLen - 2, NO_FIN); })); stream_->OnCanWrite(); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); } TEST_P(QuicStreamTest, WriteOrBufferDataReachStreamLimit) { @@ -419,9 +409,7 @@ EXPECT_CALL(*session_, WritevData(_, _, _, _, _)) .WillOnce(Invoke(&(MockQuicSession::ConsumeData))); stream_->WriteOrBufferData(data, false, nullptr); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_CALL(*connection_, CloseConnection(QUIC_STREAM_LENGTH_OVERFLOW, _, _)); EXPECT_QUIC_BUG(stream_->WriteOrBufferData("a", false, nullptr), "Write too many data via stream"); @@ -456,18 +444,14 @@ NO_FIN); })); stream_->WriteOrBufferData(QuicStringPiece(kData1, 1), false, nullptr); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_FALSE(fin_sent()); EXPECT_FALSE(rst_sent()); // Now close the stream, and expect that we send a RST. EXPECT_CALL(*session_, SendRstStream(_, _, _)); stream_->OnClose(); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); EXPECT_FALSE(fin_sent()); EXPECT_TRUE(rst_sent()); } @@ -838,15 +822,11 @@ // Stream is not waiting for acks initially. EXPECT_FALSE(stream_->IsWaitingForAcks()); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); // Send kData1. stream_->WriteOrBufferData(kData1, false, nullptr); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_TRUE(stream_->IsWaitingForAcks()); QuicByteCount newly_acked_length = 0; @@ -855,17 +835,13 @@ EXPECT_EQ(9u, newly_acked_length); // Stream is not waiting for acks as all sent data is acked. EXPECT_FALSE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); // Send kData2. stream_->WriteOrBufferData(kData2, false, nullptr); EXPECT_TRUE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size()); // Send FIN. stream_->WriteOrBufferData("", true, nullptr); @@ -881,9 +857,7 @@ EXPECT_EQ(9u, newly_acked_length); // Stream is waiting for acks as FIN is not acked. EXPECT_TRUE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); // FIN is acked. @@ -891,9 +865,7 @@ &newly_acked_length)); EXPECT_EQ(0u, newly_acked_length); EXPECT_FALSE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); } @@ -908,43 +880,31 @@ stream_->WriteOrBufferData("", true, nullptr); EXPECT_EQ(3u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_TRUE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); QuicByteCount newly_acked_length = 0; EXPECT_TRUE(stream_->OnStreamFrameAcked(9, 9, false, QuicTime::Delta::Zero(), &newly_acked_length)); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_EQ(9u, newly_acked_length); EXPECT_EQ(3u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_TRUE(stream_->OnStreamFrameAcked(18, 9, false, QuicTime::Delta::Zero(), &newly_acked_length)); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_EQ(9u, newly_acked_length); EXPECT_EQ(3u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_TRUE(stream_->OnStreamFrameAcked(0, 9, false, QuicTime::Delta::Zero(), &newly_acked_length)); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_EQ(9u, newly_acked_length); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); // FIN is not acked yet. EXPECT_TRUE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_TRUE(stream_->OnStreamFrameAcked(27, 0, true, QuicTime::Delta::Zero(), &newly_acked_length)); EXPECT_EQ(0u, newly_acked_length); EXPECT_FALSE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); } TEST_P(QuicStreamTest, CancelStream) { @@ -952,25 +912,19 @@ EXPECT_CALL(*session_, WritevData(_, _, _, _, _)) .WillRepeatedly(Invoke(MockQuicSession::ConsumeData)); EXPECT_FALSE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); stream_->WriteOrBufferData(kData1, false, nullptr); EXPECT_TRUE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size()); // Cancel stream. stream_->Reset(QUIC_STREAM_NO_ERROR); // stream still waits for acks as the error code is QUIC_STREAM_NO_ERROR, and // data is going to be retransmitted. EXPECT_TRUE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_CALL(*connection_, OnStreamReset(stream_->id(), QUIC_STREAM_CANCELLED)); EXPECT_CALL(*connection_, SendControlFrame(_)).Times(1); @@ -986,9 +940,7 @@ EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size()); // Stream stops waiting for acks as data is not going to be retransmitted. EXPECT_FALSE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); } TEST_P(QuicStreamTest, RstFrameReceivedStreamNotFinishSending) { @@ -996,16 +948,12 @@ EXPECT_CALL(*session_, WritevData(_, _, _, _, _)) .WillRepeatedly(Invoke(MockQuicSession::ConsumeData)); EXPECT_FALSE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); stream_->WriteOrBufferData(kData1, false, nullptr); EXPECT_TRUE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size()); // RST_STREAM received. @@ -1018,9 +966,7 @@ // Stream stops waiting for acks as it does not finish sending and rst is // sent. EXPECT_FALSE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); } TEST_P(QuicStreamTest, RstFrameReceivedStreamFinishSending) { @@ -1028,16 +974,12 @@ EXPECT_CALL(*session_, WritevData(_, _, _, _, _)) .WillRepeatedly(Invoke(MockQuicSession::ConsumeData)); EXPECT_FALSE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); stream_->WriteOrBufferData(kData1, true, nullptr); EXPECT_TRUE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); // RST_STREAM received. EXPECT_CALL(*session_, SendRstStream(_, _, _)).Times(0); @@ -1046,9 +988,7 @@ stream_->OnStreamReset(rst_frame); // Stream still waits for acks as it finishes sending and has unacked data. EXPECT_TRUE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size()); } @@ -1057,16 +997,12 @@ EXPECT_CALL(*session_, WritevData(_, _, _, _, _)) .WillRepeatedly(Invoke(MockQuicSession::ConsumeData)); EXPECT_FALSE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); stream_->WriteOrBufferData(kData1, false, nullptr); EXPECT_TRUE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_CALL(*session_, SendRstStream(stream_->id(), QUIC_RST_ACKNOWLEDGEMENT, 9)); stream_->OnConnectionClosed(QUIC_INTERNAL_ERROR, @@ -1074,9 +1010,7 @@ EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size()); // Stream stops waiting for acks as connection is going to close. EXPECT_FALSE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); } TEST_P(QuicStreamTest, CanWriteNewDataAfterData) { @@ -1320,9 +1254,7 @@ EXPECT_CALL(*session_, WritevData(_, _, _, _, _)) .WillRepeatedly(Invoke(MockQuicSession::ConsumeData)); EXPECT_FALSE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); // Send [0, 27) and fin. stream_->WriteOrBufferData(kData1, false, nullptr); @@ -1330,9 +1262,7 @@ stream_->WriteOrBufferData(kData1, true, nullptr); EXPECT_EQ(3u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_TRUE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); // Ack [0, 9), [5, 22) and [18, 26) // Verify [0, 9) 9 bytes are acked. @@ -1352,9 +1282,7 @@ EXPECT_EQ(4u, newly_acked_length); EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_TRUE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); // Ack [0, 27). Verify [26, 27) 1 byte is acked. EXPECT_TRUE(stream_->OnStreamFrameAcked(26, 1, false, QuicTime::Delta::Zero(), @@ -1362,9 +1290,7 @@ EXPECT_EQ(1u, newly_acked_length); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_TRUE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_TRUE(session_->HasUnackedStreamData()); - } + EXPECT_TRUE(session_->HasUnackedStreamData()); // Ack Fin. EXPECT_TRUE(stream_->OnStreamFrameAcked(27, 0, true, QuicTime::Delta::Zero(), @@ -1372,9 +1298,7 @@ EXPECT_EQ(0u, newly_acked_length); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_FALSE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); // Ack [10, 27) and fin. No new data is acked. EXPECT_FALSE(stream_->OnStreamFrameAcked( @@ -1382,9 +1306,7 @@ EXPECT_EQ(0u, newly_acked_length); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_FALSE(stream_->IsWaitingForAcks()); - if (GetQuicReloadableFlag(quic_ignore_tlpr_if_no_pending_stream_data)) { - EXPECT_FALSE(session_->HasUnackedStreamData()); - } + EXPECT_FALSE(session_->HasUnackedStreamData()); } TEST_P(QuicStreamTest, OnStreamFrameLost) {