Stop handling a None referrer policy in determine_request_referrer().

This commit is contained in:
Ms2ger 2016-12-08 09:39:41 -10:00
parent 0fe94a6724
commit 3a27fda368
2 changed files with 12 additions and 13 deletions

View file

@ -277,7 +277,7 @@ fn strip_url(mut referrer_url: ServoUrl, origin_only: bool) -> Option<ServoUrl>
/// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer
pub fn determine_request_referrer(headers: &mut Headers,
referrer_policy: Option<ReferrerPolicy>,
referrer_policy: ReferrerPolicy,
referrer_url: Option<ServoUrl>,
url: ServoUrl) -> Option<ServoUrl> {
//TODO - algorithm step 2 not addressed
@ -285,14 +285,14 @@ pub fn determine_request_referrer(headers: &mut Headers,
if let Some(ref_url) = referrer_url {
let cross_origin = ref_url.origin() != url.origin();
return match referrer_policy {
Some(ReferrerPolicy::NoReferrer) => None,
Some(ReferrerPolicy::Origin) => strip_url(ref_url, true),
Some(ReferrerPolicy::SameOrigin) => if cross_origin { None } else { strip_url(ref_url, false) },
Some(ReferrerPolicy::UnsafeUrl) => strip_url(ref_url, false),
Some(ReferrerPolicy::OriginWhenCrossOrigin) => strip_url(ref_url, cross_origin),
Some(ReferrerPolicy::StrictOrigin) => strict_origin(ref_url, url),
Some(ReferrerPolicy::StrictOriginWhenCrossOrigin) => strict_origin_when_cross_origin(ref_url, url),
Some(ReferrerPolicy::NoReferrerWhenDowngrade) | None =>
ReferrerPolicy::NoReferrer => None,
ReferrerPolicy::Origin => strip_url(ref_url, true),
ReferrerPolicy::SameOrigin => if cross_origin { None } else { strip_url(ref_url, false) },
ReferrerPolicy::UnsafeUrl => strip_url(ref_url, false),
ReferrerPolicy::OriginWhenCrossOrigin => strip_url(ref_url, cross_origin),
ReferrerPolicy::StrictOrigin => strict_origin(ref_url, url),
ReferrerPolicy::StrictOriginWhenCrossOrigin => strict_origin_when_cross_origin(ref_url, url),
ReferrerPolicy::NoReferrerWhenDowngrade =>
no_referrer_when_downgrade_header(ref_url, url),
};
}