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) {} |