Add back support for "none" referrer policy
It's a legacy keyword that was accidentially removed
BUG=615608
R=estark@chromium.org
Change-Id: I1bf4d87d999f35b30beca644b4dec6712ac2d388
Reviewed-on: https://chromium-review.googlesource.com/772234
Reviewed-by: Mike West <mkwst@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517114}
diff --git a/third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp b/third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp
index e0fe4d0..72819a7 100644
--- a/third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp
+++ b/third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp
@@ -284,7 +284,8 @@
(legacy_keywords_support == kSupportReferrerPolicyLegacyKeywords);
if (EqualIgnoringASCIICase(policy, "no-referrer") ||
- (support_legacy_keywords && EqualIgnoringASCIICase(policy, "never"))) {
+ (support_legacy_keywords && (EqualIgnoringASCIICase(policy, "never") ||
+ EqualIgnoringASCIICase(policy, "none")))) {
*result = kReferrerPolicyNever;
return true;
}
diff --git a/third_party/WebKit/Source/platform/weborigin/SecurityPolicyTest.cpp b/third_party/WebKit/Source/platform/weborigin/SecurityPolicyTest.cpp
index 6f7094c..32dfcd6 100644
--- a/third_party/WebKit/Source/platform/weborigin/SecurityPolicyTest.cpp
+++ b/third_party/WebKit/Source/platform/weborigin/SecurityPolicyTest.cpp
@@ -213,23 +213,31 @@
struct TestCase {
const char* header;
bool is_valid;
+ ReferrerPolicyLegacyKeywordsSupport keywords;
ReferrerPolicy expected_policy;
};
TestCase inputs[] = {
- {"origin", true, kReferrerPolicyOrigin},
- {"foo", false, kReferrerPolicyDefault},
- {"origin, foo", true, kReferrerPolicyOrigin},
- {"origin, foo-bar", true, kReferrerPolicyOrigin},
- {"origin, foo bar", false, kReferrerPolicyDefault},
+ {"origin", true, kDoNotSupportReferrerPolicyLegacyKeywords,
+ kReferrerPolicyOrigin},
+ {"none", true, kSupportReferrerPolicyLegacyKeywords,
+ kReferrerPolicyNever},
+ {"none", false, kDoNotSupportReferrerPolicyLegacyKeywords,
+ kReferrerPolicyDefault},
+ {"foo", false, kDoNotSupportReferrerPolicyLegacyKeywords,
+ kReferrerPolicyDefault},
+ {"origin, foo", true, kDoNotSupportReferrerPolicyLegacyKeywords,
+ kReferrerPolicyOrigin},
+ {"origin, foo-bar", true, kDoNotSupportReferrerPolicyLegacyKeywords,
+ kReferrerPolicyOrigin},
+ {"origin, foo bar", false, kDoNotSupportReferrerPolicyLegacyKeywords,
+ kReferrerPolicyDefault},
};
for (TestCase test : inputs) {
ReferrerPolicy actual_policy = kReferrerPolicyDefault;
- EXPECT_EQ(test.is_valid,
- SecurityPolicy::ReferrerPolicyFromHeaderValue(
- test.header, kDoNotSupportReferrerPolicyLegacyKeywords,
- &actual_policy));
+ EXPECT_EQ(test.is_valid, SecurityPolicy::ReferrerPolicyFromHeaderValue(
+ test.header, test.keywords, &actual_policy));
if (test.is_valid)
EXPECT_EQ(test.expected_policy, actual_policy);
}