Index: content/public/common/referrer.cc |
diff --git a/content/public/common/referrer.cc b/content/public/common/referrer.cc |
index b383fb73fc6fae4f4b820140c92bcca2e60adbf8..225df96c94dbeb8b523c29fcd9e618d772edd2f1 100644 |
--- a/content/public/common/referrer.cc |
+++ b/content/public/common/referrer.cc |
@@ -22,6 +22,12 @@ Referrer Referrer::SanitizeForRequest(const GURL& request, |
bool is_downgrade = |
sanitized_referrer.url.SchemeIsSecure() && !request.SchemeIsSecure(); |
+ if (sanitized_referrer.policy < 0 || |
+ sanitized_referrer.policy > blink::WebReferrerPolicyLast) { |
+ NOTREACHED(); |
+ sanitized_referrer.policy = blink::WebReferrerPolicyNever; |
+ } |
+ |
switch (sanitized_referrer.policy) { |
case blink::WebReferrerPolicyDefault: |
if (is_downgrade) { |
@@ -44,8 +50,9 @@ Referrer Referrer::SanitizeForRequest(const GURL& request, |
case blink::WebReferrerPolicyOrigin: |
sanitized_referrer.url = sanitized_referrer.url.GetOrigin(); |
break; |
- default: |
- NOTREACHED(); |
+ case blink::WebReferrerPolicyOriginWhenCrossOrigin: |
+ if (request.GetOrigin() != sanitized_referrer.url.GetOrigin()) |
+ sanitized_referrer.url = sanitized_referrer.url.GetOrigin(); |
break; |
} |
return sanitized_referrer; |