diff --git a/quiche/quic/core/http/quic_spdy_session.cc b/quiche/quic/core/http/quic_spdy_session.cc
index f757f48..48baa74 100644
--- a/quiche/quic/core/http/quic_spdy_session.cc
+++ b/quiche/quic/core/http/quic_spdy_session.cc
@@ -1654,9 +1654,8 @@
   }
 }
 
-MessageStatus QuicSpdySession::SendHttp3Datagram(
-    QuicDatagramStreamId stream_id,
-    absl::string_view payload) {
+MessageStatus QuicSpdySession::SendHttp3Datagram(QuicDatagramStreamId stream_id,
+                                                 absl::string_view payload) {
   if (!SupportsH3Datagram()) {
     QUIC_BUG(send http datagram too early)
         << "Refusing to send HTTP Datagram before SETTINGS received";
diff --git a/quiche/quic/core/http/quic_spdy_session.h b/quiche/quic/core/http/quic_spdy_session.h
index 0807905..b31b5ad 100644
--- a/quiche/quic/core/http/quic_spdy_session.h
+++ b/quiche/quic/core/http/quic_spdy_session.h
@@ -389,9 +389,8 @@
   }
 
   // This must not be used except by QuicSpdyStream::SendHttp3Datagram.
-  MessageStatus SendHttp3Datagram(
-      QuicDatagramStreamId stream_id,
-      absl::string_view payload);
+  MessageStatus SendHttp3Datagram(QuicDatagramStreamId stream_id,
+                                  absl::string_view payload);
   // This must not be used except by QuicSpdyStream::SetMaxDatagramTimeInQueue.
   void SetMaxDatagramTimeInQueueForStreamId(QuicStreamId stream_id,
                                             QuicTime::Delta max_time_in_queue);
diff --git a/quiche/quic/core/http/quic_spdy_stream.cc b/quiche/quic/core/http/quic_spdy_stream.cc
index 991631c..52df689 100644
--- a/quiche/quic/core/http/quic_spdy_stream.cc
+++ b/quiche/quic/core/http/quic_spdy_stream.cc
@@ -1414,8 +1414,7 @@
     : session_id(session_id),
       adapter(stream->spdy_session_, stream, stream->sequencer()) {}
 
-void QuicSpdyStream::HandleReceivedDatagram(
-    absl::string_view payload) {
+void QuicSpdyStream::HandleReceivedDatagram(absl::string_view payload) {
   if (datagram_visitor_ == nullptr) {
     QUIC_DLOG(ERROR) << ENDPOINT << "Received datagram without any visitor";
     return;
@@ -1491,8 +1490,7 @@
   WriteCapsule(capsule, /*fin=*/false);
 }
 
-MessageStatus QuicSpdyStream::SendHttp3Datagram(
-    absl::string_view payload) {
+MessageStatus QuicSpdyStream::SendHttp3Datagram(absl::string_view payload) {
   QuicDatagramStreamId stream_id =
       datagram_flow_id_.has_value() ? datagram_flow_id_.value() : id();
   return spdy_session_->SendHttp3Datagram(stream_id, payload);
diff --git a/quiche/quic/core/http/quic_spdy_stream.h b/quiche/quic/core/http/quic_spdy_stream.h
index 6e35012..a0e2ba6 100644
--- a/quiche/quic/core/http/quic_spdy_stream.h
+++ b/quiche/quic/core/http/quic_spdy_stream.h
@@ -255,8 +255,7 @@
   void OnCapsuleParseFailure(const std::string& error_message) override;
 
   // Sends an HTTP/3 datagram. The stream ID is not part of |payload|.
-  MessageStatus SendHttp3Datagram(
-      absl::string_view payload);
+  MessageStatus SendHttp3Datagram(absl::string_view payload);
 
   class QUIC_EXPORT_PRIVATE Http3DatagramVisitor {
    public:
@@ -265,9 +264,8 @@
     // Called when an HTTP/3 datagram is received. |payload| does not contain
     // the stream ID. Note that this contains the stream ID even if flow IDs
     // from draft-ietf-masque-h3-datagram-00 are in use.
-    virtual void OnHttp3Datagram(
-        QuicStreamId stream_id,
-        absl::string_view payload) = 0;
+    virtual void OnHttp3Datagram(QuicStreamId stream_id,
+                                 absl::string_view payload) = 0;
   };
 
   // Registers |visitor| to receive HTTP/3 datagrams. |visitor| must be
diff --git a/quiche/quic/masque/masque_server_session.h b/quiche/quic/masque/masque_server_session.h
index a2ae75d..b3d2dde 100644
--- a/quiche/quic/masque/masque_server_session.h
+++ b/quiche/quic/masque/masque_server_session.h
@@ -66,9 +66,8 @@
     // ConnectUdpServerState takes ownership of |fd|. It will unregister it
     // from |epoll_server| and close the file descriptor when destructed.
     explicit ConnectUdpServerState(
-        QuicSpdyStream* stream,
-        const QuicSocketAddress& target_server_address, QuicUdpSocketFd fd,
-        MasqueServerSession* masque_session);
+        QuicSpdyStream* stream, const QuicSocketAddress& target_server_address,
+        QuicUdpSocketFd fd, MasqueServerSession* masque_session);
 
     ~ConnectUdpServerState();
 
