diff --git a/build/source_list.bzl b/build/source_list.bzl
index a5f0c9c..3fea228 100644
--- a/build/source_list.bzl
+++ b/build/source_list.bzl
@@ -219,7 +219,6 @@
     "quic/core/http/http_decoder.h",
     "quic/core/http/http_encoder.h",
     "quic/core/http/http_frames.h",
-    "quic/core/http/quic_client_promised_info.h",
     "quic/core/http/quic_client_push_promise_index.h",
     "quic/core/http/quic_header_list.h",
     "quic/core/http/quic_headers_stream.h",
@@ -559,7 +558,6 @@
     "quic/core/http/http_constants.cc",
     "quic/core/http/http_decoder.cc",
     "quic/core/http/http_encoder.cc",
-    "quic/core/http/quic_client_promised_info.cc",
     "quic/core/http/quic_header_list.cc",
     "quic/core/http/quic_headers_stream.cc",
     "quic/core/http/quic_receive_control_stream.cc",
@@ -782,7 +780,6 @@
     "quic/test_tools/mock_clock.h",
     "quic/test_tools/mock_connection_id_generator.h",
     "quic/test_tools/mock_load_balancer_encoder.h",
-    "quic/test_tools/mock_quic_client_promised_info.h",
     "quic/test_tools/mock_quic_dispatcher.h",
     "quic/test_tools/mock_quic_session_visitor.h",
     "quic/test_tools/mock_quic_spdy_client_stream.h",
@@ -795,7 +792,6 @@
     "quic/test_tools/qpack/qpack_offline_decoder.h",
     "quic/test_tools/qpack/qpack_test_utils.h",
     "quic/test_tools/quic_buffered_packet_store_peer.h",
-    "quic/test_tools/quic_client_promised_info_peer.h",
     "quic/test_tools/quic_client_session_cache_peer.h",
     "quic/test_tools/quic_coalesced_packet_peer.h",
     "quic/test_tools/quic_config_peer.h",
@@ -882,7 +878,6 @@
     "quic/test_tools/first_flight.cc",
     "quic/test_tools/limited_mtu_test_writer.cc",
     "quic/test_tools/mock_clock.cc",
-    "quic/test_tools/mock_quic_client_promised_info.cc",
     "quic/test_tools/mock_quic_dispatcher.cc",
     "quic/test_tools/mock_quic_session_visitor.cc",
     "quic/test_tools/mock_quic_spdy_client_stream.cc",
@@ -895,7 +890,6 @@
     "quic/test_tools/qpack/qpack_offline_decoder.cc",
     "quic/test_tools/qpack/qpack_test_utils.cc",
     "quic/test_tools/quic_buffered_packet_store_peer.cc",
-    "quic/test_tools/quic_client_promised_info_peer.cc",
     "quic/test_tools/quic_coalesced_packet_peer.cc",
     "quic/test_tools/quic_config_peer.cc",
     "quic/test_tools/quic_connection_peer.cc",
diff --git a/build/source_list.gni b/build/source_list.gni
index b9af29c..3848790 100644
--- a/build/source_list.gni
+++ b/build/source_list.gni
@@ -219,7 +219,6 @@
     "src/quiche/quic/core/http/http_decoder.h",
     "src/quiche/quic/core/http/http_encoder.h",
     "src/quiche/quic/core/http/http_frames.h",
-    "src/quiche/quic/core/http/quic_client_promised_info.h",
     "src/quiche/quic/core/http/quic_client_push_promise_index.h",
     "src/quiche/quic/core/http/quic_header_list.h",
     "src/quiche/quic/core/http/quic_headers_stream.h",
@@ -559,7 +558,6 @@
     "src/quiche/quic/core/http/http_constants.cc",
     "src/quiche/quic/core/http/http_decoder.cc",
     "src/quiche/quic/core/http/http_encoder.cc",
-    "src/quiche/quic/core/http/quic_client_promised_info.cc",
     "src/quiche/quic/core/http/quic_header_list.cc",
     "src/quiche/quic/core/http/quic_headers_stream.cc",
     "src/quiche/quic/core/http/quic_receive_control_stream.cc",
@@ -782,7 +780,6 @@
     "src/quiche/quic/test_tools/mock_clock.h",
     "src/quiche/quic/test_tools/mock_connection_id_generator.h",
     "src/quiche/quic/test_tools/mock_load_balancer_encoder.h",
-    "src/quiche/quic/test_tools/mock_quic_client_promised_info.h",
     "src/quiche/quic/test_tools/mock_quic_dispatcher.h",
     "src/quiche/quic/test_tools/mock_quic_session_visitor.h",
     "src/quiche/quic/test_tools/mock_quic_spdy_client_stream.h",
@@ -795,7 +792,6 @@
     "src/quiche/quic/test_tools/qpack/qpack_offline_decoder.h",
     "src/quiche/quic/test_tools/qpack/qpack_test_utils.h",
     "src/quiche/quic/test_tools/quic_buffered_packet_store_peer.h",
-    "src/quiche/quic/test_tools/quic_client_promised_info_peer.h",
     "src/quiche/quic/test_tools/quic_client_session_cache_peer.h",
     "src/quiche/quic/test_tools/quic_coalesced_packet_peer.h",
     "src/quiche/quic/test_tools/quic_config_peer.h",
@@ -882,7 +878,6 @@
     "src/quiche/quic/test_tools/first_flight.cc",
     "src/quiche/quic/test_tools/limited_mtu_test_writer.cc",
     "src/quiche/quic/test_tools/mock_clock.cc",
-    "src/quiche/quic/test_tools/mock_quic_client_promised_info.cc",
     "src/quiche/quic/test_tools/mock_quic_dispatcher.cc",
     "src/quiche/quic/test_tools/mock_quic_session_visitor.cc",
     "src/quiche/quic/test_tools/mock_quic_spdy_client_stream.cc",
@@ -895,7 +890,6 @@
     "src/quiche/quic/test_tools/qpack/qpack_offline_decoder.cc",
     "src/quiche/quic/test_tools/qpack/qpack_test_utils.cc",
     "src/quiche/quic/test_tools/quic_buffered_packet_store_peer.cc",
-    "src/quiche/quic/test_tools/quic_client_promised_info_peer.cc",
     "src/quiche/quic/test_tools/quic_coalesced_packet_peer.cc",
     "src/quiche/quic/test_tools/quic_config_peer.cc",
     "src/quiche/quic/test_tools/quic_connection_peer.cc",
diff --git a/build/source_list.json b/build/source_list.json
index f8b86d4..b900595 100644
--- a/build/source_list.json
+++ b/build/source_list.json
@@ -218,7 +218,6 @@
     "quiche/quic/core/http/http_decoder.h",
     "quiche/quic/core/http/http_encoder.h",
     "quiche/quic/core/http/http_frames.h",
-    "quiche/quic/core/http/quic_client_promised_info.h",
     "quiche/quic/core/http/quic_client_push_promise_index.h",
     "quiche/quic/core/http/quic_header_list.h",
     "quiche/quic/core/http/quic_headers_stream.h",
@@ -558,7 +557,6 @@
     "quiche/quic/core/http/http_constants.cc",
     "quiche/quic/core/http/http_decoder.cc",
     "quiche/quic/core/http/http_encoder.cc",
-    "quiche/quic/core/http/quic_client_promised_info.cc",
     "quiche/quic/core/http/quic_header_list.cc",
     "quiche/quic/core/http/quic_headers_stream.cc",
     "quiche/quic/core/http/quic_receive_control_stream.cc",
@@ -781,7 +779,6 @@
     "quiche/quic/test_tools/mock_clock.h",
     "quiche/quic/test_tools/mock_connection_id_generator.h",
     "quiche/quic/test_tools/mock_load_balancer_encoder.h",
-    "quiche/quic/test_tools/mock_quic_client_promised_info.h",
     "quiche/quic/test_tools/mock_quic_dispatcher.h",
     "quiche/quic/test_tools/mock_quic_session_visitor.h",
     "quiche/quic/test_tools/mock_quic_spdy_client_stream.h",
@@ -794,7 +791,6 @@
     "quiche/quic/test_tools/qpack/qpack_offline_decoder.h",
     "quiche/quic/test_tools/qpack/qpack_test_utils.h",
     "quiche/quic/test_tools/quic_buffered_packet_store_peer.h",
-    "quiche/quic/test_tools/quic_client_promised_info_peer.h",
     "quiche/quic/test_tools/quic_client_session_cache_peer.h",
     "quiche/quic/test_tools/quic_coalesced_packet_peer.h",
     "quiche/quic/test_tools/quic_config_peer.h",
@@ -881,7 +877,6 @@
     "quiche/quic/test_tools/first_flight.cc",
     "quiche/quic/test_tools/limited_mtu_test_writer.cc",
     "quiche/quic/test_tools/mock_clock.cc",
-    "quiche/quic/test_tools/mock_quic_client_promised_info.cc",
     "quiche/quic/test_tools/mock_quic_dispatcher.cc",
     "quiche/quic/test_tools/mock_quic_session_visitor.cc",
     "quiche/quic/test_tools/mock_quic_spdy_client_stream.cc",
@@ -894,7 +889,6 @@
     "quiche/quic/test_tools/qpack/qpack_offline_decoder.cc",
     "quiche/quic/test_tools/qpack/qpack_test_utils.cc",
     "quiche/quic/test_tools/quic_buffered_packet_store_peer.cc",
-    "quiche/quic/test_tools/quic_client_promised_info_peer.cc",
     "quiche/quic/test_tools/quic_coalesced_packet_peer.cc",
     "quiche/quic/test_tools/quic_config_peer.cc",
     "quiche/quic/test_tools/quic_connection_peer.cc",
diff --git a/quiche/quic/core/http/quic_client_promised_info.cc b/quiche/quic/core/http/quic_client_promised_info.cc
deleted file mode 100644
index bc1dabe..0000000
--- a/quiche/quic/core/http/quic_client_promised_info.cc
+++ /dev/null
@@ -1,123 +0,0 @@
-// Copyright (c) 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "quiche/quic/core/http/quic_client_promised_info.h"
-
-#include <string>
-#include <utility>
-
-#include "quiche/quic/core/http/spdy_server_push_utils.h"
-#include "quiche/quic/platform/api/quic_logging.h"
-#include "quiche/spdy/core/spdy_protocol.h"
-
-using spdy::Http2HeaderBlock;
-
-namespace quic {
-
-QuicClientPromisedInfo::QuicClientPromisedInfo(
-    QuicSpdyClientSessionBase* session, QuicStreamId id, std::string url)
-    : session_(session),
-      id_(id),
-      url_(std::move(url)),
-      client_request_delegate_(nullptr) {}
-
-QuicClientPromisedInfo::~QuicClientPromisedInfo() {
-  if (cleanup_alarm_ != nullptr) {
-    cleanup_alarm_->PermanentCancel();
-  }
-}
-
-void QuicClientPromisedInfo::CleanupAlarm::OnAlarm() {
-  QUIC_DVLOG(1) << "self GC alarm for stream " << promised_->id_;
-  promised_->session()->OnPushStreamTimedOut(promised_->id_);
-  promised_->Reset(QUIC_PUSH_STREAM_TIMED_OUT);
-}
-
-void QuicClientPromisedInfo::Init() {
-  cleanup_alarm_.reset(session_->connection()->alarm_factory()->CreateAlarm(
-      new QuicClientPromisedInfo::CleanupAlarm(this)));
-  cleanup_alarm_->Set(
-      session_->connection()->helper()->GetClock()->ApproximateNow() +
-      QuicTime::Delta::FromSeconds(kPushPromiseTimeoutSecs));
-}
-
-bool QuicClientPromisedInfo::OnPromiseHeaders(const Http2HeaderBlock& headers) {
-  // RFC7540, Section 8.2, requests MUST be safe [RFC7231], Section
-  // 4.2.1.  GET and HEAD are the methods that are safe and required.
-  Http2HeaderBlock::const_iterator it = headers.find(spdy::kHttp2MethodHeader);
-  if (it == headers.end()) {
-    QUIC_DVLOG(1) << "Promise for stream " << id_ << " has no method";
-    Reset(QUIC_INVALID_PROMISE_METHOD);
-    return false;
-  }
-  if (!(it->second == "GET" || it->second == "HEAD")) {
-    QUIC_DVLOG(1) << "Promise for stream " << id_ << " has invalid method "
-                  << it->second;
-    Reset(QUIC_INVALID_PROMISE_METHOD);
-    return false;
-  }
-  if (!SpdyServerPushUtils::PromisedUrlIsValid(headers)) {
-    QUIC_DVLOG(1) << "Promise for stream " << id_ << " has invalid URL "
-                  << url_;
-    Reset(QUIC_INVALID_PROMISE_URL);
-    return false;
-  }
-  if (!session_->IsAuthorized(
-          SpdyServerPushUtils::GetPromisedHostNameFromHeaders(headers))) {
-    Reset(QUIC_UNAUTHORIZED_PROMISE_URL);
-    return false;
-  }
-  request_headers_ = headers.Clone();
-  return true;
-}
-
-void QuicClientPromisedInfo::OnResponseHeaders(
-    const Http2HeaderBlock& headers) {
-  response_headers_ = std::make_unique<Http2HeaderBlock>(headers.Clone());
-  if (client_request_delegate_) {
-    // We already have a client request waiting.
-    FinalValidation();
-  }
-}
-
-void QuicClientPromisedInfo::Reset(QuicRstStreamErrorCode /*error_code*/) {
-  QuicClientPushPromiseIndex::Delegate* delegate = client_request_delegate_;
-  if (delegate) {
-    delegate->OnRendezvousResult(nullptr);
-  }
-}
-
-QuicAsyncStatus QuicClientPromisedInfo::FinalValidation() {
-  if (!client_request_delegate_->CheckVary(
-          client_request_headers_, request_headers_, *response_headers_)) {
-    Reset(QUIC_PROMISE_VARY_MISMATCH);
-    return QUIC_FAILURE;
-  }
-  return QUIC_SUCCESS;
-}
-
-QuicAsyncStatus QuicClientPromisedInfo::HandleClientRequest(
-    const Http2HeaderBlock& request_headers,
-    QuicClientPushPromiseIndex::Delegate* delegate) {
-  if (session_->IsClosedStream(id_)) {
-    return QUIC_FAILURE;
-  }
-
-  if (is_validating()) {
-    // The push promise has already been matched to another request though
-    // pending for validation. Returns QUIC_FAILURE to the caller as it couldn't
-    // match a new request any more. This will not affect the validation of the
-    // other request.
-    return QUIC_FAILURE;
-  }
-
-  client_request_delegate_ = delegate;
-  client_request_headers_ = request_headers.Clone();
-  if (response_headers_ == nullptr) {
-    return QUIC_PENDING;
-  }
-  return FinalValidation();
-}
-
-}  // namespace quic
diff --git a/quiche/quic/core/http/quic_client_promised_info.h b/quiche/quic/core/http/quic_client_promised_info.h
deleted file mode 100644
index 2adfc38..0000000
--- a/quiche/quic/core/http/quic_client_promised_info.h
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright (c) 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef QUICHE_QUIC_CORE_HTTP_QUIC_CLIENT_PROMISED_INFO_H_
-#define QUICHE_QUIC_CORE_HTTP_QUIC_CLIENT_PROMISED_INFO_H_
-
-#include <cstddef>
-#include <string>
-
-#include "quiche/quic/core/http/quic_client_push_promise_index.h"
-#include "quiche/quic/core/http/quic_spdy_client_session_base.h"
-#include "quiche/quic/core/http/quic_spdy_stream.h"
-#include "quiche/quic/core/quic_alarm.h"
-#include "quiche/quic/core/quic_packets.h"
-#include "quiche/quic/platform/api/quic_export.h"
-#include "quiche/spdy/core/http2_header_block.h"
-#include "quiche/spdy/core/spdy_framer.h"
-
-namespace quic {
-
-namespace test {
-class QuicClientPromisedInfoPeer;
-}  // namespace test
-
-// QuicClientPromisedInfo tracks the client state of a server push
-// stream from the time a PUSH_PROMISE is received until rendezvous
-// between the promised response and the corresponding client request
-// is complete.
-class QUICHE_EXPORT QuicClientPromisedInfo {
- public:
-  // Interface to QuicSpdyClientStream
-  QuicClientPromisedInfo(QuicSpdyClientSessionBase* session, QuicStreamId id,
-                         std::string url);
-  QuicClientPromisedInfo(const QuicClientPromisedInfo&) = delete;
-  QuicClientPromisedInfo& operator=(const QuicClientPromisedInfo&) = delete;
-  virtual ~QuicClientPromisedInfo();
-
-  void Init();
-
-  // Validate promise headers etc. Returns true if headers are valid.
-  bool OnPromiseHeaders(const spdy::Http2HeaderBlock& headers);
-
-  // Store response, possibly proceed with final validation.
-  void OnResponseHeaders(const spdy::Http2HeaderBlock& headers);
-
-  // Rendezvous between this promised stream and a client request that
-  // has a matching URL.
-  virtual QuicAsyncStatus HandleClientRequest(
-      const spdy::Http2HeaderBlock& headers,
-      QuicClientPushPromiseIndex::Delegate* delegate);
-
-  void Reset(QuicRstStreamErrorCode error_code);
-
-  // Client requests are initially associated to promises by matching
-  // URL in the client request against the URL in the promise headers,
-  // uing the |promised_by_url| map.  The push can be cross-origin, so
-  // the client should validate that the session is authoritative for
-  // the promised URL.  If not, it should call |RejectUnauthorized|.
-  QuicSpdyClientSessionBase* session() { return session_; }
-
-  // If the promised response contains Vary header, then the fields
-  // specified by Vary must match between the client request header
-  // and the promise headers (see https://crbug.com//554220).  Vary
-  // validation requires the response headers (for the actual Vary
-  // field list), the promise headers (taking the role of the "cached"
-  // request), and the client request headers.
-  spdy::Http2HeaderBlock* request_headers() { return &request_headers_; }
-
-  spdy::Http2HeaderBlock* response_headers() { return response_headers_.get(); }
-
-  // After validation, client will use this to access the pushed stream.
-
-  QuicStreamId id() const { return id_; }
-
-  const std::string url() const { return url_; }
-
-  // Return true if there's a request pending matching this push promise.
-  bool is_validating() const { return client_request_delegate_ != nullptr; }
-
- private:
-  friend class test::QuicClientPromisedInfoPeer;
-
-  class QUICHE_EXPORT CleanupAlarm : public QuicAlarm::DelegateWithoutContext {
-   public:
-    explicit CleanupAlarm(QuicClientPromisedInfo* promised)
-        : promised_(promised) {}
-
-    void OnAlarm() override;
-
-    QuicClientPromisedInfo* promised_;
-  };
-
-  QuicAsyncStatus FinalValidation();
-
-  QuicSpdyClientSessionBase* session_;
-  QuicStreamId id_;
-  std::string url_;
-  spdy::Http2HeaderBlock request_headers_;
-  std::unique_ptr<spdy::Http2HeaderBlock> response_headers_;
-  spdy::Http2HeaderBlock client_request_headers_;
-  QuicClientPushPromiseIndex::Delegate* client_request_delegate_;
-
-  // The promise will commit suicide eventually if it is not claimed by a GET
-  // first.
-  std::unique_ptr<QuicAlarm> cleanup_alarm_;
-};
-
-}  // namespace quic
-
-#endif  // QUICHE_QUIC_CORE_HTTP_QUIC_CLIENT_PROMISED_INFO_H_
diff --git a/quiche/quic/test_tools/mock_quic_client_promised_info.cc b/quiche/quic/test_tools/mock_quic_client_promised_info.cc
deleted file mode 100644
index 6729819..0000000
--- a/quiche/quic/test_tools/mock_quic_client_promised_info.cc
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "quiche/quic/test_tools/mock_quic_client_promised_info.h"
-
-namespace quic {
-namespace test {
-
-MockQuicClientPromisedInfo::MockQuicClientPromisedInfo(
-    QuicSpdyClientSessionBase* session, QuicStreamId id, std::string url)
-    : QuicClientPromisedInfo(session, id, url) {}
-
-MockQuicClientPromisedInfo::~MockQuicClientPromisedInfo() {}
-
-}  // namespace test
-}  // namespace quic
diff --git a/quiche/quic/test_tools/mock_quic_client_promised_info.h b/quiche/quic/test_tools/mock_quic_client_promised_info.h
deleted file mode 100644
index acaefef..0000000
--- a/quiche/quic/test_tools/mock_quic_client_promised_info.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef QUICHE_QUIC_TEST_TOOLS_MOCK_QUIC_CLIENT_PROMISED_INFO_H_
-#define QUICHE_QUIC_TEST_TOOLS_MOCK_QUIC_CLIENT_PROMISED_INFO_H_
-
-#include <string>
-
-#include "quiche/quic/core/http/quic_client_promised_info.h"
-#include "quiche/quic/core/quic_packets.h"
-#include "quiche/quic/platform/api/quic_test.h"
-#include "quiche/spdy/core/http2_header_block.h"
-
-namespace quic {
-namespace test {
-
-class MockQuicClientPromisedInfo : public QuicClientPromisedInfo {
- public:
-  MockQuicClientPromisedInfo(QuicSpdyClientSessionBase* session,
-                             QuicStreamId id, std::string url);
-  ~MockQuicClientPromisedInfo() override;
-
-  MOCK_METHOD(QuicAsyncStatus, HandleClientRequest,
-              (const spdy::Http2HeaderBlock& headers,
-               QuicClientPushPromiseIndex::Delegate*),
-              (override));
-};
-
-}  // namespace test
-}  // namespace quic
-
-#endif  // QUICHE_QUIC_TEST_TOOLS_MOCK_QUIC_CLIENT_PROMISED_INFO_H_
diff --git a/quiche/quic/test_tools/quic_client_promised_info_peer.cc b/quiche/quic/test_tools/quic_client_promised_info_peer.cc
deleted file mode 100644
index 5ea080c..0000000
--- a/quiche/quic/test_tools/quic_client_promised_info_peer.cc
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "quiche/quic/test_tools/quic_client_promised_info_peer.h"
-
-namespace quic {
-namespace test {
-
-// static
-QuicAlarm* QuicClientPromisedInfoPeer::GetAlarm(
-    QuicClientPromisedInfo* promised_stream) {
-  return promised_stream->cleanup_alarm_.get();
-}
-
-}  // namespace test
-}  // namespace quic
diff --git a/quiche/quic/test_tools/quic_client_promised_info_peer.h b/quiche/quic/test_tools/quic_client_promised_info_peer.h
deleted file mode 100644
index 596200b..0000000
--- a/quiche/quic/test_tools/quic_client_promised_info_peer.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef QUICHE_QUIC_TEST_TOOLS_QUIC_CLIENT_PROMISED_INFO_PEER_H_
-#define QUICHE_QUIC_TEST_TOOLS_QUIC_CLIENT_PROMISED_INFO_PEER_H_
-
-#include "quiche/quic/core/http/quic_client_promised_info.h"
-
-namespace quic {
-namespace test {
-
-class QuicClientPromisedInfoPeer {
- public:
-  QuicClientPromisedInfoPeer() = delete;
-
-  static QuicAlarm* GetAlarm(QuicClientPromisedInfo* promised_stream);
-};
-}  // namespace test
-}  // namespace quic
-
-#endif  // QUICHE_QUIC_TEST_TOOLS_QUIC_CLIENT_PROMISED_INFO_PEER_H_
