| 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..c1bb6104da985ef8631975cc329c0529f099c14a 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -412,17 +412,23 @@ WebURLRequest CreateURLRequestForNavigation(
|
| if (is_view_source_mode_enabled)
|
| request.SetCachePolicy(WebCachePolicy::kReturnCacheDataElseLoad);
|
|
|
| + WebString web_referrer;
|
| if (common_params.referrer.url.is_valid()) {
|
| - WebString web_referrer = WebSecurityPolicy::GenerateReferrerHeader(
|
| + web_referrer = WebSecurityPolicy::GenerateReferrerHeader(
|
| common_params.referrer.policy, common_params.url,
|
| WebString::FromUTF8(common_params.referrer.url.spec()));
|
| + request.SetHTTPReferrer(web_referrer, common_params.referrer.policy);
|
| if (!web_referrer.IsEmpty()) {
|
| - request.SetHTTPReferrer(web_referrer, common_params.referrer.policy);
|
| request.AddHTTPOriginIfNeeded(
|
| WebSecurityOrigin(url::Origin(common_params.referrer.url)));
|
| }
|
| }
|
|
|
| + if (!web_referrer.IsEmpty() ||
|
| + common_params.referrer.policy != blink::kWebReferrerPolicyDefault) {
|
| + request.SetHTTPReferrer(web_referrer, common_params.referrer.policy);
|
| + }
|
| +
|
| request.SetIsSameDocumentNavigation(is_same_document_navigation);
|
| request.SetPreviewsState(
|
| static_cast<WebURLRequest::PreviewsState>(common_params.previews_state));
|
|
|