cef/patch/patches/net_filter_515.patch

41 lines
1.5 KiB
Diff

diff --git net/base/network_delegate.h net/base/network_delegate.h
index 22c428f90b16..1e0e6deaa7df 100644
--- net/base/network_delegate.h
+++ net/base/network_delegate.h
@@ -16,6 +16,7 @@
#include "net/base/completion_callback.h"
#include "net/base/net_export.h"
#include "net/cookies/canonical_cookie.h"
+#include "net/filter/source_stream.h"
#include "net/proxy/proxy_retry_info.h"
class GURL;
@@ -124,6 +125,10 @@ class NET_EXPORT NetworkDelegate {
bool CanUseReportingClient(const url::Origin& origin,
const GURL& endpoint) const;
+ virtual std::unique_ptr<SourceStream> CreateSourceStream(
+ net::URLRequest* request,
+ std::unique_ptr<SourceStream> upstream) { return upstream; }
+
protected:
THREAD_CHECKER(thread_checker_);
diff --git net/url_request/url_request_job.cc net/url_request/url_request_job.cc
index 25e971d7e6bc..2d14710ed4fe 100644
--- net/url_request/url_request_job.cc
+++ net/url_request/url_request_job.cc
@@ -447,6 +447,12 @@ void URLRequestJob::NotifyHeadersComplete() {
DCHECK(!source_stream_);
source_stream_ = SetUpSourceStream();
+ // Allow the delegate to add a downstream SourceStream for filtering.
+ if (network_delegate_ && source_stream_) {
+ source_stream_ = network_delegate_->CreateSourceStream(
+ request_, std::move(source_stream_));
+ }
+
if (!source_stream_) {
OnDone(URLRequestStatus(URLRequestStatus::FAILED,
ERR_CONTENT_DECODING_INIT_FAILED),