| Index: content/child/web_url_loader_impl.cc | 
| diff --git a/content/child/web_url_loader_impl.cc b/content/child/web_url_loader_impl.cc | 
| index 7f2fcf35b44aae2e80712f97f8bfbafa5b24359e..e2207181241c599db0036745b3d2054bb1c1622a 100644 | 
| --- a/content/child/web_url_loader_impl.cc | 
| +++ b/content/child/web_url_loader_impl.cc | 
| @@ -36,6 +36,7 @@ | 
| #include "content/common/resource_request_body_impl.h" | 
| #include "content/common/service_worker/service_worker_types.h" | 
| #include "content/common/ssl_status_serialization.h" | 
| +#include "content/common/url_loader.mojom.h" | 
| #include "content/public/child/fixed_received_data.h" | 
| #include "content/public/child/request_peer.h" | 
| #include "content/public/common/browser_side_navigation_policy.h" | 
| @@ -306,7 +307,8 @@ class WebURLLoaderImpl::Context : public base::RefCounted<Context> { | 
|  | 
| Context(WebURLLoaderImpl* loader, | 
| ResourceDispatcher* resource_dispatcher, | 
| -          std::unique_ptr<blink::WebTaskRunner> task_runner); | 
| +          std::unique_ptr<blink::WebTaskRunner> task_runner, | 
| +          mojom::URLLoaderFactory* factory); | 
|  | 
| WebURLLoaderClient* client() const { return client_; } | 
| void set_client(WebURLLoaderClient* client) { client_ = client; } | 
| @@ -368,6 +370,8 @@ class WebURLLoaderImpl::Context : public base::RefCounted<Context> { | 
| enum DeferState {NOT_DEFERRING, SHOULD_DEFER, DEFERRED_DATA}; | 
| DeferState defers_loading_; | 
| int request_id_; | 
| + | 
| +  mojom::URLLoaderFactory* url_loader_factory_; | 
| }; | 
|  | 
| // A thin wrapper class for Context to ensure its lifetime while it is | 
| @@ -402,14 +406,16 @@ class WebURLLoaderImpl::RequestPeerImpl : public RequestPeer { | 
| WebURLLoaderImpl::Context::Context( | 
| WebURLLoaderImpl* loader, | 
| ResourceDispatcher* resource_dispatcher, | 
| -    std::unique_ptr<blink::WebTaskRunner> web_task_runner) | 
| +    std::unique_ptr<blink::WebTaskRunner> web_task_runner, | 
| +    mojom::URLLoaderFactory* url_loader_factory) | 
| : loader_(loader), | 
| client_(NULL), | 
| resource_dispatcher_(resource_dispatcher), | 
| web_task_runner_(std::move(web_task_runner)), | 
| referrer_policy_(blink::WebReferrerPolicyDefault), | 
| defers_loading_(NOT_DEFERRING), | 
| -      request_id_(-1) {} | 
| +      request_id_(-1), | 
| +      url_loader_factory_(url_loader_factory) {} | 
|  | 
| void WebURLLoaderImpl::Context::Cancel() { | 
| TRACE_EVENT_WITH_FLOW0("loading", "WebURLLoaderImpl::Context::Cancel", this, | 
| @@ -567,7 +573,8 @@ void WebURLLoaderImpl::Context::Start(const WebURLRequest& request, | 
| if (sync_load_response) { | 
| DCHECK(defers_loading_ == NOT_DEFERRING); | 
| resource_dispatcher_->StartSync( | 
| -        request_info, request_body.get(), sync_load_response); | 
| +        request_info, request_body.get(), sync_load_response, | 
| +        request.getLoadingIPCType(), url_loader_factory_); | 
| return; | 
| } | 
|  | 
| @@ -575,7 +582,8 @@ void WebURLLoaderImpl::Context::Start(const WebURLRequest& request, | 
| TRACE_EVENT_FLAG_FLOW_OUT); | 
| request_id_ = resource_dispatcher_->StartAsync( | 
| request_info, request_body.get(), | 
| -      base::WrapUnique(new WebURLLoaderImpl::RequestPeerImpl(this))); | 
| +      base::WrapUnique(new WebURLLoaderImpl::RequestPeerImpl(this)), | 
| +      request.getLoadingIPCType(), url_loader_factory_); | 
|  | 
| if (defers_loading_ != NOT_DEFERRING) | 
| resource_dispatcher_->SetDefersLoading(request_id_, true); | 
| @@ -948,9 +956,12 @@ void WebURLLoaderImpl::RequestPeerImpl::OnCompletedRequest( | 
|  | 
| WebURLLoaderImpl::WebURLLoaderImpl( | 
| ResourceDispatcher* resource_dispatcher, | 
| -    std::unique_ptr<blink::WebTaskRunner> web_task_runner) | 
| -    : context_( | 
| -          new Context(this, resource_dispatcher, std::move(web_task_runner))) {} | 
| +    std::unique_ptr<blink::WebTaskRunner> web_task_runner, | 
| +    mojom::URLLoaderFactory* url_loader_factory) | 
| +    : context_(new Context(this, | 
| +                           resource_dispatcher, | 
| +                           std::move(web_task_runner), | 
| +                           url_loader_factory)) {} | 
|  | 
| WebURLLoaderImpl::~WebURLLoaderImpl() { | 
| cancel(); | 
|  |