diff --git a/quic/core/quic_packet_creator.cc b/quic/core/quic_packet_creator.cc
index bb726e0..f95fe63 100644
--- a/quic/core/quic_packet_creator.cc
+++ b/quic/core/quic_packet_creator.cc
@@ -124,13 +124,8 @@
       next_transmission_type_(NOT_RETRANSMISSION),
       flusher_attached_(false),
       fully_pad_crypto_handshake_packets_(true),
-      latched_hard_max_packet_length_(0),
-      populate_nonretransmittable_frames_(
-          GetQuicReloadableFlag(quic_populate_nonretransmittable_frames)) {
+      latched_hard_max_packet_length_(0) {
   SetMaxPacketLength(kDefaultMaxPacketSize);
-  if (populate_nonretransmittable_frames_) {
-    QUIC_RELOADABLE_FLAG_COUNT(quic_populate_nonretransmittable_frames);
-  }
 }
 
 QuicPacketCreator::~QuicPacketCreator() {
@@ -1503,17 +1498,14 @@
       packet_.has_crypto_handshake = IS_HANDSHAKE;
     }
   } else {
-    if (populate_nonretransmittable_frames_ ||
-        framer_->version().CanSendCoalescedPackets()) {
-      if (frame.type == PADDING_FRAME &&
-          frame.padding_frame.num_padding_bytes == -1) {
-        // Populate the actual length of full padding frame, such that one can
-        // know how much padding is actually added.
-        packet_.nonretransmittable_frames.push_back(
-            QuicFrame(QuicPaddingFrame(frame_len)));
-      } else {
-        packet_.nonretransmittable_frames.push_back(frame);
-      }
+    if (frame.type == PADDING_FRAME &&
+        frame.padding_frame.num_padding_bytes == -1) {
+      // Populate the actual length of full padding frame, such that one can
+      // know how much padding is actually added.
+      packet_.nonretransmittable_frames.push_back(
+          QuicFrame(QuicPaddingFrame(frame_len)));
+    } else {
+      packet_.nonretransmittable_frames.push_back(frame);
     }
     queued_frames_.push_back(frame);
   }
diff --git a/quic/core/quic_packet_creator.h b/quic/core/quic_packet_creator.h
index 8e066a9..eb7b627 100644
--- a/quic/core/quic_packet_creator.h
+++ b/quic/core/quic_packet_creator.h
@@ -586,9 +586,6 @@
   // SetSoftMaxPacketLength is called and max_packet_length_ gets
   // set to a soft value.
   QuicByteCount latched_hard_max_packet_length_;
-
-  // Latched value of quic_populate_nonretransmittable_frames.
-  const bool populate_nonretransmittable_frames_;
 };
 
 }  // namespace quic
diff --git a/quic/core/quic_packet_creator_test.cc b/quic/core/quic_packet_creator_test.cc
index b609413..6ca369c 100644
--- a/quic/core/quic_packet_creator_test.cc
+++ b/quic/core/quic_packet_creator_test.cc
@@ -2072,10 +2072,6 @@
 }
 
 TEST_P(QuicPacketCreatorTest, SaveNonRetransmittableFrames) {
-  if (!GetQuicReloadableFlag(quic_populate_nonretransmittable_frames) &&
-      !client_framer_.version().CanSendCoalescedPackets()) {
-    return;
-  }
   QuicAckFrame ack_frame(InitAckFrame(1));
   frames_.push_back(QuicFrame(&ack_frame));
   frames_.push_back(QuicFrame(QuicPaddingFrame(-1)));
@@ -2099,9 +2095,6 @@
 }
 
 TEST_P(QuicPacketCreatorTest, SerializeCoalescedPacket) {
-  if (!GetQuicReloadableFlag(quic_populate_nonretransmittable_frames)) {
-    return;
-  }
   QuicCoalescedPacket coalesced;
   SimpleBufferAllocator allocator;
   QuicSocketAddress self_address(QuicIpAddress::Loopback4(), 1);
diff --git a/quic/core/quic_packets.h b/quic/core/quic_packets.h
index 91553d8..93417ac 100644
--- a/quic/core/quic_packets.h
+++ b/quic/core/quic_packets.h
@@ -379,8 +379,7 @@
   QuicPacketNumber packet_number;
   QuicPacketNumberLength packet_number_length;
   EncryptionLevel encryption_level;
-  // TODO(fayang): Remove has_ack and has_stop_waiting when deprecating
-  // quic_populate_nonretransmittable_frames.
+  // TODO(fayang): Remove has_ack and has_stop_waiting.
   bool has_ack;
   bool has_stop_waiting;
   TransmissionType transmission_type;
