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)); |
} |