Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(290)

Unified Diff: Source/platform/weborigin/SecurityPolicy.cpp

Issue 736233004: Referrer Policy: Introduce "Origin When Cross-Origin". [1/3] (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Feedback. Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/platform/weborigin/ReferrerPolicy.h ('k') | Source/platform/weborigin/SecurityPolicyTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/platform/weborigin/SecurityPolicy.cpp
diff --git a/Source/platform/weborigin/SecurityPolicy.cpp b/Source/platform/weborigin/SecurityPolicy.cpp
index 631b1bbdcf78f064f97bda8f079a3e6772de8a4a..3778877d6119c3d2b992cc5993f9f2fe92730494 100644
--- a/Source/platform/weborigin/SecurityPolicy.cpp
+++ b/Source/platform/weborigin/SecurityPolicy.cpp
@@ -87,6 +87,17 @@ Referrer SecurityPolicy::generateReferrer(ReferrerPolicy referrerPolicy, const K
// to turn it into a canonical URL we can use as referrer.
return Referrer(origin + "/", referrerPolicy);
}
+ case ReferrerPolicyOriginWhenCrossOrigin: {
+ RefPtr<SecurityOrigin> referrerOrigin = SecurityOrigin::createFromString(referrer);
+ RefPtr<SecurityOrigin> urlOrigin = SecurityOrigin::create(url);
+ if (!urlOrigin->isSameSchemeHostPort(referrerOrigin.get())) {
+ String origin = referrerOrigin->toString();
+ if (origin == "null")
+ return Referrer(String(), referrerPolicy);
+ return Referrer(origin + "/", referrerPolicy);
+ }
+ break;
+ }
case ReferrerPolicyDefault: {
// If the flag is enabled, and we're dealing with a cross-origin request, strip it.
// Otherwise fallthrough to NoReferrerWhenDowngrade behavior.
@@ -98,6 +109,7 @@ Referrer SecurityPolicy::generateReferrer(ReferrerPolicy referrerPolicy, const K
return Referrer(String(), referrerPolicy);
return Referrer(shouldHideReferrer(url, referrer) ? String() : origin + "/", referrerPolicy);
}
+ break;
}
case ReferrerPolicyNoReferrerWhenDowngrade:
break;
« no previous file with comments | « Source/platform/weborigin/ReferrerPolicy.h ('k') | Source/platform/weborigin/SecurityPolicyTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698