Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 9a8d0e84e6791203c525d5874c96bfda1af37a74..fec590b2cf78302c2e9db1087baff2efe863a005 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -4310,7 +4310,18 @@ void RenderFrameImpl::WillSendRequest(blink::WebURLRequest& request) { |
} |
} |
- extra_data->set_url_loader_factory_override(url_loader_factory_.get()); |
+ // TODO: generalize how non-network schemes are sent to the renderer and used. |
kinuko
2017/06/07 04:58:35
Filed a bug- crbug.com/730338
|
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnableNetworkService)) { |
+ if (request.Url().ProtocolIs(url::kBlobScheme)) { |
+ extra_data->set_url_loader_factory_override( |
+ RenderThreadImpl::current()->GetBlobURLLoaderFactory()); |
+ } |
+ } |
+ |
+ if (!extra_data->url_loader_factory_override()) |
+ extra_data->set_url_loader_factory_override(url_loader_factory_.get()); |
+ |
// TODO(kinuko, yzshen): We need to set up throttles for some worker cases |
// that don't go through here. |
extra_data->set_url_loader_throttles(std::move(throttles)); |