diff --git a/spdy/core/header_byte_listener_interface.h b/spdy/core/header_byte_listener_interface.h
new file mode 100644
index 0000000..e2ae4f9
--- /dev/null
+++ b/spdy/core/header_byte_listener_interface.h
@@ -0,0 +1,22 @@
+#ifndef QUICHE_SPDY_CORE_HEADER_BYTE_LISTENER_INTERFACE_H_
+#define QUICHE_SPDY_CORE_HEADER_BYTE_LISTENER_INTERFACE_H_
+
+#include <stddef.h>
+
+#include "common/platform/api/quiche_export.h"
+
+namespace spdy {
+
+// Listens for the receipt of uncompressed header bytes.
+class QUICHE_EXPORT_PRIVATE HeaderByteListenerInterface {
+ public:
+  virtual ~HeaderByteListenerInterface() {}
+
+  // Called when a header block has been parsed, with the number of uncompressed
+  // header bytes parsed from the header block.
+  virtual void OnHeaderBytesReceived(size_t uncompressed_header_bytes) = 0;
+};
+
+}  // namespace spdy
+
+#endif  // QUICHE_SPDY_CORE_HEADER_BYTE_LISTENER_INTERFACE_H_
diff --git a/spdy/core/no_op_headers_handler.h b/spdy/core/no_op_headers_handler.h
new file mode 100644
index 0000000..8c99459
--- /dev/null
+++ b/spdy/core/no_op_headers_handler.h
@@ -0,0 +1,39 @@
+#ifndef QUICHE_SPDY_CORE_NO_OP_HEADERS_HANDLER_H_
+#define QUICHE_SPDY_CORE_NO_OP_HEADERS_HANDLER_H_
+
+#include "common/platform/api/quiche_export.h"
+#include "spdy/core/header_byte_listener_interface.h"
+#include "spdy/core/spdy_headers_handler_interface.h"
+
+namespace spdy {
+
+// Drops all header data, but passes information about header bytes parsed to
+// a listener.
+class QUICHE_EXPORT_PRIVATE NoOpHeadersHandler
+    : public SpdyHeadersHandlerInterface {
+ public:
+  // Does not take ownership of listener.
+  explicit NoOpHeadersHandler(HeaderByteListenerInterface* listener)
+      : listener_(listener) {}
+  NoOpHeadersHandler(const NoOpHeadersHandler&) = delete;
+  NoOpHeadersHandler& operator=(const NoOpHeadersHandler&) = delete;
+  ~NoOpHeadersHandler() override {}
+
+  // From SpdyHeadersHandlerInterface
+  void OnHeaderBlockStart() override {}
+  void OnHeader(absl::string_view /*key*/,
+                absl::string_view /*value*/) override {}
+  void OnHeaderBlockEnd(size_t uncompressed_header_bytes,
+                        size_t /* compressed_header_bytes */) override {
+    if (listener_ != nullptr) {
+      listener_->OnHeaderBytesReceived(uncompressed_header_bytes);
+    }
+  }
+
+ private:
+  HeaderByteListenerInterface* listener_;
+};
+
+}  // namespace spdy
+
+#endif  // QUICHE_SPDY_CORE_NO_OP_HEADERS_HANDLER_H_
