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