Move QuicCryptoClientStreamBase::EarlyDataReason to QuicCryptoStream

PiperOrigin-RevId: 332301712
Change-Id: I391a8dfcd7f927d71de91355ba26a0d62bcf9e7c
diff --git a/quic/core/quic_crypto_stream.h b/quic/core/quic_crypto_stream.h
index 54d1b25..d73d970 100644
--- a/quic/core/quic_crypto_stream.h
+++ b/quic/core/quic_crypto_stream.h
@@ -9,6 +9,7 @@
 #include <cstddef>
 #include <string>
 
+#include "third_party/boringssl/src/include/openssl/ssl.h"
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_framer.h"
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_utils.h"
 #include "net/third_party/quiche/src/quic/core/quic_config.h"
@@ -72,6 +73,13 @@
   virtual void WriteCryptoData(EncryptionLevel level,
                                quiche::QuicheStringPiece data);
 
+  // Returns the ssl_early_data_reason_t describing why 0-RTT was accepted or
+  // rejected. Note that the value returned by this function may vary during the
+  // handshake. Once |one_rtt_keys_available| returns true, the value returned
+  // by this function will not change for the rest of the lifetime of the
+  // QuicCryptoStream.
+  virtual ssl_early_data_reason_t EarlyDataReason() const = 0;
+
   // Returns true once an encrypter has been set for the connection.
   virtual bool encryption_established() const = 0;