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(); }