LibWeb: Set the location URL for @import-ed/<link>-ed style sheets

The spec text had changed for the value of `<link>`'s location, so I've
updated that.
This commit is contained in:
Sam Atkins 2024-08-21 14:49:08 +01:00 committed by Sam Atkins
parent c29f4f69ef
commit 4e18fce3a5
Notes: github-actions[bot] 2024-09-03 09:13:48 +00:00
2 changed files with 7 additions and 3 deletions

View file

@ -97,7 +97,7 @@ void CSSImportRule::resource_did_load()
dbgln_if(CSS_LOADER_DEBUG, "CSSImportRule: Resource did load, has encoded data. URL: {}", resource()->url());
}
auto* sheet = parse_css_stylesheet(CSS::Parser::ParsingContext(*m_document, resource()->url()), resource()->encoded_data());
auto* sheet = parse_css_stylesheet(CSS::Parser::ParsingContext(*m_document, resource()->url()), resource()->encoded_data(), resource()->url());
if (!sheet) {
dbgln_if(CSS_LOADER_DEBUG, "CSSImportRule: Failed to parse stylesheet: {}", resource()->url());
return;

View file

@ -391,7 +391,7 @@ void HTMLLinkElement::process_stylesheet_resource(bool success, Fetch::Infrastru
// type
// text/css
// location
// The resulting URL string determined during the fetch and process the linked resource algorithm.
// response's URL list[0]
// owner node
// element
// media
@ -438,6 +438,10 @@ void HTMLLinkElement::process_stylesheet_resource(bool success, Fetch::Infrastru
m_loaded_style_sheet = parse_css_stylesheet(CSS::Parser::ParsingContext(document(), *response.url()), decoded_string);
if (m_loaded_style_sheet) {
Optional<String> location;
if (!response.url_list().is_empty())
location = MUST(response.url_list().first().to_string());
document().style_sheets().create_a_css_style_sheet(
"text/css"_string,
this,
@ -445,7 +449,7 @@ void HTMLLinkElement::process_stylesheet_resource(bool success, Fetch::Infrastru
in_a_document_tree() ? attribute(HTML::AttributeNames::title).value_or({}) : String {},
m_relationship & Relationship::Alternate && !m_explicitly_enabled,
true,
{},
move(location),
nullptr,
nullptr,
*m_loaded_style_sheet);