Index: content/public/common/referrer.cc |
diff --git a/content/public/common/referrer.cc b/content/public/common/referrer.cc |
index dbb2ae290c70c260ebed2256804856a47220fcc6..3543e4334964d9b2fed70ece19c1c0ae88bc483f 100644 |
--- a/content/public/common/referrer.cc |
+++ b/content/public/common/referrer.cc |
@@ -61,6 +61,17 @@ Referrer Referrer::SanitizeForRequest(const GURL& request, |
if (request.GetOrigin() != sanitized_referrer.url.GetOrigin()) |
sanitized_referrer.url = sanitized_referrer.url.GetOrigin(); |
break; |
+ case blink::kWebReferrerPolicyStrictOrigin: |
+ if (is_downgrade) { |
+ sanitized_referrer.url = GURL(); |
+ } else { |
+ sanitized_referrer.url = sanitized_referrer.url.GetOrigin(); |
+ } |
+ break; |
+ case blink::kWebReferrerPolicySameOrigin: |
+ if (request.GetOrigin() != sanitized_referrer.url.GetOrigin()) |
+ sanitized_referrer.url = GURL(); |
+ break; |
case blink::kWebReferrerPolicyNoReferrerWhenDowngradeOriginWhenCrossOrigin: |
if (is_downgrade) { |
sanitized_referrer.url = GURL(); |
@@ -101,6 +112,11 @@ net::URLRequest::ReferrerPolicy Referrer::ReferrerPolicyForUrlRequest( |
CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE; |
case blink::kWebReferrerPolicyOriginWhenCrossOrigin: |
return net::URLRequest::ORIGIN_ONLY_ON_TRANSITION_CROSS_ORIGIN; |
+ case blink::kWebReferrerPolicySameOrigin: |
+ return net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_CROSS_ORIGIN; |
+ case blink::kWebReferrerPolicyStrictOrigin: |
+ return net::URLRequest:: |
+ ORIGIN_CLEAR_ON_TRANSITION_FROM_SECURE_TO_INSECURE; |
case blink::kWebReferrerPolicyDefault: |
if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kReducedReferrerGranularity)) { |