diff --git a/quic/core/qpack/offline/qpack_offline_decoder.cc b/quic/core/qpack/offline/qpack_offline_decoder.cc
index 42f572b..6efebdc 100644
--- a/quic/core/qpack/offline/qpack_offline_decoder.cc
+++ b/quic/core/qpack/offline/qpack_offline_decoder.cc
@@ -147,7 +147,7 @@
     test::TestHeadersHandler headers_handler;
 
     auto progressive_decoder =
-        decoder_.DecodeHeaderBlock(stream_id, &headers_handler);
+        decoder_.CreateProgressiveDecoder(stream_id, &headers_handler);
     progressive_decoder->Decode(data);
     progressive_decoder->EndHeaderBlock();
 
diff --git a/quic/core/qpack/qpack_decoded_headers_accumulator.cc b/quic/core/qpack/qpack_decoded_headers_accumulator.cc
index bcfe0e4..7a3b157 100644
--- a/quic/core/qpack/qpack_decoded_headers_accumulator.cc
+++ b/quic/core/qpack/qpack_decoded_headers_accumulator.cc
@@ -12,7 +12,7 @@
     QuicStreamId id,
     QpackDecoder* qpack_decoder,
     size_t max_header_list_size)
-    : decoder_(qpack_decoder->DecodeHeaderBlock(id, this)),
+    : decoder_(qpack_decoder->CreateProgressiveDecoder(id, this)),
       uncompressed_header_bytes_(0),
       compressed_header_bytes_(0),
       error_detected_(false) {
diff --git a/quic/core/qpack/qpack_decoder.cc b/quic/core/qpack/qpack_decoder.cc
index 9efccb6..03e15f7 100644
--- a/quic/core/qpack/qpack_decoder.cc
+++ b/quic/core/qpack/qpack_decoder.cc
@@ -131,7 +131,7 @@
   return true;
 }
 
-std::unique_ptr<QpackProgressiveDecoder> QpackDecoder::DecodeHeaderBlock(
+std::unique_ptr<QpackProgressiveDecoder> QpackDecoder::CreateProgressiveDecoder(
     QuicStreamId stream_id,
     QpackProgressiveDecoder::HeadersHandlerInterface* handler) {
   return QuicMakeUnique<QpackProgressiveDecoder>(
diff --git a/quic/core/qpack/qpack_decoder.h b/quic/core/qpack/qpack_decoder.h
index c3b28a3..7ad4b11 100644
--- a/quic/core/qpack/qpack_decoder.h
+++ b/quic/core/qpack/qpack_decoder.h
@@ -65,7 +65,7 @@
   // block.  |handler| must remain valid until the returned
   // QpackProgressiveDecoder instance is destroyed or the decoder calls
   // |handler->OnHeaderBlockEnd()|.
-  std::unique_ptr<QpackProgressiveDecoder> DecodeHeaderBlock(
+  std::unique_ptr<QpackProgressiveDecoder> CreateProgressiveDecoder(
       QuicStreamId stream_id,
       QpackProgressiveDecoder::HeadersHandlerInterface* handler);
 
diff --git a/quic/core/qpack/qpack_decoder_test.cc b/quic/core/qpack/qpack_decoder_test.cc
index 8d83f0a..9aa9d12 100644
--- a/quic/core/qpack/qpack_decoder_test.cc
+++ b/quic/core/qpack/qpack_decoder_test.cc
@@ -44,7 +44,7 @@
     auto fragment_size_generator =
         FragmentModeToFragmentSizeGenerator(fragment_mode_);
     auto progressive_decoder =
-        qpack_decoder_.DecodeHeaderBlock(/* stream_id = */ 1, &handler_);
+        qpack_decoder_.CreateProgressiveDecoder(/* stream_id = */ 1, &handler_);
     while (!data.empty()) {
       size_t fragment_size = std::min(fragment_size_generator(), data.size());
       progressive_decoder->Decode(data.substr(0, fragment_size));
diff --git a/quic/core/qpack/qpack_decoder_test_utils.cc b/quic/core/qpack/qpack_decoder_test_utils.cc
index 9fc29de..d19ae4a 100644
--- a/quic/core/qpack/qpack_decoder_test_utils.cc
+++ b/quic/core/qpack/qpack_decoder_test_utils.cc
@@ -69,7 +69,7 @@
   QpackDecoder decoder(encoder_stream_error_delegate,
                        decoder_stream_sender_delegate);
   auto progressive_decoder =
-      decoder.DecodeHeaderBlock(/* stream_id = */ 1, handler);
+      decoder.CreateProgressiveDecoder(/* stream_id = */ 1, handler);
   while (!data.empty()) {
     size_t fragment_size = std::min(fragment_size_generator(), data.size());
     progressive_decoder->Decode(data.substr(0, fragment_size));
