| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index 2f79ac027a3144ba9006282e9f8b529ea2d58d43..a957f2ceca47ed02b4d21e8ce25dc6cb1360943f 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -3223,9 +3223,18 @@ void RenderFrameImpl::loadURLExternally(const blink::WebURLRequest& request,
|
| bool should_replace_current_entry) {
|
| Referrer referrer(RenderViewImpl::GetReferrerFromRequest(frame_, request));
|
| if (policy == blink::WebNavigationPolicyDownload) {
|
| - Send(new FrameHostMsg_DownloadUrl(render_view_->GetRoutingID(),
|
| - GetRoutingID(), request.url(), referrer,
|
| - suggested_name));
|
| + ServiceWorkerNetworkProvider* provider =
|
| + ServiceWorkerNetworkProvider::FromDocumentState(
|
| + DocumentState::FromDataSource(frame_->dataSource()));
|
| + DCHECK(provider);
|
| + FrameHostMsg_DownloadUrl_Params params;
|
| + params.render_view_id = render_view_->GetRoutingID();
|
| + params.render_frame_id = GetRoutingID();
|
| + params.service_worker_provider_id = provider->provider_id();
|
| + params.url = request.url();
|
| + params.referrer = referrer;
|
| + params.suggested_name = suggested_name;
|
| + Send(new FrameHostMsg_DownloadUrl(params));
|
| } else {
|
| OpenURL(request.url(), IsHttpPost(request),
|
| GetRequestBodyForWebURLRequest(request),
|
|
|