PKGBUILDs/extra/chromium/chromium-use-correct-referrer-policy.patch
2014-09-13 22:19:20 +00:00

32 lines
1.7 KiB
Diff

Index: Source/core/loader/FrameFetchContext.cpp
diff --git a/Source/core/loader/FrameFetchContext.cpp b/Source/core/loader/FrameFetchContext.cpp
index 568016488c89ed1360a5158240120be5e958e963..5604f912d567f54875724432e5262c8748c5b749 100644
--- a/Source/core/loader/FrameFetchContext.cpp
+++ b/Source/core/loader/FrameFetchContext.cpp
@@ -61,20 +61,23 @@ void FrameFetchContext::addAdditionalRequestHeaders(Document* document, Resource
bool isMainResource = type == FetchMainResource;
if (!isMainResource) {
String outgoingReferrer;
+ ReferrerPolicy referrerPolicy;
String outgoingOrigin;
if (request.httpReferrer().isNull()) {
outgoingReferrer = document->outgoingReferrer();
+ referrerPolicy = document->referrerPolicy();
outgoingOrigin = document->outgoingOrigin();
} else {
outgoingReferrer = request.httpReferrer();
+ referrerPolicy = request.referrerPolicy();
outgoingOrigin = SecurityOrigin::createFromString(outgoingReferrer)->toString();
}
- outgoingReferrer = SecurityPolicy::generateReferrerHeader(document->referrerPolicy(), request.url(), outgoingReferrer);
+ outgoingReferrer = SecurityPolicy::generateReferrerHeader(referrerPolicy, request.url(), outgoingReferrer);
if (outgoingReferrer.isEmpty())
request.clearHTTPReferrer();
- else if (!request.httpReferrer())
- request.setHTTPReferrer(Referrer(outgoingReferrer, document->referrerPolicy()));
+ else
+ request.setHTTPReferrer(Referrer(outgoingReferrer, referrerPolicy));
request.addHTTPOriginIfNeeded(AtomicString(outgoingOrigin));
}