Add debug visitor for SETTINGS sent. gfe-relnote: protected by v99 flag that is disabled in gfe. PiperOrigin-RevId: 271645953 Change-Id: I421031f12100db05f316f6509e8085c5700ee1b7
diff --git a/quic/core/http/quic_receive_control_stream.cc b/quic/core/http/quic_receive_control_stream.cc index dd9f3ec..d3cb01b 100644 --- a/quic/core/http/quic_receive_control_stream.cc +++ b/quic/core/http/quic_receive_control_stream.cc
@@ -220,7 +220,7 @@ << " received settings frame: " << settings; QuicSpdySession* spdy_session = static_cast<QuicSpdySession*>(session()); if (spdy_session->debug_visitor() != nullptr) { - spdy_session->debug_visitor()->OnSettingsFrame(settings); + spdy_session->debug_visitor()->OnSettingsFrameReceived(settings); } for (const auto& setting : settings.values) { spdy_session->OnSetting(setting.first, setting.second);
diff --git a/quic/core/http/quic_send_control_stream.cc b/quic/core/http/quic_send_control_stream.cc index d1e0e62..da7f79e 100644 --- a/quic/core/http/quic_send_control_stream.cc +++ b/quic/core/http/quic_send_control_stream.cc
@@ -5,6 +5,7 @@ #include "net/third_party/quiche/src/quic/core/http/quic_send_control_stream.h" #include "net/third_party/quiche/src/quic/core/http/http_constants.h" +#include "net/third_party/quiche/src/quic/core/http/quic_spdy_session.h" #include "net/third_party/quiche/src/quic/core/quic_session.h" #include "net/third_party/quiche/src/quic/platform/api/quic_arraysize.h" @@ -57,6 +58,10 @@ encoder_.SerializeSettingsFrame(settings, &buffer); QUIC_DVLOG(1) << "Control stream " << id() << " is writing settings frame " << settings; + QuicSpdySession* spdy_session = static_cast<QuicSpdySession*>(session()); + if (spdy_session->debug_visitor() != nullptr) { + spdy_session->debug_visitor()->OnSettingsFrameSent(settings); + } WriteOrBufferData(QuicStringPiece(buffer.get(), frame_length), /*fin = */ false, nullptr); settings_sent_ = true;
diff --git a/quic/core/http/quic_spdy_session.h b/quic/core/http/quic_spdy_session.h index 40ad070..3d82cd7 100644 --- a/quic/core/http/quic_spdy_session.h +++ b/quic/core/http/quic_spdy_session.h
@@ -9,6 +9,7 @@ #include <memory> #include <string> +#include "net/third_party/quiche/src/quic/core/http/http_frames.h" #include "net/third_party/quiche/src/quic/core/http/quic_header_list.h" #include "net/third_party/quiche/src/quic/core/http/quic_headers_stream.h" #include "net/third_party/quiche/src/quic/core/http/quic_receive_control_stream.h" @@ -70,7 +71,10 @@ virtual void OnPeerQpackDecoderStreamCreated(QuicStreamId /*stream_id*/) = 0; // Called when SETTINGS frame is received. - virtual void OnSettingsFrame(const SettingsFrame& /*frame*/) = 0; + virtual void OnSettingsFrameReceived(const SettingsFrame& /*frame*/) = 0; + + // Called when SETTINGS frame is sent. + virtual void OnSettingsFrameSent(const SettingsFrame& /*frame*/) = 0; }; // A QUIC session for HTTP.
diff --git a/quic/core/http/quic_spdy_session_test.cc b/quic/core/http/quic_spdy_session_test.cc index 16028de..1d3092c 100644 --- a/quic/core/http/quic_spdy_session_test.cc +++ b/quic/core/http/quic_spdy_session_test.cc
@@ -135,7 +135,9 @@ MOCK_METHOD1(OnPeerQpackDecoderStreamCreated, void(QuicStreamId)); - MOCK_METHOD1(OnSettingsFrame, void(const SettingsFrame&)); + MOCK_METHOD1(OnSettingsFrameReceived, void(const SettingsFrame&)); + + MOCK_METHOD1(OnSettingsFrameSent, void(const SettingsFrame&)); }; class TestStream : public QuicSpdyStream { @@ -2222,7 +2224,7 @@ EXPECT_NE(5u, session_.max_outbound_header_list_size()); EXPECT_NE(42u, QpackEncoderPeer::maximum_blocked_streams(qpack_encoder)); - EXPECT_CALL(debug_visitor, OnSettingsFrame(settings)); + EXPECT_CALL(debug_visitor, OnSettingsFrameReceived(settings)); session_.OnStreamFrame(frame); EXPECT_EQ(512u,