Chromium Code Reviews| Index: third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp |
| diff --git a/third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp b/third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp |
| index e915a51637d2f0c80b3b350902a535e49c4ed936..5d0ff382c82fe351de1ab05ec11a5dfd5adfa2de 100644 |
| --- a/third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp |
| +++ b/third_party/WebKit/Source/platform/weborigin/SecurityPolicy.cpp |
| @@ -58,6 +58,33 @@ static OriginSet& trustworthyOriginSet() |
| return trustworthyOriginSet; |
| } |
| +static bool referrerPolicyFromStringImpl(const String& policy, bool supportLegacyKeywords, ReferrerPolicy* result) |
|
jochen (gone - plz use gerrit)
2016/08/26 15:07:35
nit. please use an enum (class) instead of a bool
estark
2016/08/26 16:23:44
Done.
|
| +{ |
| + DCHECK(!policy.isNull()); |
| + |
| + if (equalIgnoringCase(policy, "no-referrer") || (supportLegacyKeywords && equalIgnoringCase(policy, "never"))) { |
| + *result = ReferrerPolicyNever; |
| + return true; |
| + } |
| + if (equalIgnoringCase(policy, "unsafe-url") || (supportLegacyKeywords && equalIgnoringCase(policy, "always"))) { |
| + *result = ReferrerPolicyAlways; |
| + return true; |
| + } |
| + if (equalIgnoringCase(policy, "origin")) { |
| + *result = ReferrerPolicyOrigin; |
| + return true; |
| + } |
| + if (equalIgnoringCase(policy, "origin-when-cross-origin") || (supportLegacyKeywords && equalIgnoringCase(policy, "origin-when-crossorigin"))) { |
| + *result = ReferrerPolicyOriginWhenCrossOrigin; |
| + return true; |
| + } |
| + if (equalIgnoringCase(policy, "no-referrer-when-downgrade") || (supportLegacyKeywords && equalIgnoringCase(policy, "default"))) { |
| + *result = ReferrerPolicyNoReferrerWhenDowngrade; |
| + return true; |
| + } |
| + return false; |
| +} |
| + |
| void SecurityPolicy::init() |
| { |
| originAccessMap(); |
| @@ -225,29 +252,12 @@ void SecurityPolicy::resetOriginAccessWhitelists() |
| bool SecurityPolicy::referrerPolicyFromString(const String& policy, ReferrerPolicy* result) |
| { |
| - ASSERT(!policy.isNull()); |
| + return referrerPolicyFromStringImpl(policy, false /* use legacy keywords */, result); |
| +} |
| - if (equalIgnoringCase(policy, "no-referrer") || equalIgnoringCase(policy, "never")) { |
| - *result = ReferrerPolicyNever; |
| - return true; |
| - } |
| - if (equalIgnoringCase(policy, "unsafe-url") || equalIgnoringCase(policy, "always")) { |
| - *result = ReferrerPolicyAlways; |
| - return true; |
| - } |
| - if (equalIgnoringCase(policy, "origin")) { |
| - *result = ReferrerPolicyOrigin; |
| - return true; |
| - } |
| - if (equalIgnoringCase(policy, "origin-when-cross-origin") || equalIgnoringCase(policy, "origin-when-crossorigin")) { |
| - *result = ReferrerPolicyOriginWhenCrossOrigin; |
| - return true; |
| - } |
| - if (equalIgnoringCase(policy, "no-referrer-when-downgrade") || equalIgnoringCase(policy, "default")) { |
| - *result = ReferrerPolicyNoReferrerWhenDowngrade; |
| - return true; |
| - } |
| - return false; |
| +bool SecurityPolicy::referrerPolicyFromStringWithLegacyKeywords(const String& policy, ReferrerPolicy* result) |
| +{ |
| + return referrerPolicyFromStringImpl(policy, true /* use legacy keywords */, result); |
| } |
| } // namespace blink |