Check for nullptr before calling OnProofVerifyDetailsAvailable

gfe-relnote: add nullptr check to QUIC's TlsClientHandshaker, protected by ietf quic draft version flags.
PiperOrigin-RevId: 306849131
Change-Id: I3e73186d70e7778fa49096b4c96710902c4e5f7c
diff --git a/quic/core/tls_client_handshaker.cc b/quic/core/tls_client_handshaker.cc
index 09b9097..f3e1b13 100644
--- a/quic/core/tls_client_handshaker.cc
+++ b/quic/core/tls_client_handshaker.cc
@@ -472,7 +472,9 @@
       std::unique_ptr<ProofVerifierCallback>(proof_verify_callback));
   switch (verify_result) {
     case QUIC_SUCCESS:
-      proof_handler_->OnProofVerifyDetailsAvailable(*verify_details_);
+      if (verify_details_) {
+        proof_handler_->OnProofVerifyDetailsAvailable(*verify_details_);
+      }
       return ssl_verify_ok;
     case QUIC_PENDING:
       proof_verify_callback_ = proof_verify_callback;
diff --git a/quic/core/tls_client_handshaker_test.cc b/quic/core/tls_client_handshaker_test.cc
index 05e0c3f..0283169 100644
--- a/quic/core/tls_client_handshaker_test.cc
+++ b/quic/core/tls_client_handshaker_test.cc
@@ -190,9 +190,6 @@
   }
 
   void CompleteCryptoHandshake() {
-    int proof_verify_details_calls = 1;
-    EXPECT_CALL(*session_, OnProofVerifyDetailsAvailable(testing::_))
-        .Times(testing::AtLeast(proof_verify_details_calls));
     stream()->CryptoConnect();
     QuicConfig config;
     crypto_test_utils::HandshakeWithFakeServer(
@@ -349,7 +346,6 @@
   CreateConnection();
   InitializeFakeServer();
 
-  EXPECT_CALL(*session_, OnProofVerifyDetailsAvailable(testing::_));
   stream()->CryptoConnect();
   crypto_test_utils::CommunicateHandshakeMessages(
       connection_, stream(), server_connection_, server_stream());