Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1042)

Unified Diff: Source/core/loader/FrameLoader.cpp

Issue 1148603002: Anchor element's referrer attribute implementation for Referrer Policy Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fails for right-click opening (new window/tab, etc.) Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/loader/FrameLoader.cpp
diff --git a/Source/core/loader/FrameLoader.cpp b/Source/core/loader/FrameLoader.cpp
index 313ba04b94a5bb3f6f4d5ae504f6bdea54c21134..23b32a72fdf4ba47f85ff6de13a1e11304d369a4 100644
--- a/Source/core/loader/FrameLoader.cpp
+++ b/Source/core/loader/FrameLoader.cpp
@@ -629,7 +629,7 @@ void FrameLoader::loadInSameDocument(const KURL& url, PassRefPtr<SerializedScrip
m_frame->localDOMWindow()->statePopped(stateObject ? stateObject : SerializedScriptValue::nullValue());
}
-void FrameLoader::setReferrerForFrameRequest(ResourceRequest& request, ShouldSendReferrer shouldSendReferrer, Document* originDocument)
+void FrameLoader::setReferrerForFrameRequest(ResourceRequest& request, ReferrerPolicy referrerPolicy, Document* originDocument)
{
if (!originDocument)
return;
@@ -637,13 +637,13 @@ void FrameLoader::setReferrerForFrameRequest(ResourceRequest& request, ShouldSen
// that both determines its own referrer and expects to be associated with an originDocument.
if (!request.httpReferrer().isEmpty())
return;
- if (shouldSendReferrer == NeverSendReferrer)
+ if (referrerPolicy == ReferrerPolicyNever)
return;
// Always use the initiating document to generate the referrer.
// We need to generateReferrer(), because we haven't enforced ReferrerPolicy or https->http
// referrer suppression yet.
- Referrer referrer = SecurityPolicy::generateReferrer(originDocument->referrerPolicy(), request.url(), originDocument->outgoingReferrer());
+ Referrer referrer = SecurityPolicy::generateReferrer(referrerPolicy, request.url(), originDocument->outgoingReferrer());
request.setHTTPReferrer(referrer);
RefPtr<SecurityOrigin> referrerOrigin = SecurityOrigin::createFromString(referrer.referrer);
@@ -788,7 +788,7 @@ void FrameLoader::load(const FrameLoadRequest& passedRequest)
return;
}
- setReferrerForFrameRequest(request.resourceRequest(), request.shouldSendReferrer(), request.originDocument());
+ setReferrerForFrameRequest(request.resourceRequest(), request.referrerPolicyForRequest(), request.originDocument());
Mike West 2015/05/20 07:56:41 I don't think it's the case that you're consistent
burnik 2015/05/20 08:27:56 If we replace MaybeSendReferrer with ReferrerPolic
FrameLoadType newLoadType = determineFrameLoadType(request);
NavigationPolicy policy = navigationPolicyForRequest(request);
@@ -797,7 +797,7 @@ void FrameLoader::load(const FrameLoadRequest& passedRequest)
client()->loadURLExternally(request.resourceRequest(), NavigationPolicyDownload);
} else {
request.resourceRequest().setFrameType(WebURLRequest::FrameTypeAuxiliary);
- createWindowForRequest(request, *m_frame, policy, request.shouldSendReferrer());
+ createWindowForRequest(request, *m_frame, policy, request.referrerPolicyForRequest());
}
return;
}

Powered by Google App Engine
This is Rietveld 408576698