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,