diff --git a/Userland/Libraries/LibWeb/Loader/CSSLoader.cpp b/Userland/Libraries/LibWeb/Loader/CSSLoader.cpp index df844b1c25..e2eed4a8cf 100644 --- a/Userland/Libraries/LibWeb/Loader/CSSLoader.cpp +++ b/Userland/Libraries/LibWeb/Loader/CSSLoader.cpp @@ -37,12 +37,16 @@ void CSSLoader::load_from_url(const AK::URL& url) auto request = LoadRequest::create_for_url_on_page(url, m_owner_element.document().page()); set_resource(ResourceLoader::the().load_resource(Resource::Type::Generic, request)); + + m_document_load_event_delayer.emplace(m_owner_element.document()); } void CSSLoader::resource_did_load() { VERIFY(resource()); + m_document_load_event_delayer.clear(); + if (!resource()->has_encoded_data()) { dbgln_if(CSS_LOADER_DEBUG, "CSSLoader: Resource did load, no encoded data. URL: {}", resource()->url()); } else { @@ -74,6 +78,8 @@ void CSSLoader::resource_did_fail() { dbgln_if(CSS_LOADER_DEBUG, "CSSLoader: Resource did fail. URL: {}", resource()->url()); + m_document_load_event_delayer.clear(); + load_next_import_if_needed(); } diff --git a/Userland/Libraries/LibWeb/Loader/CSSLoader.h b/Userland/Libraries/LibWeb/Loader/CSSLoader.h index bed65b5ba4..97561f0e2a 100644 --- a/Userland/Libraries/LibWeb/Loader/CSSLoader.h +++ b/Userland/Libraries/LibWeb/Loader/CSSLoader.h @@ -8,6 +8,8 @@ #include #include +#include +#include #include namespace Web { @@ -34,6 +36,8 @@ private: DOM::Element& m_owner_element; RefPtr m_style_sheet; + + Optional m_document_load_event_delayer; }; }