Surface receive_timestamp to QuicStream::OnStreamFrameAcked. In order to surface to the application when a message (video frame in our case) is received on the client--for logging and for online phase adjustment. gfe-relnote: n/a (noop change) PiperOrigin-RevId: 295743926 Change-Id: Icff772ef85cd7de4c4b758850456701c72b07897
diff --git a/quic/core/http/quic_headers_stream.cc b/quic/core/http/quic_headers_stream.cc index 1bac2b7..1e7feb3 100644 --- a/quic/core/http/quic_headers_stream.cc +++ b/quic/core/http/quic_headers_stream.cc
@@ -60,6 +60,7 @@ QuicByteCount data_length, bool fin_acked, QuicTime::Delta ack_delay_time, + QuicTime receive_timestamp, QuicByteCount* newly_acked_length) { QuicIntervalSet<QuicStreamOffset> newly_acked(offset, offset + data_length); newly_acked.Difference(bytes_acked()); @@ -104,7 +105,8 @@ unacked_headers_.pop_front(); } return QuicStream::OnStreamFrameAcked(offset, data_length, fin_acked, - ack_delay_time, newly_acked_length); + ack_delay_time, receive_timestamp, + newly_acked_length); } void QuicHeadersStream::OnStreamFrameRetransmitted(QuicStreamOffset offset,
diff --git a/quic/core/http/quic_headers_stream.h b/quic/core/http/quic_headers_stream.h index c54ce95..e97a78d 100644 --- a/quic/core/http/quic_headers_stream.h +++ b/quic/core/http/quic_headers_stream.h
@@ -43,6 +43,7 @@ QuicByteCount data_length, bool fin_acked, QuicTime::Delta ack_delay_time, + QuicTime receive_timestamp, QuicByteCount* newly_acked_length) override; void OnStreamFrameRetransmitted(QuicStreamOffset offset,
diff --git a/quic/core/http/quic_headers_stream_test.cc b/quic/core/http/quic_headers_stream_test.cc index aef31b1..68bbadf 100644 --- a/quic/core/http/quic_headers_stream_test.cc +++ b/quic/core/http/quic_headers_stream_test.cc
@@ -863,29 +863,35 @@ EXPECT_CALL(*ack_listener3, OnPacketAcked(7, _)); EXPECT_CALL(*ack_listener2, OnPacketAcked(7, _)); EXPECT_TRUE(headers_stream_->OnStreamFrameAcked( - 21, 7, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 21, 7, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(7u, newly_acked_length); EXPECT_TRUE(headers_stream_->OnStreamFrameAcked( - 28, 7, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 28, 7, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(7u, newly_acked_length); EXPECT_CALL(*ack_listener3, OnPacketAcked(7, _)); EXPECT_TRUE(headers_stream_->OnStreamFrameAcked( - 35, 7, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 35, 7, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(7u, newly_acked_length); EXPECT_CALL(*ack_listener1, OnPacketAcked(7, _)); EXPECT_CALL(*ack_listener1, OnPacketAcked(7, _)); EXPECT_TRUE(headers_stream_->OnStreamFrameAcked( - 0, 7, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 0, 7, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(7u, newly_acked_length); EXPECT_TRUE(headers_stream_->OnStreamFrameAcked( - 7, 7, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 7, 7, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(7u, newly_acked_length); // Unsent data is acked. EXPECT_CALL(*ack_listener2, OnPacketAcked(7, _)); EXPECT_TRUE(headers_stream_->OnStreamFrameAcked( - 14, 10, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 14, 10, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(7u, newly_acked_length); } @@ -922,19 +928,22 @@ EXPECT_CALL(*ack_listener3, OnPacketAcked(7, _)); EXPECT_CALL(*ack_listener2, OnPacketAcked(2, _)); EXPECT_TRUE(headers_stream_->OnStreamFrameAcked( - 17, 13, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 17, 13, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(13u, newly_acked_length); EXPECT_CALL(*ack_listener2, OnPacketAcked(5, _)); EXPECT_CALL(*ack_listener3, OnPacketAcked(7, _)); EXPECT_TRUE(headers_stream_->OnStreamFrameAcked( - 30, 12, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 30, 12, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(12u, newly_acked_length); EXPECT_CALL(*ack_listener1, OnPacketAcked(14, _)); EXPECT_CALL(*ack_listener2, OnPacketAcked(3, _)); EXPECT_TRUE(headers_stream_->OnStreamFrameAcked( - 0, 17, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 0, 17, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(17u, newly_acked_length); } @@ -964,7 +973,8 @@ QuicByteCount newly_acked_length = 0; EXPECT_CALL(*ack_listener2, OnPacketAcked(5, _)); EXPECT_TRUE(headers_stream_->OnStreamFrameAcked( - 15, 5, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 15, 5, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(5u, newly_acked_length); EXPECT_CALL(*ack_listener1, OnPacketAcked(9, _)); @@ -972,24 +982,28 @@ EXPECT_CALL(*ack_listener2, OnPacketAcked(1, _)); EXPECT_CALL(*ack_listener3, OnPacketAcked(4, _)); EXPECT_TRUE(headers_stream_->OnStreamFrameAcked( - 5, 20, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 5, 20, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(15u, newly_acked_length); // Duplicate ack. EXPECT_FALSE(headers_stream_->OnStreamFrameAcked( - 10, 7, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 10, 7, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(0u, newly_acked_length); EXPECT_CALL(*ack_listener1, OnPacketAcked(5, _)); EXPECT_TRUE(headers_stream_->OnStreamFrameAcked( - 0, 12, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 0, 12, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(5u, newly_acked_length); EXPECT_CALL(*ack_listener3, OnPacketAcked(3, _)); EXPECT_CALL(*ack_listener2, OnPacketAcked(7, _)); EXPECT_CALL(*ack_listener3, OnPacketAcked(7, _)); EXPECT_TRUE(headers_stream_->OnStreamFrameAcked( - 22, 20, false, QuicTime::Delta::Zero(), &newly_acked_length)); + 22, 20, false, QuicTime::Delta::Zero(), QuicTime::Zero(), + &newly_acked_length)); EXPECT_EQ(17u, newly_acked_length); }
diff --git a/quic/core/http/quic_spdy_stream.cc b/quic/core/http/quic_spdy_stream.cc index 8625dae..67cc6b4 100644 --- a/quic/core/http/quic_spdy_stream.cc +++ b/quic/core/http/quic_spdy_stream.cc
@@ -881,9 +881,11 @@ QuicByteCount data_length, bool fin_acked, QuicTime::Delta ack_delay_time, + QuicTime receive_timestamp, QuicByteCount* newly_acked_length) { const bool new_data_acked = QuicStream::OnStreamFrameAcked( - offset, data_length, fin_acked, ack_delay_time, newly_acked_length); + offset, data_length, fin_acked, ack_delay_time, receive_timestamp, + newly_acked_length); const QuicByteCount newly_acked_header_length = GetNumFrameHeadersInInterval(offset, data_length);
diff --git a/quic/core/http/quic_spdy_stream.h b/quic/core/http/quic_spdy_stream.h index 923ff7c..e231a35 100644 --- a/quic/core/http/quic_spdy_stream.h +++ b/quic/core/http/quic_spdy_stream.h
@@ -140,6 +140,7 @@ QuicByteCount data_length, bool fin_acked, QuicTime::Delta ack_delay_time, + QuicTime receive_timestamp, QuicByteCount* newly_acked_length) override; // Override to report bytes retransmitted via ack_listener_.
diff --git a/quic/core/http/quic_spdy_stream_test.cc b/quic/core/http/quic_spdy_stream_test.cc index aae249c..e68091d 100644 --- a/quic/core/http/quic_spdy_stream_test.cc +++ b/quic/core/http/quic_spdy_stream_test.cc
@@ -1646,6 +1646,7 @@ EXPECT_CALL(*mock_ack_listener, OnPacketAcked(9, _)); QuicByteCount newly_acked_length = 0; EXPECT_TRUE(stream_->OnStreamFrameAcked(0, 9, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); // Stream is not waiting for acks as all sent data is acked. EXPECT_FALSE(stream_->IsWaitingForAcks()); @@ -1667,6 +1668,7 @@ // kData2 is acked. EXPECT_CALL(*mock_ack_listener, OnPacketAcked(9, _)); EXPECT_TRUE(stream_->OnStreamFrameAcked(9, 9, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); // Stream is waiting for acks as FIN is not acked. EXPECT_TRUE(stream_->IsWaitingForAcks()); @@ -1675,6 +1677,7 @@ // FIN is acked. EXPECT_CALL(*mock_ack_listener, OnPacketAcked(0, _)); EXPECT_TRUE(stream_->OnStreamFrameAcked(18, 0, true, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_FALSE(stream_->IsWaitingForAcks()); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); @@ -1696,16 +1699,19 @@ QuicByteCount newly_acked_length = 0; EXPECT_CALL(*mock_ack_listener, OnPacketAcked(9, _)); EXPECT_TRUE(stream_->OnStreamFrameAcked(0, 9, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(2u, QuicStreamPeer::SendBuffer(stream_).size()); // Verify [9, 22) 13 bytes are acked. EXPECT_CALL(*mock_ack_listener, OnPacketAcked(13, _)); EXPECT_TRUE(stream_->OnStreamFrameAcked(5, 17, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size()); // Verify [22, 26) 4 bytes are acked. EXPECT_CALL(*mock_ack_listener, OnPacketAcked(4, _)); EXPECT_TRUE(stream_->OnStreamFrameAcked(18, 8, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_TRUE(stream_->IsWaitingForAcks()); @@ -1714,6 +1720,7 @@ // Verify [26, 27) 1 byte is acked. EXPECT_CALL(*mock_ack_listener, OnPacketAcked(1, _)); EXPECT_TRUE(stream_->OnStreamFrameAcked(26, 1, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_TRUE(stream_->IsWaitingForAcks()); @@ -1721,6 +1728,7 @@ // Ack Fin. Verify OnPacketAcked is called. EXPECT_CALL(*mock_ack_listener, OnPacketAcked(0, _)); EXPECT_TRUE(stream_->OnStreamFrameAcked(27, 0, true, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_FALSE(stream_->IsWaitingForAcks()); @@ -1728,8 +1736,9 @@ // Ack [10, 27) and fin. // No new data is acked, verify OnPacketAcked is not called. EXPECT_CALL(*mock_ack_listener, OnPacketAcked(_, _)).Times(0); - EXPECT_FALSE(stream_->OnStreamFrameAcked( - 10, 17, true, QuicTime::Delta::Zero(), &newly_acked_length)); + EXPECT_FALSE( + stream_->OnStreamFrameAcked(10, 17, true, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_FALSE(stream_->IsWaitingForAcks()); }
diff --git a/quic/core/quic_crypto_stream_test.cc b/quic/core/quic_crypto_stream_test.cc index 1e1967c..fd61522 100644 --- a/quic/core/quic_crypto_stream_test.cc +++ b/quic/core/quic_crypto_stream_test.cc
@@ -374,7 +374,7 @@ // Ack [2000, 2500). QuicByteCount newly_acked_length = 0; stream_->OnStreamFrameAcked(2000, 500, false, QuicTime::Delta::Zero(), - &newly_acked_length); + QuicTime::Zero(), &newly_acked_length); EXPECT_EQ(500u, newly_acked_length); // Force crypto stream to send [1350, 2700) and only [1350, 1500) is consumed.
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc index 7d8bc54..108060b 100644 --- a/quic/core/quic_session.cc +++ b/quic/core/quic_session.cc
@@ -1883,7 +1883,8 @@ QuicByteCount newly_acked_length = 0; new_stream_data_acked = stream->OnStreamFrameAcked( frame.stream_frame.offset, frame.stream_frame.data_length, - frame.stream_frame.fin, ack_delay_time, &newly_acked_length); + frame.stream_frame.fin, ack_delay_time, receive_timestamp, + &newly_acked_length); if (!stream->HasPendingRetransmission()) { streams_with_pending_retransmission_.erase(stream->id()); }
diff --git a/quic/core/quic_stream.cc b/quic/core/quic_stream.cc index a59bfe5..fee630b 100644 --- a/quic/core/quic_stream.cc +++ b/quic/core/quic_stream.cc
@@ -857,6 +857,7 @@ QuicByteCount data_length, bool fin_acked, QuicTime::Delta /*ack_delay_time*/, + QuicTime /*receive_timestamp*/, QuicByteCount* newly_acked_length) { QUIC_DVLOG(1) << ENDPOINT << "stream " << id_ << " Acking " << "[" << offset << ", " << offset + data_length << "]"
diff --git a/quic/core/quic_stream.h b/quic/core/quic_stream.h index 4f13e7f..57bfede 100644 --- a/quic/core/quic_stream.h +++ b/quic/core/quic_stream.h
@@ -297,6 +297,7 @@ QuicByteCount data_length, bool fin_acked, QuicTime::Delta ack_delay_time, + QuicTime receive_timestamp, QuicByteCount* newly_acked_length); // Called when data [offset, offset + data_length) was retransmitted.
diff --git a/quic/core/quic_stream_test.cc b/quic/core/quic_stream_test.cc index 31fd411..0dad1aa 100644 --- a/quic/core/quic_stream_test.cc +++ b/quic/core/quic_stream_test.cc
@@ -819,6 +819,7 @@ EXPECT_TRUE(stream_->IsWaitingForAcks()); QuicByteCount newly_acked_length = 0; EXPECT_TRUE(stream_->OnStreamFrameAcked(0, 9, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(9u, newly_acked_length); // Stream is not waiting for acks as all sent data is acked. @@ -841,6 +842,7 @@ // kData2 is acked. EXPECT_TRUE(stream_->OnStreamFrameAcked(9, 9, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(9u, newly_acked_length); // Stream is waiting for acks as FIN is not acked. @@ -850,6 +852,7 @@ // FIN is acked. EXPECT_TRUE(stream_->OnStreamFrameAcked(18, 0, true, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(0u, newly_acked_length); EXPECT_FALSE(stream_->IsWaitingForAcks()); @@ -871,16 +874,19 @@ EXPECT_TRUE(session_->HasUnackedStreamData()); QuicByteCount newly_acked_length = 0; EXPECT_TRUE(stream_->OnStreamFrameAcked(9, 9, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); 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(), + QuicTime::Zero(), &newly_acked_length)); 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(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_EQ(9u, newly_acked_length); @@ -889,6 +895,7 @@ EXPECT_TRUE(stream_->IsWaitingForAcks()); EXPECT_TRUE(session_->HasUnackedStreamData()); EXPECT_TRUE(stream_->OnStreamFrameAcked(27, 0, true, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(0u, newly_acked_length); EXPECT_FALSE(stream_->IsWaitingForAcks()); @@ -1257,16 +1264,19 @@ // Verify [0, 9) 9 bytes are acked. QuicByteCount newly_acked_length = 0; EXPECT_TRUE(stream_->OnStreamFrameAcked(0, 9, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(9u, newly_acked_length); EXPECT_EQ(2u, QuicStreamPeer::SendBuffer(stream_).size()); // Verify [9, 22) 13 bytes are acked. EXPECT_TRUE(stream_->OnStreamFrameAcked(5, 17, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(13u, newly_acked_length); EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size()); // Verify [22, 26) 4 bytes are acked. EXPECT_TRUE(stream_->OnStreamFrameAcked(18, 8, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(4u, newly_acked_length); EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size()); @@ -1275,6 +1285,7 @@ // Ack [0, 27). Verify [26, 27) 1 byte is acked. EXPECT_TRUE(stream_->OnStreamFrameAcked(26, 1, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(1u, newly_acked_length); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); @@ -1283,6 +1294,7 @@ // Ack Fin. EXPECT_TRUE(stream_->OnStreamFrameAcked(27, 0, true, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(0u, newly_acked_length); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); @@ -1290,8 +1302,9 @@ EXPECT_FALSE(session_->HasUnackedStreamData()); // Ack [10, 27) and fin. No new data is acked. - EXPECT_FALSE(stream_->OnStreamFrameAcked( - 10, 17, true, QuicTime::Delta::Zero(), &newly_acked_length)); + EXPECT_FALSE( + stream_->OnStreamFrameAcked(10, 17, true, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(0u, newly_acked_length); EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size()); EXPECT_FALSE(stream_->IsWaitingForAcks()); @@ -1346,6 +1359,7 @@ // Ack [9, 18). QuicByteCount newly_acked_length = 0; EXPECT_TRUE(stream_->OnStreamFrameAcked(9, 9, false, QuicTime::Delta::Zero(), + QuicTime::Zero(), &newly_acked_length)); EXPECT_EQ(9u, newly_acked_length); EXPECT_FALSE(stream_->IsStreamFrameOutstanding(9, 3, false)); @@ -1468,7 +1482,7 @@ // Ack [10, 13). QuicByteCount newly_acked_length = 0; stream_->OnStreamFrameAcked(10, 3, false, QuicTime::Delta::Zero(), - &newly_acked_length); + QuicTime::Zero(), &newly_acked_length); EXPECT_EQ(3u, newly_acked_length); // Retransmit [0, 18) with fin, and only [0, 8) is consumed. EXPECT_CALL(*session_, WritevData(_, stream_->id(), 10, 0, NO_FIN))
diff --git a/quic/quartc/quartc_stream.cc b/quic/quartc/quartc_stream.cc index 8fd9c76..9edf370 100644 --- a/quic/quartc/quartc_stream.cc +++ b/quic/quartc/quartc_stream.cc
@@ -78,6 +78,7 @@ QuicByteCount data_length, bool fin_acked, QuicTime::Delta ack_delay_time, + QuicTime receive_timestamp, QuicByteCount* newly_acked_length) { // Previous losses of acked data are no longer relevant to the retransmission // count. Once data is acked, it will never be retransmitted. @@ -85,7 +86,8 @@ QuicInterval<QuicStreamOffset>(offset, offset + data_length)); return QuicStream::OnStreamFrameAcked(offset, data_length, fin_acked, - ack_delay_time, newly_acked_length); + ack_delay_time, receive_timestamp, + newly_acked_length); } void QuartcStream::OnStreamFrameRetransmitted(QuicStreamOffset offset,
diff --git a/quic/quartc/quartc_stream.h b/quic/quartc/quartc_stream.h index 403ce6d..40e8328 100644 --- a/quic/quartc/quartc_stream.h +++ b/quic/quartc/quartc_stream.h
@@ -46,6 +46,7 @@ QuicByteCount data_length, bool fin_acked, QuicTime::Delta ack_delay_time, + QuicTime receive_timestamp, QuicByteCount* newly_acked_length) override; void OnStreamFrameRetransmitted(QuicStreamOffset offset,
diff --git a/quic/quartc/quartc_stream_test.cc b/quic/quartc/quartc_stream_test.cc index 56489ca..bb0d0e4 100644 --- a/quic/quartc/quartc_stream_test.cc +++ b/quic/quartc/quartc_stream_test.cc
@@ -565,7 +565,7 @@ // the stream. QuicByteCount newly_acked_length = 0; stream_->OnStreamFrameAcked(0, 7, false, QuicTime::Delta::FromMilliseconds(1), - &newly_acked_length); + QuicTime::Zero(), &newly_acked_length); EXPECT_EQ(7u, newly_acked_length); stream_->OnCanWrite();