diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 68c2d4a..d7abc1a 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -5474,8 +5474,8 @@
 void QuicConnection::ValidatePath(
     std::unique_ptr<QuicPathValidationContext> context,
     std::unique_ptr<QuicPathValidator::ResultDelegate> result_delegate) {
-  path_validator_.StartValidingPath(std::move(context),
-                                    std::move(result_delegate));
+  path_validator_.StartPathValidation(std::move(context),
+                                      std::move(result_delegate));
 }
 
 bool QuicConnection::SendPathResponse(const QuicPathFrameBuffer& data_buffer,
diff --git a/quic/core/quic_path_validator.cc b/quic/core/quic_path_validator.cc
index 5d5e720..04d1be2 100644
--- a/quic/core/quic_path_validator.cc
+++ b/quic/core/quic_path_validator.cc
@@ -62,7 +62,7 @@
   }
 }
 
-void QuicPathValidator::StartValidingPath(
+void QuicPathValidator::StartPathValidation(
     std::unique_ptr<QuicPathValidationContext> context,
     std::unique_ptr<ResultDelegate> result_delegate) {
   CancelPathValidation();
diff --git a/quic/core/quic_path_validator.h b/quic/core/quic_path_validator.h
index 8cfa81d..2f30579 100644
--- a/quic/core/quic_path_validator.h
+++ b/quic/core/quic_path_validator.h
@@ -92,8 +92,8 @@
                     QuicRandom* random);
 
   // Send PATH_CHALLENGE and start the retry timer.
-  void StartValidingPath(std::unique_ptr<QuicPathValidationContext> context,
-                         std::unique_ptr<ResultDelegate> result_delegate);
+  void StartPathValidation(std::unique_ptr<QuicPathValidationContext> context,
+                           std::unique_ptr<ResultDelegate> result_delegate);
 
   // Called when a PATH_RESPONSE frame has been received. Matches the received
   // PATH_RESPONSE payload with the payloads previously sent in PATH_CHALLANGE
diff --git a/quic/core/quic_path_validator_test.cc b/quic/core/quic_path_validator_test.cc
index 656292e..5fd7f9f 100644
--- a/quic/core/quic_path_validator_test.cc
+++ b/quic/core/quic_path_validator_test.cc
@@ -84,7 +84,7 @@
         return true;
       }));
   EXPECT_CALL(send_delegate_, GetRetryTimeout(peer_address_, &writer_));
-  path_validator_.StartValidingPath(
+  path_validator_.StartPathValidation(
       std::unique_ptr<QuicPathValidationContext>(context_),
       std::unique_ptr<MockQuicPathValidationResultDelegate>(result_delegate_));
   EXPECT_TRUE(path_validator_.HasPendingPathValidation());
@@ -107,7 +107,7 @@
         return true;
       }));
   EXPECT_CALL(send_delegate_, GetRetryTimeout(peer_address_, &writer_));
-  path_validator_.StartValidingPath(
+  path_validator_.StartPathValidation(
       std::unique_ptr<QuicPathValidationContext>(context_),
       std::unique_ptr<MockQuicPathValidationResultDelegate>(result_delegate_));
 
@@ -142,7 +142,7 @@
       }));
   EXPECT_CALL(send_delegate_, GetRetryTimeout(peer_address_, &writer_))
       .Times(2u);
-  path_validator_.StartValidingPath(
+  path_validator_.StartPathValidation(
       std::unique_ptr<QuicPathValidationContext>(context_),
       std::unique_ptr<MockQuicPathValidationResultDelegate>(result_delegate_));
 
@@ -176,7 +176,7 @@
       }));
   EXPECT_CALL(send_delegate_, GetRetryTimeout(peer_address_, &writer_))
       .Times(2u);
-  path_validator_.StartValidingPath(
+  path_validator_.StartPathValidation(
       std::unique_ptr<QuicPathValidationContext>(context_),
       std::unique_ptr<MockQuicPathValidationResultDelegate>(result_delegate_));
 
@@ -198,7 +198,7 @@
       .WillRepeatedly(Return(true));
   EXPECT_CALL(send_delegate_, GetRetryTimeout(peer_address_, &writer_))
       .Times(3u);
-  path_validator_.StartValidingPath(
+  path_validator_.StartPathValidation(
       std::unique_ptr<QuicPathValidationContext>(context_),
       std::unique_ptr<MockQuicPathValidationResultDelegate>(result_delegate_));
 
@@ -231,7 +231,7 @@
       }));
   EXPECT_CALL(send_delegate_, GetRetryTimeout(peer_address_, &writer_))
       .Times(0u);
-  path_validator_.StartValidingPath(
+  path_validator_.StartPathValidation(
       std::unique_ptr<QuicPathValidationContext>(context_),
       std::unique_ptr<MockQuicPathValidationResultDelegate>(result_delegate_));
   EXPECT_FALSE(path_validator_.HasPendingPathValidation());
