gfe-relnote: Add methods to QuicConnectionDebugVisitorInterface for missing IETF QUIC frames. QUIC v99 only. Protected by disabled QUIC v99 flag.
PiperOrigin-RevId: 267080985
Change-Id: I834e0d52d9f59b176b71fa45dbe65845c7e60673
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 257ef29..269fe7f 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -896,6 +896,9 @@
// A probe only contains a PING and full padding.
UpdatePacketContent(NOT_PADDED_PING);
+ if (debug_visitor_ != nullptr) {
+ debug_visitor_->OnCryptoFrame(frame);
+ }
visitor_->OnCryptoFrame(frame);
should_last_packet_instigate_acks_ = true;
return connected_;
@@ -1145,6 +1148,9 @@
}
bool QuicConnection::OnPathChallengeFrame(const QuicPathChallengeFrame& frame) {
+ if (debug_visitor_ != nullptr) {
+ debug_visitor_->OnPathChallengeFrame(frame);
+ }
// Save the path challenge's payload, for later use in generating the
// response.
received_path_challenge_payloads_.push_back(frame.data_buffer);
@@ -1161,6 +1167,9 @@
}
bool QuicConnection::OnPathResponseFrame(const QuicPathResponseFrame& frame) {
+ if (debug_visitor_ != nullptr) {
+ debug_visitor_->OnPathResponseFrame(frame);
+ }
should_last_packet_instigate_acks_ = true;
if (!transmitted_connectivity_probe_payload_ ||
*transmitted_connectivity_probe_payload_ != frame.data_buffer) {
@@ -1269,16 +1278,25 @@
}
bool QuicConnection::OnNewConnectionIdFrame(
- const QuicNewConnectionIdFrame& /*frame*/) {
+ const QuicNewConnectionIdFrame& frame) {
+ if (debug_visitor_ != nullptr) {
+ debug_visitor_->OnNewConnectionIdFrame(frame);
+ }
return true;
}
bool QuicConnection::OnRetireConnectionIdFrame(
- const QuicRetireConnectionIdFrame& /*frame*/) {
+ const QuicRetireConnectionIdFrame& frame) {
+ if (debug_visitor_ != nullptr) {
+ debug_visitor_->OnRetireConnectionIdFrame(frame);
+ }
return true;
}
-bool QuicConnection::OnNewTokenFrame(const QuicNewTokenFrame& /*frame*/) {
+bool QuicConnection::OnNewTokenFrame(const QuicNewTokenFrame& frame) {
+ if (debug_visitor_ != nullptr) {
+ debug_visitor_->OnNewTokenFrame(frame);
+ }
return true;
}
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h
index 6a5062a..e214a99 100644
--- a/quic/core/quic_connection.h
+++ b/quic/core/quic_connection.h
@@ -241,6 +241,9 @@
// Called when a StreamFrame has been parsed.
virtual void OnStreamFrame(const QuicStreamFrame& /*frame*/) {}
+ // Called when a CRYPTO frame containing handshake data is received.
+ virtual void OnCryptoFrame(const QuicCryptoFrame& /*frame*/) {}
+
// Called when a StopWaitingFrame has been parsed.
virtual void OnStopWaitingFrame(const QuicStopWaitingFrame& /*frame*/) {}
@@ -269,6 +272,17 @@
// Called when a BlockedFrame has been parsed.
virtual void OnBlockedFrame(const QuicBlockedFrame& /*frame*/) {}
+ // Called when a NewConnectionIdFrame has been parsed.
+ virtual void OnNewConnectionIdFrame(
+ const QuicNewConnectionIdFrame& /*frame*/) {}
+
+ // Called when a RetireConnectionIdFrame has been parsed.
+ virtual void OnRetireConnectionIdFrame(
+ const QuicRetireConnectionIdFrame& /*frame*/) {}
+
+ // Called when a NewTokenFrame has been parsed.
+ virtual void OnNewTokenFrame(const QuicNewTokenFrame& /*frame*/) {}
+
// Called when a MessageFrame has been parsed.
virtual void OnMessageFrame(const QuicMessageFrame& /*frame*/) {}
@@ -305,6 +319,12 @@
// Called when a StopSendingFrame has been parsed.
virtual void OnStopSendingFrame(const QuicStopSendingFrame& /*frame*/) {}
+
+ // Called when a PathChallengeFrame has been parsed.
+ virtual void OnPathChallengeFrame(const QuicPathChallengeFrame& /*frame*/) {}
+
+ // Called when a PathResponseFrame has been parsed.
+ virtual void OnPathResponseFrame(const QuicPathResponseFrame& /*frame*/) {}
};
class QUIC_EXPORT_PRIVATE QuicConnectionHelperInterface {
diff --git a/quic/test_tools/quic_test_utils.h b/quic/test_tools/quic_test_utils.h
index 5750b9b..b3b6a68 100644
--- a/quic/test_tools/quic_test_utils.h
+++ b/quic/test_tools/quic_test_utils.h
@@ -1013,12 +1013,25 @@
MOCK_METHOD1(OnStreamFrame, void(const QuicStreamFrame&));
+ MOCK_METHOD1(OnCryptoFrame, void(const QuicCryptoFrame&));
+
MOCK_METHOD1(OnStopWaitingFrame, void(const QuicStopWaitingFrame&));
MOCK_METHOD1(OnRstStreamFrame, void(const QuicRstStreamFrame&));
MOCK_METHOD1(OnConnectionCloseFrame, void(const QuicConnectionCloseFrame&));
+ MOCK_METHOD1(OnBlockedFrame, void(const QuicBlockedFrame&));
+
+ MOCK_METHOD1(OnNewConnectionIdFrame, void(const QuicNewConnectionIdFrame&));
+
+ MOCK_METHOD1(OnRetireConnectionIdFrame,
+ void(const QuicRetireConnectionIdFrame&));
+
+ MOCK_METHOD1(OnNewTokenFrame, void(const QuicNewTokenFrame&));
+
+ MOCK_METHOD1(OnMessageFrame, void(const QuicMessageFrame&));
+
MOCK_METHOD1(OnStopSendingFrame, void(const QuicStopSendingFrame&));
MOCK_METHOD1(OnPathChallengeFrame, void(const QuicPathChallengeFrame&));