From 547071d298c8d6b1d07e2e5116bab0ad01668013 Mon Sep 17 00:00:00 2001 From: Keith Yeung Date: Mon, 5 May 2025 13:07:18 +0800 Subject: [PATCH] Update meta referrer parsing Signed-off-by: Keith Yeung --- components/script/dom/htmlmetaelement.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/components/script/dom/htmlmetaelement.rs b/components/script/dom/htmlmetaelement.rs index e94a5e1ff33..31e53aad377 100644 --- a/components/script/dom/htmlmetaelement.rs +++ b/components/script/dom/htmlmetaelement.rs @@ -5,7 +5,7 @@ use dom_struct::dom_struct; use html5ever::{LocalName, Prefix, local_name, ns}; use js::rust::HandleObject; -use style::str::HTML_SPACE_CHARACTERS; +use style::{attr::AttrValue, str::HTML_SPACE_CHARACTERS}; use crate::dom::attr::Attr; use crate::dom::bindings::codegen::Bindings::HTMLMetaElementBinding::HTMLMetaElementMethods; @@ -108,7 +108,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() + }, + a => a.trim(), + }; if !attr_val.is_empty() { doc.set_referrer_policy(determine_policy_for_token(attr_val)); }