Add code path to store application states in TlsClientHandshaker.

gfe-relnote: unused code. not protected.
PiperOrigin-RevId: 306324193
Change-Id: I1aaefba94f765247c3da8d7a050c70705861faf5
diff --git a/quic/core/quic_crypto_client_stream.h b/quic/core/quic_crypto_client_stream.h
index 5af0a66..a66dcba 100644
--- a/quic/core/quic_crypto_client_stream.h
+++ b/quic/core/quic_crypto_client_stream.h
@@ -16,6 +16,7 @@
 #include "net/third_party/quiche/src/quic/core/quic_crypto_stream.h"
 #include "net/third_party/quiche/src/quic/core/quic_server_id.h"
 #include "net/third_party/quiche/src/quic/core/quic_session.h"
+#include "net/third_party/quiche/src/quic/core/quic_versions.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_export.h"
 
 namespace quic {
@@ -58,6 +59,9 @@
   // client.  Does not count update messages that were received prior
   // to handshake confirmation.
   virtual int num_scup_messages_received() const = 0;
+
+  virtual void OnApplicationState(
+      std::unique_ptr<ApplicationState> application_state) = 0;
 };
 
 class QUIC_EXPORT_PRIVATE QuicCryptoClientStream
@@ -150,6 +154,10 @@
 
     // Called when handshake done has been received.
     virtual void OnHandshakeDoneReceived() = 0;
+
+    // Called when application state is received.
+    virtual void OnApplicationState(
+        std::unique_ptr<ApplicationState> application_state) = 0;
   };
 
   // ProofHandler is an interface that handles callbacks from the crypto
@@ -202,6 +210,9 @@
   HandshakeState GetHandshakeState() const override;
   size_t BufferSizeLimitForLevel(EncryptionLevel level) const override;
 
+  void OnApplicationState(
+      std::unique_ptr<ApplicationState> application_state) override;
+
   std::string chlo_hash() const;
 
  protected: