2016-11-23 21:54:29 +01:00
|
|
|
diff --git net/base/network_delegate.h net/base/network_delegate.h
|
2017-09-06 23:40:58 +02:00
|
|
|
index 22d22d03554a..c9a1c6df8f1b 100644
|
2016-11-23 21:54:29 +01:00
|
|
|
--- 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;
|
2017-07-27 01:19:27 +02:00
|
|
|
@@ -124,6 +125,10 @@ class NET_EXPORT NetworkDelegate {
|
2017-05-31 17:33:30 +02:00
|
|
|
bool CanUseReportingClient(const url::Origin& origin,
|
|
|
|
const GURL& endpoint) const;
|
2015-12-05 03:58:56 +01:00
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
+ virtual std::unique_ptr<SourceStream> CreateSourceStream(
|
|
|
|
+ net::URLRequest* request,
|
|
|
|
+ std::unique_ptr<SourceStream> upstream) { return upstream; }
|
2015-12-05 03:58:56 +01:00
|
|
|
+
|
2017-07-27 01:19:27 +02:00
|
|
|
protected:
|
|
|
|
THREAD_CHECKER(thread_checker_);
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
diff --git net/url_request/url_request_job.cc net/url_request/url_request_job.cc
|
2017-09-06 23:40:58 +02:00
|
|
|
index 9112c4467cb2..4298ab28eab1 100644
|
2016-11-23 21:54:29 +01:00
|
|
|
--- net/url_request/url_request_job.cc
|
|
|
|
+++ net/url_request/url_request_job.cc
|
2017-09-06 23:40:58 +02:00
|
|
|
@@ -531,6 +531,12 @@ void URLRequestJob::NotifyHeadersComplete() {
|
2016-11-23 21:54:29 +01:00
|
|
|
DCHECK(!source_stream_);
|
|
|
|
source_stream_ = SetUpSourceStream();
|
2015-12-05 03:58:56 +01:00
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
+ // 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_));
|
|
|
|
+ }
|
2015-12-05 03:58:56 +01:00
|
|
|
+
|
2016-11-23 21:54:29 +01:00
|
|
|
if (!source_stream_) {
|
2017-01-23 18:36:54 +01:00
|
|
|
OnDone(URLRequestStatus(URLRequestStatus::FAILED,
|
|
|
|
ERR_CONTENT_DECODING_INIT_FAILED),
|