Use the correct fallback referrer policy for the empty string case (#34201)

Signed-off-by: Shane Handley <shanehandley@fastmail.com>
This commit is contained in:
shanehandley 2024-11-10 14:26:19 +11:00 committed by GitHub
parent 4da378a987
commit 5e2c7908d0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 5 additions and 189 deletions

View file

@ -5631,7 +5631,7 @@ pub fn determine_policy_for_token(token: &str) -> Option<ReferrerPolicy> {
"default" | "strict-origin-when-cross-origin" => Some(ReferrerPolicy::StrictOriginWhenCrossOrigin),
"origin-when-cross-origin" => Some(ReferrerPolicy::OriginWhenCrossOrigin),
"always" | "unsafe-url" => Some(ReferrerPolicy::UnsafeUrl),
"" => Some(ReferrerPolicy::NoReferrer),
"" => Some(ReferrerPolicy::default()),
_ => None,
}
}

View file

@ -1519,8 +1519,8 @@ pub fn parse_a_sizes_attribute(value: DOMString) -> SourceSizeList {
fn get_correct_referrerpolicy_from_raw_token(token: &DOMString) -> DOMString {
if token == "" {
// Empty token is treated as no-referrer inside determine_policy_for_token,
// while here it should be treated as the default value, so it should remain unchanged.
// Empty token is treated as the default referrer policy inside determine_policy_for_token,
// so it should remain unchanged.
DOMString::new()
} else {
match determine_policy_for_token(token) {
@ -1532,6 +1532,7 @@ fn get_correct_referrerpolicy_from_raw_token(token: &DOMString) -> DOMString {
}
}
#[allow(non_snake_case)]
impl HTMLImageElementMethods for HTMLImageElement {
// https://html.spec.whatwg.org/multipage/#dom-image
fn Image(

View file

@ -805,7 +805,7 @@ impl From<NetTraitsRequestMode> for RequestMode {
impl From<ReferrerPolicy> for MsgReferrerPolicy {
fn from(policy: ReferrerPolicy) -> Self {
match policy {
ReferrerPolicy::_empty => MsgReferrerPolicy::NoReferrer,
ReferrerPolicy::_empty => MsgReferrerPolicy::default(),
ReferrerPolicy::No_referrer => MsgReferrerPolicy::NoReferrer,
ReferrerPolicy::No_referrer_when_downgrade => {
MsgReferrerPolicy::NoReferrerWhenDowngrade

View file

@ -1,21 +1,8 @@
[cors-preflight-referrer.any.worker.html]
type: testharness
[Referrer policy: "" and referrer: default]
expected: FAIL
[Referrer policy: "" and referrer: 'myreferrer']
expected: FAIL
[cors-preflight-referrer]
expected: FAIL
[cors-preflight-referrer.any.html]
type: testharness
[Referrer policy: "" and referrer: default]
expected: FAIL
[Referrer policy: "" and referrer: 'myreferrer']
expected: FAIL

View file

@ -1,84 +1,6 @@
[redirect-referrer.any.worker.html]
[Same origin redirection, empty init, unsafe-url redirect header ]
expected: FAIL
[Same origin redirection, empty init, no-referrer-when-downgrade redirect header ]
expected: FAIL
[Same origin redirection, empty init, same-origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, origin-when-cross-origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, strict-origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, strict-origin-when-cross-origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, unsafe-url redirect header ]
expected: FAIL
[Cross origin redirection, empty init, no-referrer-when-downgrade redirect header ]
expected: FAIL
[Cross origin redirection, empty init, origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, origin-when-cross-origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, strict-origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, strict-origin-when-cross-origin redirect header ]
expected: FAIL
[redirect-referrer]
expected: FAIL
[redirect-referrer.any.html]
[Same origin redirection, empty init, unsafe-url redirect header ]
expected: FAIL
[Same origin redirection, empty init, no-referrer-when-downgrade redirect header ]
expected: FAIL
[Same origin redirection, empty init, same-origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, origin-when-cross-origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, strict-origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, strict-origin-when-cross-origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, unsafe-url redirect header ]
expected: FAIL
[Cross origin redirection, empty init, no-referrer-when-downgrade redirect header ]
expected: FAIL
[Cross origin redirection, empty init, origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, origin-when-cross-origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, strict-origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, strict-origin-when-cross-origin redirect header ]
expected: FAIL

View file

@ -1,14 +0,0 @@
[cors-preflight-referrer.any.worker.html]
[Referrer policy: "" and referrer: default]
expected: FAIL
[Referrer policy: "" and referrer: 'myreferrer']
expected: FAIL
[cors-preflight-referrer.any.html]
[Referrer policy: "" and referrer: default]
expected: FAIL
[Referrer policy: "" and referrer: 'myreferrer']
expected: FAIL

View file

@ -1,80 +0,0 @@
[redirect-referrer.any.html]
[Same origin redirection, empty init, unsafe-url redirect header ]
expected: FAIL
[Same origin redirection, empty init, no-referrer-when-downgrade redirect header ]
expected: FAIL
[Same origin redirection, empty init, same-origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, origin-when-cross-origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, strict-origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, strict-origin-when-cross-origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, unsafe-url redirect header ]
expected: FAIL
[Cross origin redirection, empty init, no-referrer-when-downgrade redirect header ]
expected: FAIL
[Cross origin redirection, empty init, origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, origin-when-cross-origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, strict-origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, strict-origin-when-cross-origin redirect header ]
expected: FAIL
[redirect-referrer.any.worker.html]
[Same origin redirection, empty init, unsafe-url redirect header ]
expected: FAIL
[Same origin redirection, empty init, no-referrer-when-downgrade redirect header ]
expected: FAIL
[Same origin redirection, empty init, same-origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, origin-when-cross-origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, strict-origin redirect header ]
expected: FAIL
[Same origin redirection, empty init, strict-origin-when-cross-origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, unsafe-url redirect header ]
expected: FAIL
[Cross origin redirection, empty init, no-referrer-when-downgrade redirect header ]
expected: FAIL
[Cross origin redirection, empty init, origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, origin-when-cross-origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, strict-origin redirect header ]
expected: FAIL
[Cross origin redirection, empty init, strict-origin-when-cross-origin redirect header ]
expected: FAIL