gfe-relnote: Pass receive_timestamp to OnMessageAcked(). When receive timestamps are turned on and message frames are enabled, this will make receive timestamps available to the session whenever a message is acked. This will be used for RTP over QUIC, where ack timestamps are required for RTP's congestion controller and media adaptation. (The current implementation uses QUIC like a tunnel and disables its congestion control.) Not flag-protected: no change in behavior, just a change in what is visible where. PiperOrigin-RevId: 250703980 Change-Id: I01bcee29d5dfb808771c54e4fd14ebbfa8750375
diff --git a/quic/test_tools/quic_test_utils.h b/quic/test_tools/quic_test_utils.h index bf8edcf..8f1cb7a 100644 --- a/quic/test_tools/quic_test_utils.h +++ b/quic/test_tools/quic_test_utils.h
@@ -1054,7 +1054,7 @@ MockSessionNotifier(); ~MockSessionNotifier() override; - MOCK_METHOD2(OnFrameAcked, bool(const QuicFrame&, QuicTime::Delta)); + MOCK_METHOD3(OnFrameAcked, bool(const QuicFrame&, QuicTime::Delta, QuicTime)); MOCK_METHOD1(OnStreamFrameRetransmitted, void(const QuicStreamFrame&)); MOCK_METHOD1(OnFrameLost, void(const QuicFrame&)); MOCK_METHOD2(RetransmitFrames,
diff --git a/quic/test_tools/simple_session_notifier.cc b/quic/test_tools/simple_session_notifier.cc index e72e0e1..c6e3801 100644 --- a/quic/test_tools/simple_session_notifier.cc +++ b/quic/test_tools/simple_session_notifier.cc
@@ -135,7 +135,8 @@ QuicStreamFrame stream_frame( QuicUtils::GetCryptoStreamId(connection_->transport_version()), false, interval.min(), interval.max() - interval.min()); - OnFrameAcked(QuicFrame(stream_frame), QuicTime::Delta::Zero()); + OnFrameAcked(QuicFrame(stream_frame), QuicTime::Delta::Zero(), + QuicTime::Zero()); } } @@ -202,7 +203,8 @@ } bool SimpleSessionNotifier::OnFrameAcked(const QuicFrame& frame, - QuicTime::Delta /*ack_delay_time*/) { + QuicTime::Delta /*ack_delay_time*/, + QuicTime /*receive_timestamp*/) { QUIC_DVLOG(1) << "Acking " << frame; if (frame.type == CRYPTO_FRAME) { StreamState* state = &crypto_state_[frame.crypto_frame->level];
diff --git a/quic/test_tools/simple_session_notifier.h b/quic/test_tools/simple_session_notifier.h index e7d4fdc..25c9941 100644 --- a/quic/test_tools/simple_session_notifier.h +++ b/quic/test_tools/simple_session_notifier.h
@@ -65,7 +65,8 @@ // SessionNotifierInterface methods: bool OnFrameAcked(const QuicFrame& frame, - QuicTime::Delta ack_delay_time) override; + QuicTime::Delta ack_delay_time, + QuicTime receive_timestamp) override; void OnStreamFrameRetransmitted(const QuicStreamFrame& frame) override {} void OnFrameLost(const QuicFrame& frame) override; void RetransmitFrames(const QuicFrames& frames,
diff --git a/quic/test_tools/simple_session_notifier_test.cc b/quic/test_tools/simple_session_notifier_test.cc index d2aad9f..d9958c8 100644 --- a/quic/test_tools/simple_session_notifier_test.cc +++ b/quic/test_tools/simple_session_notifier_test.cc
@@ -154,7 +154,8 @@ QuicStreamFrame stream_frame( QuicUtils::GetCryptoStreamId(connection_.transport_version()), false, 1024, 1024); - notifier_.OnFrameAcked(QuicFrame(stream_frame), QuicTime::Delta::Zero()); + notifier_.OnFrameAcked(QuicFrame(stream_frame), QuicTime::Delta::Zero(), + QuicTime::Zero()); EXPECT_TRUE(notifier_.StreamIsWaitingForAcks( QuicUtils::GetCryptoStreamId(connection_.transport_version()))); // Neuters unencrypted data. @@ -315,8 +316,10 @@ // Ack stream 3 [3, 7), and stream 5 [8, 10). QuicStreamFrame ack_frame1(3, false, 3, 4); QuicStreamFrame ack_frame2(5, false, 8, 2); - notifier_.OnFrameAcked(QuicFrame(ack_frame1), QuicTime::Delta::Zero()); - notifier_.OnFrameAcked(QuicFrame(ack_frame2), QuicTime::Delta::Zero()); + notifier_.OnFrameAcked(QuicFrame(ack_frame1), QuicTime::Delta::Zero(), + QuicTime::Zero()); + notifier_.OnFrameAcked(QuicFrame(ack_frame2), QuicTime::Delta::Zero(), + QuicTime::Zero()); EXPECT_FALSE(notifier_.WillingToWrite()); // Force to send.
diff --git a/quic/test_tools/simulator/quic_endpoint.cc b/quic/test_tools/simulator/quic_endpoint.cc index 043eae9..78cc302 100644 --- a/quic/test_tools/simulator/quic_endpoint.cc +++ b/quic/test_tools/simulator/quic_endpoint.cc
@@ -265,9 +265,10 @@ } bool QuicEndpoint::OnFrameAcked(const QuicFrame& frame, - QuicTime::Delta ack_delay_time) { + QuicTime::Delta ack_delay_time, + QuicTime receive_timestamp) { if (notifier_ != nullptr) { - return notifier_->OnFrameAcked(frame, ack_delay_time); + return notifier_->OnFrameAcked(frame, ack_delay_time, receive_timestamp); } return false; }
diff --git a/quic/test_tools/simulator/quic_endpoint.h b/quic/test_tools/simulator/quic_endpoint.h index 8bbdbd7..8efef0e 100644 --- a/quic/test_tools/simulator/quic_endpoint.h +++ b/quic/test_tools/simulator/quic_endpoint.h
@@ -122,7 +122,8 @@ // Begin SessionNotifierInterface methods: bool OnFrameAcked(const QuicFrame& frame, - QuicTime::Delta ack_delay_time) override; + QuicTime::Delta ack_delay_time, + QuicTime receive_timestamp) override; void OnStreamFrameRetransmitted(const QuicStreamFrame& frame) override {} void OnFrameLost(const QuicFrame& frame) override; void RetransmitFrames(const QuicFrames& frames,