Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index efb2ed78b69b10f4b61a6bf7ffcc76b1632f185e..8e7b8b3939ab9d1de87de315ca90722e519144f5 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -389,20 +389,11 @@ void RenderViewImpl::GetRedirectChain(WebDataSource* ds, |
} |
// static |
-WebReferrerPolicy RenderViewImpl::GetReferrerPolicyFromRequest( |
- WebFrame* frame, |
- const WebURLRequest& request) { |
- return request.extraData() ? |
- static_cast<RequestExtraData*>(request.extraData())->referrer_policy() : |
- frame->document().referrerPolicy(); |
-} |
- |
-// static |
Referrer RenderViewImpl::GetReferrerFromRequest( |
WebFrame* frame, |
const WebURLRequest& request) { |
return Referrer(GURL(request.httpHeaderField(WebString::fromUTF8("Referer"))), |
- GetReferrerPolicyFromRequest(frame, request)); |
+ request.referrerPolicy()); |
} |
// static |
@@ -1483,7 +1474,7 @@ void RenderViewImpl::OnNavigate(const ViewMsg_Navigate_Params& params) { |
params.url, |
WebString::fromUTF8(params.referrer.url.spec())); |
if (!referrer.isEmpty()) |
- request.setHTTPHeaderField(WebString::fromUTF8("Referer"), referrer); |
+ request.setHTTPReferrer(referrer, params.referrer.policy); |
} |
if (!params.extra_headers.empty()) { |
@@ -1959,8 +1950,8 @@ void RenderViewImpl::UpdateURL(WebFrame* frame) { |
// If the page contained a client redirect (meta refresh, document.loc...), |
// set the referrer and transition appropriately. |
if (ds->isClientRedirect()) { |
- params.referrer = Referrer(params.redirects[0], |
- GetReferrerPolicyFromRequest(frame, ds->request())); |
+ params.referrer = |
+ Referrer(params.redirects[0], ds->request().referrerPolicy()); |
params.transition = static_cast<PageTransition>( |
params.transition | PAGE_TRANSITION_CLIENT_REDIRECT); |
} else { |
@@ -3414,7 +3405,6 @@ void RenderViewImpl::PopulateDocumentStateFromPending( |
else |
document_state->set_load_type(DocumentState::NORMAL_LOAD); |
- internal_data->set_referrer_policy(params.referrer.policy); |
internal_data->set_is_overriding_user_agent(params.is_overriding_user_agent); |
internal_data->set_must_reset_scroll_and_scale_state( |
params.navigation_type == |
@@ -3499,7 +3489,6 @@ void RenderViewImpl::didCommitProvisionalLoad(WebFrame* frame, |
internal_data->set_must_reset_scroll_and_scale_state(false); |
} |
internal_data->set_use_error_page(false); |
- internal_data->clear_referrer_policy(); |
if (is_new_navigation) { |
// When we perform a new navigation, we need to update the last committed |