Index: Source/core/dom/Document.cpp |
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp |
index 8668dd20dee17af73c1de393abae62a90f05e65d..51aa6b792f9c514ff2ba5857f3e05e400fca42c6 100644 |
--- a/Source/core/dom/Document.cpp |
+++ b/Source/core/dom/Document.cpp |
@@ -3153,20 +3153,13 @@ void Document::updateViewportDescription() |
void Document::processReferrerPolicy(const String& policy) |
{ |
- ASSERT(!policy.isNull()); |
- |
- if (equalIgnoringCase(policy, "no-referrer") || equalIgnoringCase(policy, "never")) |
- setReferrerPolicy(ReferrerPolicyNever); |
- else if (equalIgnoringCase(policy, "unsafe-url") || equalIgnoringCase(policy, "always")) |
- setReferrerPolicy(ReferrerPolicyAlways); |
- else if (equalIgnoringCase(policy, "origin")) |
- setReferrerPolicy(ReferrerPolicyOrigin); |
- else if (equalIgnoringCase(policy, "origin-when-cross-origin") || equalIgnoringCase(policy, "origin-when-crossorigin")) |
- setReferrerPolicy(ReferrerPolicyOriginWhenCrossOrigin); |
- else if (equalIgnoringCase(policy, "no-referrer-when-downgrade") || equalIgnoringCase(policy, "default")) |
- setReferrerPolicy(ReferrerPolicyNoReferrerWhenDowngrade); |
- else |
+ ReferrerPolicy referrerPolicy; |
+ if (!SecurityPolicy::referrerPolicyFromString(policy, &referrerPolicy)) { |
addConsoleMessage(ConsoleMessage::create(RenderingMessageSource, ErrorMessageLevel, "Failed to set referrer policy: The value '" + policy + "' is not one of 'always', 'default', 'never', 'no-referrer', 'no-referrer-when-downgrade', 'origin', 'origin-when-crossorigin', or 'unsafe-url'. This document's referrer policy has been left unchanged.")); |
+ return; |
+ } |
+ |
+ setReferrerPolicy(referrerPolicy); |
} |
String Document::outgoingReferrer() |