LibWeb/CSS: Allow CSSImportRule's document to be null on construction

It's possible to parse an `@import` rule that isn't attached to a
document. We only actually need it to have one when fetching the linked
style sheet, and that should only happen when the CSSImportRule is
attached to a document. So, we can just accept a null pointer when
constructing it.

We relied on that Document to get the Realm, so pass that in as a
separate parameter.
This commit is contained in:
Sam Atkins 2025-04-08 16:50:51 +01:00 committed by Tim Ledbetter
parent a8ab4d64c4
commit 1abc628cd8
Notes: github-actions[bot] 2025-04-09 17:47:38 +00:00
3 changed files with 8 additions and 9 deletions

View file

@ -23,17 +23,16 @@ namespace Web::CSS {
GC_DEFINE_ALLOCATOR(CSSImportRule);
GC::Ref<CSSImportRule> CSSImportRule::create(::URL::URL url, DOM::Document& document, RefPtr<Supports> supports, Vector<NonnullRefPtr<MediaQuery>> media_query_list)
GC::Ref<CSSImportRule> CSSImportRule::create(JS::Realm& realm, ::URL::URL url, GC::Ptr<DOM::Document> document, RefPtr<Supports> supports, Vector<NonnullRefPtr<MediaQuery>> media_query_list)
{
auto& realm = document.realm();
return realm.create<CSSImportRule>(move(url), document, supports, move(media_query_list));
return realm.create<CSSImportRule>(realm, move(url), document, move(supports), move(media_query_list));
}
CSSImportRule::CSSImportRule(::URL::URL url, DOM::Document& document, RefPtr<Supports> supports, Vector<NonnullRefPtr<MediaQuery>> media_query_list)
: CSSRule(document.realm(), Type::Import)
CSSImportRule::CSSImportRule(JS::Realm& realm, ::URL::URL url, GC::Ptr<DOM::Document> document, RefPtr<Supports> supports, Vector<NonnullRefPtr<MediaQuery>> media_query_list)
: CSSRule(realm, Type::Import)
, m_url(move(url))
, m_document(document)
, m_supports(supports)
, m_supports(move(supports))
, m_media_query_list(move(media_query_list))
{
}