diff --git a/quiche/quic/core/frames/quic_ack_frame.cc b/quiche/quic/core/frames/quic_ack_frame.cc
index c61594b..cd14d9d 100644
--- a/quiche/quic/core/frames/quic_ack_frame.cc
+++ b/quiche/quic/core/frames/quic_ack_frame.cc
@@ -102,9 +102,7 @@
   packet_number_intervals_.PopFront();
 }
 
-void PacketNumberQueue::Clear() {
-  packet_number_intervals_.Clear();
-}
+void PacketNumberQueue::Clear() { packet_number_intervals_.Clear(); }
 
 bool PacketNumberQueue::Contains(QuicPacketNumber packet_number) const {
   if (!packet_number.IsInitialized()) {
diff --git a/quiche/quic/core/frames/quic_ack_frame.h b/quiche/quic/core/frames/quic_ack_frame.h
index 9d66375..7142a82 100644
--- a/quiche/quic/core/frames/quic_ack_frame.h
+++ b/quiche/quic/core/frames/quic_ack_frame.h
@@ -83,8 +83,7 @@
   const_reverse_iterator rend() const;
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const PacketNumberQueue& q);
+      std::ostream& os, const PacketNumberQueue& q);
 
  private:
   QuicIntervalSet<QuicPacketNumber> packet_number_intervals_;
@@ -98,8 +97,7 @@
   void Clear();
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicAckFrame& ack_frame);
+      std::ostream& os, const QuicAckFrame& ack_frame);
 
   // The highest packet number we've observed from the peer. When |packets| is
   // not empty, it should always be equal to packets.Max(). The |LargestAcked|
@@ -139,8 +137,7 @@
 // as missing.
 // Always returns false for packet numbers less than least_unacked.
 QUIC_EXPORT_PRIVATE bool IsAwaitingPacket(
-    const QuicAckFrame& ack_frame,
-    QuicPacketNumber packet_number,
+    const QuicAckFrame& ack_frame, QuicPacketNumber packet_number,
     QuicPacketNumber peer_least_packet_awaiting_ack);
 
 }  // namespace quic
diff --git a/quiche/quic/core/frames/quic_ack_frequency_frame.cc b/quiche/quic/core/frames/quic_ack_frequency_frame.cc
index 472b882..9d2fc31 100644
--- a/quiche/quic/core/frames/quic_ack_frequency_frame.cc
+++ b/quiche/quic/core/frames/quic_ack_frequency_frame.cc
@@ -3,16 +3,15 @@
 // found in the LICENSE file.
 
 #include "quiche/quic/core/frames/quic_ack_frequency_frame.h"
+
 #include <cstdint>
 #include <limits>
 
 namespace quic {
 
 QuicAckFrequencyFrame::QuicAckFrequencyFrame(
-    QuicControlFrameId control_frame_id,
-    uint64_t sequence_number,
-    uint64_t packet_tolerance,
-    QuicTime::Delta max_ack_delay)
+    QuicControlFrameId control_frame_id, uint64_t sequence_number,
+    uint64_t packet_tolerance, QuicTime::Delta max_ack_delay)
     : control_frame_id(control_frame_id),
       sequence_number(sequence_number),
       packet_tolerance(packet_tolerance),
diff --git a/quiche/quic/core/frames/quic_ack_frequency_frame.h b/quiche/quic/core/frames/quic_ack_frequency_frame.h
index f69351a..c9b3519 100644
--- a/quiche/quic/core/frames/quic_ack_frequency_frame.h
+++ b/quiche/quic/core/frames/quic_ack_frequency_frame.h
@@ -18,13 +18,11 @@
 // A frame that allows sender control of acknowledgement delays.
 struct QUIC_EXPORT_PRIVATE QuicAckFrequencyFrame {
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicAckFrequencyFrame& ack_frequency_frame);
+      std::ostream& os, const QuicAckFrequencyFrame& ack_frequency_frame);
 
   QuicAckFrequencyFrame() = default;
   QuicAckFrequencyFrame(QuicControlFrameId control_frame_id,
-                        uint64_t sequence_number,
-                        uint64_t packet_tolerance,
+                        uint64_t sequence_number, uint64_t packet_tolerance,
                         QuicTime::Delta max_ack_delay);
 
   // A unique identifier of this control frame. 0 when this frame is
diff --git a/quiche/quic/core/frames/quic_blocked_frame.h b/quiche/quic/core/frames/quic_blocked_frame.h
index 32a515e..c3f45f3 100644
--- a/quiche/quic/core/frames/quic_blocked_frame.h
+++ b/quiche/quic/core/frames/quic_blocked_frame.h
@@ -25,8 +25,7 @@
                    QuicStreamOffset offset);
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicBlockedFrame& b);
+      std::ostream& os, const QuicBlockedFrame& b);
 
   QuicFrameType type;
 
diff --git a/quiche/quic/core/frames/quic_connection_close_frame.cc b/quiche/quic/core/frames/quic_connection_close_frame.cc
index 44fa18a..640101e 100644
--- a/quiche/quic/core/frames/quic_connection_close_frame.cc
+++ b/quiche/quic/core/frames/quic_connection_close_frame.cc
@@ -13,10 +13,8 @@
 namespace quic {
 
 QuicConnectionCloseFrame::QuicConnectionCloseFrame(
-    QuicTransportVersion transport_version,
-    QuicErrorCode error_code,
-    QuicIetfTransportErrorCodes ietf_error,
-    std::string error_phrase,
+    QuicTransportVersion transport_version, QuicErrorCode error_code,
+    QuicIetfTransportErrorCodes ietf_error, std::string error_phrase,
     uint64_t frame_type)
     : quic_error_code(error_code), error_details(error_phrase) {
   if (!VersionHasIetfQuicFrames(transport_version)) {
@@ -44,8 +42,7 @@
 }
 
 std::ostream& operator<<(
-    std::ostream& os,
-    const QuicConnectionCloseFrame& connection_close_frame) {
+    std::ostream& os, const QuicConnectionCloseFrame& connection_close_frame) {
   os << "{ Close type: " << connection_close_frame.close_type;
   switch (connection_close_frame.close_type) {
     case IETF_QUIC_TRANSPORT_CONNECTION_CLOSE:
diff --git a/quiche/quic/core/frames/quic_connection_close_frame.h b/quiche/quic/core/frames/quic_connection_close_frame.h
index 15e83d3..cf780dd 100644
--- a/quiche/quic/core/frames/quic_connection_close_frame.h
+++ b/quiche/quic/core/frames/quic_connection_close_frame.h
@@ -32,8 +32,7 @@
                            uint64_t transport_close_frame_type);
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicConnectionCloseFrame& c);
+      std::ostream& os, const QuicConnectionCloseFrame& c);
 
   // Indicates whether the the frame is a Google QUIC CONNECTION_CLOSE frame,
   // an IETF QUIC CONNECTION_CLOSE frame with transport error code,
diff --git a/quiche/quic/core/frames/quic_crypto_frame.cc b/quiche/quic/core/frames/quic_crypto_frame.cc
index 4f27dab..11ccf68 100644
--- a/quiche/quic/core/frames/quic_crypto_frame.cc
+++ b/quiche/quic/core/frames/quic_crypto_frame.cc
@@ -9,18 +9,15 @@
 
 namespace quic {
 
-QuicCryptoFrame::QuicCryptoFrame(EncryptionLevel level,
-                                 QuicStreamOffset offset,
+QuicCryptoFrame::QuicCryptoFrame(EncryptionLevel level, QuicStreamOffset offset,
                                  QuicPacketLength data_length)
     : QuicCryptoFrame(level, offset, nullptr, data_length) {}
 
-QuicCryptoFrame::QuicCryptoFrame(EncryptionLevel level,
-                                 QuicStreamOffset offset,
+QuicCryptoFrame::QuicCryptoFrame(EncryptionLevel level, QuicStreamOffset offset,
                                  absl::string_view data)
     : QuicCryptoFrame(level, offset, data.data(), data.length()) {}
 
-QuicCryptoFrame::QuicCryptoFrame(EncryptionLevel level,
-                                 QuicStreamOffset offset,
+QuicCryptoFrame::QuicCryptoFrame(EncryptionLevel level, QuicStreamOffset offset,
                                  const char* data_buffer,
                                  QuicPacketLength data_length)
     : level(level),
diff --git a/quiche/quic/core/frames/quic_crypto_frame.h b/quiche/quic/core/frames/quic_crypto_frame.h
index 2d1c776..bc76da1 100644
--- a/quiche/quic/core/frames/quic_crypto_frame.h
+++ b/quiche/quic/core/frames/quic_crypto_frame.h
@@ -16,11 +16,9 @@
 
 struct QUIC_EXPORT_PRIVATE QuicCryptoFrame {
   QuicCryptoFrame() = default;
-  QuicCryptoFrame(EncryptionLevel level,
-                  QuicStreamOffset offset,
+  QuicCryptoFrame(EncryptionLevel level, QuicStreamOffset offset,
                   QuicPacketLength data_length);
-  QuicCryptoFrame(EncryptionLevel level,
-                  QuicStreamOffset offset,
+  QuicCryptoFrame(EncryptionLevel level, QuicStreamOffset offset,
                   absl::string_view data);
   ~QuicCryptoFrame();
 
@@ -37,10 +35,8 @@
   const char* data_buffer = nullptr;
   QuicStreamOffset offset = 0;  // Location of this data in the stream.
 
-  QuicCryptoFrame(EncryptionLevel level,
-                  QuicStreamOffset offset,
-                  const char* data_buffer,
-                  QuicPacketLength data_length);
+  QuicCryptoFrame(EncryptionLevel level, QuicStreamOffset offset,
+                  const char* data_buffer, QuicPacketLength data_length);
 };
 static_assert(sizeof(QuicCryptoFrame) <= 64,
               "Keep the QuicCryptoFrame size to a cacheline.");
diff --git a/quiche/quic/core/frames/quic_goaway_frame.cc b/quiche/quic/core/frames/quic_goaway_frame.cc
index 277d84d..c2394a7 100644
--- a/quiche/quic/core/frames/quic_goaway_frame.cc
+++ b/quiche/quic/core/frames/quic_goaway_frame.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include <string>
-
 #include "quiche/quic/core/frames/quic_goaway_frame.h"
 
+#include <string>
+
 namespace quic {
 
 QuicGoAwayFrame::QuicGoAwayFrame(QuicControlFrameId control_frame_id,
diff --git a/quiche/quic/core/frames/quic_goaway_frame.h b/quiche/quic/core/frames/quic_goaway_frame.h
index ac31dbc..c094889 100644
--- a/quiche/quic/core/frames/quic_goaway_frame.h
+++ b/quiche/quic/core/frames/quic_goaway_frame.h
@@ -16,10 +16,8 @@
 
 struct QUIC_EXPORT_PRIVATE QuicGoAwayFrame {
   QuicGoAwayFrame() = default;
-  QuicGoAwayFrame(QuicControlFrameId control_frame_id,
-                  QuicErrorCode error_code,
-                  QuicStreamId last_good_stream_id,
-                  const std::string& reason);
+  QuicGoAwayFrame(QuicControlFrameId control_frame_id, QuicErrorCode error_code,
+                  QuicStreamId last_good_stream_id, const std::string& reason);
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
                                                       const QuicGoAwayFrame& g);
diff --git a/quiche/quic/core/frames/quic_handshake_done_frame.h b/quiche/quic/core/frames/quic_handshake_done_frame.h
index 7c9639a..aa5cbfc 100644
--- a/quiche/quic/core/frames/quic_handshake_done_frame.h
+++ b/quiche/quic/core/frames/quic_handshake_done_frame.h
@@ -20,8 +20,7 @@
   explicit QuicHandshakeDoneFrame(QuicControlFrameId control_frame_id);
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicHandshakeDoneFrame& handshake_done_frame);
+      std::ostream& os, const QuicHandshakeDoneFrame& handshake_done_frame);
 
   QuicFrameType type;
 
diff --git a/quiche/quic/core/frames/quic_max_streams_frame.h b/quiche/quic/core/frames/quic_max_streams_frame.h
index 97434c7..eaee69a 100644
--- a/quiche/quic/core/frames/quic_max_streams_frame.h
+++ b/quiche/quic/core/frames/quic_max_streams_frame.h
@@ -21,12 +21,10 @@
     : public QuicInlinedFrame<QuicMaxStreamsFrame> {
   QuicMaxStreamsFrame();
   QuicMaxStreamsFrame(QuicControlFrameId control_frame_id,
-                      QuicStreamCount stream_count,
-                      bool unidirectional);
+                      QuicStreamCount stream_count, bool unidirectional);
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicMaxStreamsFrame& frame);
+      std::ostream& os, const QuicMaxStreamsFrame& frame);
 
   QuicFrameType type;
 
diff --git a/quiche/quic/core/frames/quic_message_frame.h b/quiche/quic/core/frames/quic_message_frame.h
index 30c40a0..e376ef6 100644
--- a/quiche/quic/core/frames/quic_message_frame.h
+++ b/quiche/quic/core/frames/quic_message_frame.h
@@ -33,8 +33,7 @@
   ~QuicMessageFrame();
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicMessageFrame& s);
+      std::ostream& os, const QuicMessageFrame& s);
 
   // message_id is only used on the sender side and does not get serialized on
   // wire.
diff --git a/quiche/quic/core/frames/quic_new_connection_id_frame.cc b/quiche/quic/core/frames/quic_new_connection_id_frame.cc
index cf5511b..2d37460 100644
--- a/quiche/quic/core/frames/quic_new_connection_id_frame.cc
+++ b/quiche/quic/core/frames/quic_new_connection_id_frame.cc
@@ -7,11 +7,9 @@
 namespace quic {
 
 QuicNewConnectionIdFrame::QuicNewConnectionIdFrame(
-    QuicControlFrameId control_frame_id,
-    QuicConnectionId connection_id,
+    QuicControlFrameId control_frame_id, QuicConnectionId connection_id,
     QuicConnectionIdSequenceNumber sequence_number,
-    StatelessResetToken stateless_reset_token,
-    uint64_t retire_prior_to)
+    StatelessResetToken stateless_reset_token, uint64_t retire_prior_to)
     : control_frame_id(control_frame_id),
       connection_id(connection_id),
       sequence_number(sequence_number),
diff --git a/quiche/quic/core/frames/quic_new_connection_id_frame.h b/quiche/quic/core/frames/quic_new_connection_id_frame.h
index 6221b03..8f5e9ba 100644
--- a/quiche/quic/core/frames/quic_new_connection_id_frame.h
+++ b/quiche/quic/core/frames/quic_new_connection_id_frame.h
@@ -23,8 +23,7 @@
                            uint64_t retire_prior_to);
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicNewConnectionIdFrame& frame);
+      std::ostream& os, const QuicNewConnectionIdFrame& frame);
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
diff --git a/quiche/quic/core/frames/quic_new_token_frame.h b/quiche/quic/core/frames/quic_new_token_frame.h
index 7900149..9761ed0 100644
--- a/quiche/quic/core/frames/quic_new_token_frame.h
+++ b/quiche/quic/core/frames/quic_new_token_frame.h
@@ -21,8 +21,7 @@
                     absl::string_view token);
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicNewTokenFrame& s);
+      std::ostream& os, const QuicNewTokenFrame& s);
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
diff --git a/quiche/quic/core/frames/quic_padding_frame.h b/quiche/quic/core/frames/quic_padding_frame.h
index 25edc3f..a903c5d 100644
--- a/quiche/quic/core/frames/quic_padding_frame.h
+++ b/quiche/quic/core/frames/quic_padding_frame.h
@@ -22,8 +22,7 @@
       : QuicInlinedFrame(PADDING_FRAME), num_padding_bytes(num_padding_bytes) {}
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicPaddingFrame& padding_frame);
+      std::ostream& os, const QuicPaddingFrame& padding_frame);
 
   QuicFrameType type;
 
diff --git a/quiche/quic/core/frames/quic_ping_frame.h b/quiche/quic/core/frames/quic_ping_frame.h
index d39bf6d..2603b65 100644
--- a/quiche/quic/core/frames/quic_ping_frame.h
+++ b/quiche/quic/core/frames/quic_ping_frame.h
@@ -20,8 +20,7 @@
   explicit QuicPingFrame(QuicControlFrameId control_frame_id);
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicPingFrame& ping_frame);
+      std::ostream& os, const QuicPingFrame& ping_frame);
 
   QuicFrameType type;
 
diff --git a/quiche/quic/core/frames/quic_retire_connection_id_frame.h b/quiche/quic/core/frames/quic_retire_connection_id_frame.h
index 41ce972..fcff696 100644
--- a/quiche/quic/core/frames/quic_retire_connection_id_frame.h
+++ b/quiche/quic/core/frames/quic_retire_connection_id_frame.h
@@ -19,8 +19,7 @@
                               QuicConnectionIdSequenceNumber sequence_number);
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicRetireConnectionIdFrame& frame);
+      std::ostream& os, const QuicRetireConnectionIdFrame& frame);
 
   // A unique identifier of this control frame. 0 when this frame is received,
   // and non-zero when sent.
diff --git a/quiche/quic/core/frames/quic_stop_sending_frame.h b/quiche/quic/core/frames/quic_stop_sending_frame.h
index e21937d..8a7b8c6 100644
--- a/quiche/quic/core/frames/quic_stop_sending_frame.h
+++ b/quiche/quic/core/frames/quic_stop_sending_frame.h
@@ -24,8 +24,7 @@
                        QuicStreamId stream_id, QuicResetStreamError error);
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicStopSendingFrame& frame);
+      std::ostream& os, const QuicStopSendingFrame& frame);
 
   QuicFrameType type;
 
diff --git a/quiche/quic/core/frames/quic_stop_waiting_frame.h b/quiche/quic/core/frames/quic_stop_waiting_frame.h
index d04f57a..526ea01 100644
--- a/quiche/quic/core/frames/quic_stop_waiting_frame.h
+++ b/quiche/quic/core/frames/quic_stop_waiting_frame.h
@@ -18,8 +18,7 @@
   QuicStopWaitingFrame();
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicStopWaitingFrame& s);
+      std::ostream& os, const QuicStopWaitingFrame& s);
 
   QuicFrameType type;
 
diff --git a/quiche/quic/core/frames/quic_stream_frame.cc b/quiche/quic/core/frames/quic_stream_frame.cc
index 81fbe04..c6988a0 100644
--- a/quiche/quic/core/frames/quic_stream_frame.cc
+++ b/quiche/quic/core/frames/quic_stream_frame.cc
@@ -11,20 +11,17 @@
 
 QuicStreamFrame::QuicStreamFrame() : QuicInlinedFrame(STREAM_FRAME) {}
 
-QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id,
-                                 bool fin,
+QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id, bool fin,
                                  QuicStreamOffset offset,
                                  absl::string_view data)
     : QuicStreamFrame(stream_id, fin, offset, data.data(), data.length()) {}
 
-QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id,
-                                 bool fin,
+QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id, bool fin,
                                  QuicStreamOffset offset,
                                  QuicPacketLength data_length)
     : QuicStreamFrame(stream_id, fin, offset, nullptr, data_length) {}
 
-QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id,
-                                 bool fin,
+QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id, bool fin,
                                  QuicStreamOffset offset,
                                  const char* data_buffer,
                                  QuicPacketLength data_length)
diff --git a/quiche/quic/core/frames/quic_stream_frame.h b/quiche/quic/core/frames/quic_stream_frame.h
index 6bcd41e..a6b965a 100644
--- a/quiche/quic/core/frames/quic_stream_frame.h
+++ b/quiche/quic/core/frames/quic_stream_frame.h
@@ -18,13 +18,9 @@
 struct QUIC_EXPORT_PRIVATE QuicStreamFrame
     : public QuicInlinedFrame<QuicStreamFrame> {
   QuicStreamFrame();
-  QuicStreamFrame(QuicStreamId stream_id,
-                  bool fin,
-                  QuicStreamOffset offset,
+  QuicStreamFrame(QuicStreamId stream_id, bool fin, QuicStreamOffset offset,
                   absl::string_view data);
-  QuicStreamFrame(QuicStreamId stream_id,
-                  bool fin,
-                  QuicStreamOffset offset,
+  QuicStreamFrame(QuicStreamId stream_id, bool fin, QuicStreamOffset offset,
                   QuicPacketLength data_length);
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
@@ -43,11 +39,8 @@
   const char* data_buffer = nullptr;  // Not owned.
   QuicStreamOffset offset = 0;        // Location of this data in the stream.
 
-  QuicStreamFrame(QuicStreamId stream_id,
-                  bool fin,
-                  QuicStreamOffset offset,
-                  const char* data_buffer,
-                  QuicPacketLength data_length);
+  QuicStreamFrame(QuicStreamId stream_id, bool fin, QuicStreamOffset offset,
+                  const char* data_buffer, QuicPacketLength data_length);
 };
 static_assert(sizeof(QuicStreamFrame) <= 64,
               "Keep the QuicStreamFrame size to a cacheline.");
diff --git a/quiche/quic/core/frames/quic_streams_blocked_frame.cc b/quiche/quic/core/frames/quic_streams_blocked_frame.cc
index 2ca554e..6d6a6d2 100644
--- a/quiche/quic/core/frames/quic_streams_blocked_frame.cc
+++ b/quiche/quic/core/frames/quic_streams_blocked_frame.cc
@@ -10,8 +10,7 @@
     : QuicInlinedFrame(STREAMS_BLOCKED_FRAME) {}
 
 QuicStreamsBlockedFrame::QuicStreamsBlockedFrame(
-    QuicControlFrameId control_frame_id,
-    QuicStreamCount stream_count,
+    QuicControlFrameId control_frame_id, QuicStreamCount stream_count,
     bool unidirectional)
     : QuicInlinedFrame(STREAMS_BLOCKED_FRAME),
       control_frame_id(control_frame_id),
diff --git a/quiche/quic/core/frames/quic_streams_blocked_frame.h b/quiche/quic/core/frames/quic_streams_blocked_frame.h
index 05eb1cc..cc60f31 100644
--- a/quiche/quic/core/frames/quic_streams_blocked_frame.h
+++ b/quiche/quic/core/frames/quic_streams_blocked_frame.h
@@ -21,12 +21,10 @@
     : public QuicInlinedFrame<QuicStreamsBlockedFrame> {
   QuicStreamsBlockedFrame();
   QuicStreamsBlockedFrame(QuicControlFrameId control_frame_id,
-                          QuicStreamCount stream_count,
-                          bool unidirectional);
+                          QuicStreamCount stream_count, bool unidirectional);
 
   friend QUIC_EXPORT_PRIVATE std::ostream& operator<<(
-      std::ostream& os,
-      const QuicStreamsBlockedFrame& frame);
+      std::ostream& os, const QuicStreamsBlockedFrame& frame);
 
   QuicFrameType type;
 
