Chromium Code Reviews| Index: content/child/resource_dispatcher.cc |
| diff --git a/content/child/resource_dispatcher.cc b/content/child/resource_dispatcher.cc |
| index b57d26c4bff547f1711fed29686b716660eddb40..d3f31f5c500ca0485a8fb793960c64d13bf92104 100644 |
| --- a/content/child/resource_dispatcher.cc |
| +++ b/content/child/resource_dispatcher.cc |
| @@ -756,16 +756,6 @@ scoped_ptr<ResourceHostMsg_Request> ResourceDispatcher::CreateRequest( |
| request->enable_upload_progress = request_info.enable_upload_progress; |
| request->do_not_prompt_for_login = request_info.do_not_prompt_for_login; |
| - if ((request_info.referrer.policy == blink::WebReferrerPolicyDefault || |
| - request_info.referrer.policy == |
| - blink::WebReferrerPolicyNoReferrerWhenDowngrade) && |
| - request_info.referrer.url.SchemeIsCryptographic() && |
| - !request_info.url.SchemeIsCryptographic()) { |
| - LOG(FATAL) << "Trying to send secure referrer for insecure request " |
| - << "without an appropriate referrer policy.\n" |
| - << "URL = " << request_info.url << "\n" |
| - << "Referrer = " << request_info.referrer.url; |
| - } |
| const RequestExtraData kEmptyData; |
| const RequestExtraData* extra_data; |
| @@ -773,6 +763,20 @@ scoped_ptr<ResourceHostMsg_Request> ResourceDispatcher::CreateRequest( |
| extra_data = static_cast<RequestExtraData*>(request_info.extra_data); |
| else |
| extra_data = &kEmptyData; |
| + |
| + if (extra_data->navigation_provider_id() == kInvalidServiceWorkerProviderId) { |
| + if ((request_info.referrer.policy == blink::WebReferrerPolicyDefault || |
|
michaeln
2015/07/30 01:35:08
Would it make sense to explicitly use a different
nasko
2015/08/07 17:51:11
What is the rationale for that? There should be no
|
| + request_info.referrer.policy == |
| + blink::WebReferrerPolicyNoReferrerWhenDowngrade) && |
| + request_info.referrer.url.SchemeIsCryptographic() && |
| + !request_info.url.SchemeIsCryptographic()) { |
| + LOG(FATAL) << "Trying to send secure referrer for insecure request " |
| + << "without an appropriate referrer policy.\n" |
| + << "URL = " << request_info.url << "\n" |
| + << "Referrer = " << request_info.referrer.url; |
| + } |
| + } |
| + |
| request->visiblity_state = extra_data->visibility_state(); |
| request->render_frame_id = extra_data->render_frame_id(); |
| request->is_main_frame = extra_data->is_main_frame(); |
| @@ -791,6 +795,10 @@ scoped_ptr<ResourceHostMsg_Request> ResourceDispatcher::CreateRequest( |
| request->request_body = request_body; |
| if (frame_origin) |
| *frame_origin = extra_data->frame_origin(); |
| + |
| + // PlzNavigate: Hack to avoid the referrer check failure in browser process. |
|
nasko
2015/08/07 17:51:11
What is this failure?
|
| + if (extra_data->navigation_provider_id() != kInvalidServiceWorkerProviderId) |
| + request->referrer = GURL(); |
| return request.Pass(); |
| } |