diff --git a/quic/core/http/quic_spdy_session_test.cc b/quic/core/http/quic_spdy_session_test.cc
index 6efaf52..a4c1af0 100644
--- a/quic/core/http/quic_spdy_session_test.cc
+++ b/quic/core/http/quic_spdy_session_test.cc
@@ -109,7 +109,7 @@
     } else {
       session()->connection()->SetDefaultEncryptionLevel(
           ENCRYPTION_FORWARD_SECURE);
-      session()->OnCryptoHandshakeEvent(QuicSession::HANDSHAKE_CONFIRMED);
+      session()->OnCryptoHandshakeEvent(QuicSession::EVENT_HANDSHAKE_CONFIRMED);
     }
   }
 
diff --git a/quic/core/quic_crypto_client_handshaker.cc b/quic/core/quic_crypto_client_handshaker.cc
index 4d8953a..795f78c 100644
--- a/quic/core/quic_crypto_client_handshaker.cc
+++ b/quic/core/quic_crypto_client_handshaker.cc
@@ -584,7 +584,7 @@
   session()->connection()->SetDefaultEncryptionLevel(ENCRYPTION_FORWARD_SECURE);
 
   one_rtt_keys_available_ = true;
-  session()->OnCryptoHandshakeEvent(QuicSession::HANDSHAKE_CONFIRMED);
+  session()->OnCryptoHandshakeEvent(QuicSession::EVENT_HANDSHAKE_CONFIRMED);
   session()->connection()->OnHandshakeComplete();
 }
 
diff --git a/quic/core/quic_crypto_server_handshaker.cc b/quic/core/quic_crypto_server_handshaker.cc
index 9aff0cc..d18537c 100644
--- a/quic/core/quic_crypto_server_handshaker.cc
+++ b/quic/core/quic_crypto_server_handshaker.cc
@@ -266,7 +266,7 @@
 
   encryption_established_ = true;
   one_rtt_keys_available_ = true;
-  session()->OnCryptoHandshakeEvent(QuicSession::HANDSHAKE_CONFIRMED);
+  session()->OnCryptoHandshakeEvent(QuicSession::EVENT_HANDSHAKE_CONFIRMED);
 }
 
 void QuicCryptoServerHandshaker::SendServerConfigUpdate(
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 8bf1410..319f3f4 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -1311,7 +1311,7 @@
       OnCanWrite();
       break;
 
-    case HANDSHAKE_CONFIRMED:
+    case EVENT_HANDSHAKE_CONFIRMED:
       QUIC_BUG_IF(!config_.negotiated())
           << ENDPOINT << "Handshake confirmed without parameter negotiation.";
       // Discard originally encrypted packets, since they can't be decrypted by
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h
index 1e5208a..6aa2b0a 100644
--- a/quic/core/quic_session.h
+++ b/quic/core/quic_session.h
@@ -82,10 +82,10 @@
     // ENCRYPTION_ESTABLISHED indicates that a client hello has been sent and
     // subsequent packets will be encrypted. (Client only.)
     ENCRYPTION_ESTABLISHED,
-    // HANDSHAKE_CONFIRMED, in a client, indicates the server has accepted
+    // EVENT_HANDSHAKE_CONFIRMED, in a client, indicates the server has accepted
     // our handshake. In a server it indicates that a full, valid client hello
     // has been received. (Client and server.)
-    HANDSHAKE_CONFIRMED,
+    EVENT_HANDSHAKE_CONFIRMED,
   };
 
   // Does not take ownership of |connection| or |visitor|.
@@ -256,9 +256,9 @@
   //
   // Clients will call this function in the order:
   //   zero or more ENCRYPTION_ESTABLISHED
-  //   HANDSHAKE_CONFIRMED
+  //   EVENT_HANDSHAKE_CONFIRMED
   //
-  // Servers will simply call it once with HANDSHAKE_CONFIRMED.
+  // Servers will simply call it once with EVENT_HANDSHAKE_CONFIRMED.
   virtual void OnCryptoHandshakeEvent(CryptoHandshakeEvent event);
 
   // From HandshakerDelegateInterface
diff --git a/quic/core/quic_session_test.cc b/quic/core/quic_session_test.cc
index 4686124..007f355 100644
--- a/quic/core/quic_session_test.cc
+++ b/quic/core/quic_session_test.cc
@@ -96,7 +96,7 @@
     } else {
       session()->connection()->SetDefaultEncryptionLevel(
           ENCRYPTION_FORWARD_SECURE);
-      session()->OnCryptoHandshakeEvent(QuicSession::HANDSHAKE_CONFIRMED);
+      session()->OnCryptoHandshakeEvent(QuicSession::EVENT_HANDSHAKE_CONFIRMED);
     }
   }
 
diff --git a/quic/quartc/quartc_session.cc b/quic/quartc/quartc_session.cc
index 37de980..86e1f91 100644
--- a/quic/quartc/quartc_session.cc
+++ b/quic/quartc/quartc_session.cc
@@ -163,7 +163,7 @@
       DCHECK(session_delegate_);
       session_delegate_->OnConnectionWritable();
       break;
-    case HANDSHAKE_CONFIRMED:
+    case EVENT_HANDSHAKE_CONFIRMED:
       // On the server, handshake confirmed is the first time when you can start
       // writing packets.
       DCHECK(IsEncryptionEstablished());
diff --git a/quic/quic_transport/quic_transport_client_session.cc b/quic/quic_transport/quic_transport_client_session.cc
index f30f97a..31ad462 100644
--- a/quic/quic_transport/quic_transport_client_session.cc
+++ b/quic/quic_transport/quic_transport_client_session.cc
@@ -100,7 +100,7 @@
 void QuicTransportClientSession::OnCryptoHandshakeEvent(
     CryptoHandshakeEvent event) {
   QuicSession::OnCryptoHandshakeEvent(event);
-  if (event != HANDSHAKE_CONFIRMED) {
+  if (event != EVENT_HANDSHAKE_CONFIRMED) {
     return;
   }
 
