| Index: net/quic/chromium/quic_chromium_client_session.cc
 | 
| diff --git a/net/quic/chromium/quic_chromium_client_session.cc b/net/quic/chromium/quic_chromium_client_session.cc
 | 
| index 72fab95b2afcbfa5ccf40224efec042b2cd9cff1..ec2dd231ca00a6080566eb7e50fc9b4cb767bd4d 100644
 | 
| --- a/net/quic/chromium/quic_chromium_client_session.cc
 | 
| +++ b/net/quic/chromium/quic_chromium_client_session.cc
 | 
| @@ -31,6 +31,7 @@
 | 
|  #include "net/quic/core/quic_client_promised_info.h"
 | 
|  #include "net/quic/core/quic_crypto_client_stream_factory.h"
 | 
|  #include "net/quic/core/spdy_utils.h"
 | 
| +#include "net/spdy/push_promise_helper.h"
 | 
|  #include "net/spdy/spdy_session.h"
 | 
|  #include "net/ssl/channel_id_service.h"
 | 
|  #include "net/ssl/ssl_connection_status_flags.h"
 | 
| @@ -162,6 +163,26 @@ class HpackDecoderDebugVisitor : public QuicHeadersStream::HpackDebugVisitor {
 | 
|    }
 | 
|  };
 | 
|  
 | 
| +class QuicPushPromiseHelper : public PushPromiseHelper {
 | 
| + public:
 | 
| +  explicit QuicPushPromiseHelper(
 | 
| +      base::WeakPtr<QuicChromiumClientSession> session,
 | 
| +      const GURL& url)
 | 
| +      : session_(session), request_url_(url) {}
 | 
| +
 | 
| +  void Cancel() override {
 | 
| +    if (session_) {
 | 
| +      session_->CancelPush(request_url_);
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  const GURL& GetURL() override { return request_url_; }
 | 
| +
 | 
| + private:
 | 
| +  base::WeakPtr<QuicChromiumClientSession> session_;
 | 
| +  const GURL request_url_;
 | 
| +};
 | 
| +
 | 
|  }  // namespace
 | 
|  
 | 
|  QuicChromiumClientSession::StreamRequest::StreamRequest() : stream_(nullptr) {}
 | 
| 
 |