Pass response headers to WebTransportVisitor::OnSessionReady()
This headers will be used for extensions chrome.webRequest API [1]
[1] https://developer.chrome.com/docs/extensions/reference/webRequest/#event-onHeadersReceived
PiperOrigin-RevId: 395023784
diff --git a/quic/core/http/web_transport_http3.cc b/quic/core/http/web_transport_http3.cc
index e7015e2..b15ff16 100644
--- a/quic/core/http/web_transport_http3.cc
+++ b/quic/core/http/web_transport_http3.cc
@@ -27,7 +27,7 @@
namespace {
class QUIC_NO_EXPORT NoopWebTransportVisitor : public WebTransportVisitor {
- void OnSessionReady() override {}
+ void OnSessionReady(const spdy::SpdyHeaderBlock&) override {}
void OnIncomingBidirectionalStreamAvailable() override {}
void OnIncomingUnidirectionalStreamAvailable() override {}
void OnDatagramReceived(absl::string_view /*datagram*/) override {}
@@ -106,7 +106,7 @@
QUIC_DVLOG(1) << ENDPOINT << "WebTransport session " << id_ << " ready.";
ready_ = true;
- visitor_->OnSessionReady();
+ visitor_->OnSessionReady(headers);
session_->ProcessBufferedWebTransportStreamsForSession(this);
}
diff --git a/quic/core/web_transport_interface.h b/quic/core/web_transport_interface.h
index 154d242..214d262 100644
--- a/quic/core/web_transport_interface.h
+++ b/quic/core/web_transport_interface.h
@@ -16,6 +16,7 @@
#include "quic/core/quic_datagram_queue.h"
#include "quic/core/quic_types.h"
#include "quic/platform/api/quic_export.h"
+#include "spdy/core/spdy_header_block.h"
namespace quic {
@@ -84,7 +85,7 @@
// Notifies the visitor when the session is ready to exchange application
// data.
- virtual void OnSessionReady() = 0;
+ virtual void OnSessionReady(const spdy::SpdyHeaderBlock& headers) = 0;
// Notifies the visitor when a new stream has been received. The stream in
// question can be retrieved using AcceptIncomingBidirectionalStream() or
diff --git a/quic/quic_transport/quic_transport_client_session.cc b/quic/quic_transport/quic_transport_client_session.cc
index 17f9194..1a2160b 100644
--- a/quic/quic_transport/quic_transport_client_session.cc
+++ b/quic/quic_transport/quic_transport_client_session.cc
@@ -242,7 +242,7 @@
}
ready_ = true;
- visitor_->OnSessionReady();
+ visitor_->OnSessionReady(spdy::SpdyHeaderBlock());
}
void QuicTransportClientSession::OnMessageReceived(absl::string_view message) {
diff --git a/quic/quic_transport/quic_transport_client_session_test.cc b/quic/quic_transport/quic_transport_client_session_test.cc
index 8e6a0e2..90c449c 100644
--- a/quic/quic_transport/quic_transport_client_session_test.cc
+++ b/quic/quic_transport/quic_transport_client_session_test.cc
@@ -104,7 +104,7 @@
"\0\x01" // length
"/"; // value
- EXPECT_CALL(visitor_, OnSessionReady());
+ EXPECT_CALL(visitor_, OnSessionReady(_));
Connect();
EXPECT_TRUE(session_->IsSessionReady());
diff --git a/quic/quic_transport/quic_transport_integration_test.cc b/quic/quic_transport/quic_transport_integration_test.cc
index 36607b3..7bb8479 100644
--- a/quic/quic_transport/quic_transport_integration_test.cc
+++ b/quic/quic_transport/quic_transport_integration_test.cc
@@ -212,7 +212,7 @@
TEST_F(QuicTransportIntegrationTest, SuccessfulHandshake) {
CreateDefaultEndpoints("/discard");
WireUpEndpoints();
- EXPECT_CALL(*client_->visitor(), OnSessionReady());
+ EXPECT_CALL(*client_->visitor(), OnSessionReady(_));
RunHandshake();
EXPECT_TRUE(client_->session()->IsSessionReady());
EXPECT_TRUE(server_->session()->IsSessionReady());
diff --git a/quic/test_tools/quic_transport_test_tools.h b/quic/test_tools/quic_transport_test_tools.h
index df52093..ec4d42d 100644
--- a/quic/test_tools/quic_transport_test_tools.h
+++ b/quic/test_tools/quic_transport_test_tools.h
@@ -14,7 +14,7 @@
class MockClientVisitor : public WebTransportVisitor {
public:
- MOCK_METHOD(void, OnSessionReady, (), (override));
+ MOCK_METHOD(void, OnSessionReady, (const spdy::SpdyHeaderBlock&), (override));
MOCK_METHOD(void, OnIncomingBidirectionalStreamAvailable, (), (override));
MOCK_METHOD(void, OnIncomingUnidirectionalStreamAvailable, (), (override));
MOCK_METHOD(void, OnDatagramReceived, (absl::string_view), (override));
diff --git a/quic/tools/web_transport_test_visitors.h b/quic/tools/web_transport_test_visitors.h
index e348750..c8d8513 100644
--- a/quic/tools/web_transport_test_visitors.h
+++ b/quic/tools/web_transport_test_visitors.h
@@ -141,7 +141,7 @@
EchoWebTransportSessionVisitor(WebTransportSession* session)
: session_(session) {}
- void OnSessionReady() override {
+ void OnSessionReady(const spdy::SpdyHeaderBlock&) override {
if (session_->CanOpenNextOutgoingBidirectionalStream()) {
OnCanCreateNewOutgoingBidirectionalStream();
}