diff --git a/quic/core/quic_crypto_server_stream.cc b/quic/core/quic_crypto_server_stream.cc
index f0f0f64..784b20a 100644
--- a/quic/core/quic_crypto_server_stream.cc
+++ b/quic/core/quic_crypto_server_stream.cc
@@ -32,11 +32,42 @@
     QuicCompressedCertsCache* compressed_certs_cache,
     QuicSession* session,
     Helper* helper)
+    : QuicCryptoServerStream(crypto_config,
+                             compressed_certs_cache,
+                             session,
+                             helper,
+                             /*handshaker*/ nullptr) {}
+
+QuicCryptoServerStream::QuicCryptoServerStream(
+    const QuicCryptoServerConfig* crypto_config,
+    QuicCompressedCertsCache* compressed_certs_cache,
+    QuicSession* session,
+    Helper* helper,
+    std::unique_ptr<HandshakerDelegate> handshaker)
     : QuicCryptoServerStreamBase(session),
+      handshaker_(std::move(handshaker)),
+      create_handshaker_in_constructor_(
+          GetQuicReloadableFlag(quic_create_server_handshaker_in_constructor)),
       crypto_config_(crypto_config),
       compressed_certs_cache_(compressed_certs_cache),
       helper_(helper) {
   DCHECK_EQ(Perspective::IS_SERVER, session->connection()->perspective());
+  if (create_handshaker_in_constructor_ && !handshaker_) {
+    switch (session->connection()->version().handshake_protocol) {
+      case PROTOCOL_QUIC_CRYPTO:
+        handshaker_ = std::make_unique<QuicCryptoServerHandshaker>(
+            crypto_config_, this, compressed_certs_cache_, session, helper_);
+        break;
+      case PROTOCOL_TLS1_3:
+        handshaker_ = std::make_unique<TlsServerHandshaker>(
+            this, session, crypto_config_->ssl_ctx(),
+            crypto_config_->proof_source());
+        break;
+      case PROTOCOL_UNSUPPORTED:
+        QUIC_BUG << "Attempting to create QuicCryptoServerStream for unknown "
+                    "handshake protocol";
+    }
+  }
 }
 
 QuicCryptoServerStream::~QuicCryptoServerStream() {}
@@ -122,6 +153,9 @@
 void QuicCryptoServerStream::OnSuccessfulVersionNegotiation(
     const ParsedQuicVersion& version) {
   DCHECK_EQ(version, session()->connection()->version());
+  if (create_handshaker_in_constructor_) {
+    return;
+  }
   CHECK(!handshaker_);
   switch (session()->connection()->version().handshake_protocol) {
     case PROTOCOL_QUIC_CRYPTO:
diff --git a/quic/core/quic_crypto_server_stream.h b/quic/core/quic_crypto_server_stream.h
index 2e0e723..427cced 100644
--- a/quic/core/quic_crypto_server_stream.h
+++ b/quic/core/quic_crypto_server_stream.h
@@ -188,6 +188,11 @@
   // handshaker hasn't been set yet. If set_handshaker is called outside of
   // OnSuccessfulVersionNegotiation, then that method must be overridden to not
   // set a handshaker.
+  QuicCryptoServerStream(const QuicCryptoServerConfig* crypto_config,
+                         QuicCompressedCertsCache* compressed_certs_cache,
+                         QuicSession* session,
+                         Helper* helper,
+                         std::unique_ptr<HandshakerDelegate> handshaker);
   void set_handshaker(std::unique_ptr<HandshakerDelegate> handshaker);
   HandshakerDelegate* handshaker() const;
 
@@ -197,6 +202,8 @@
 
  private:
   std::unique_ptr<HandshakerDelegate> handshaker_;
+  // Latched value of quic_create_server_handshaker_in_constructor flag.
+  bool create_handshaker_in_constructor_;
 
   // Arguments from QuicCryptoServerStream constructor that might need to be
   // passed to the HandshakerDelegate constructor in its late construction.
