This commit is contained in:
Keith Yeung 2025-06-02 19:59:15 -03:00 committed by GitHub
commit 56e839f4c0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 2 deletions

View file

@ -6731,7 +6731,7 @@ pub(crate) fn determine_policy_for_token(token: &str) -> ReferrerPolicy {
"same-origin" => ReferrerPolicy::SameOrigin,
"strict-origin" => ReferrerPolicy::StrictOrigin,
"default" | "strict-origin-when-cross-origin" => ReferrerPolicy::StrictOriginWhenCrossOrigin,
"origin-when-cross-origin" => ReferrerPolicy::OriginWhenCrossOrigin,
"origin-when-cross-origin" | "origin-when-crossorigin" => ReferrerPolicy::OriginWhenCrossOrigin,
"always" | "unsafe-url" => ReferrerPolicy::UnsafeUrl,
_ => ReferrerPolicy::EmptyString,
}

View file

@ -5,6 +5,7 @@
use dom_struct::dom_struct;
use html5ever::{LocalName, Prefix, local_name, ns};
use js::rust::HandleObject;
use style::attr::AttrValue;
use style::str::HTML_SPACE_CHARACTERS;
use crate::dom::attr::Attr;
@ -108,7 +109,15 @@ impl HTMLMetaElement {
.get_attribute(&ns!(), &local_name!("content"));
if let Some(attr) = content {
let attr = attr.value();
let attr_val = attr.trim();
let attr_val = match &*attr {
AttrValue::TokenList(_, list) => {
let Some(last_atom) = list.last() else {
return;
};
last_atom.trim()
},
val => val.trim(),
};
if !attr_val.is_empty() {
doc.set_referrer_policy(determine_policy_for_token(attr_val));
}