mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 19:22:45 +00:00 
			
		
		
		
	LibWeb: Make <link> style sheets delay the document load event
This commit is contained in:
		
							parent
							
								
									dbba0a520f
								
							
						
					
					
						commit
						fc2a255c72
					
				
					 2 changed files with 10 additions and 0 deletions
				
			
		|  | @ -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()); |     auto request = LoadRequest::create_for_url_on_page(url, m_owner_element.document().page()); | ||||||
|     set_resource(ResourceLoader::the().load_resource(Resource::Type::Generic, request)); |     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() | void CSSLoader::resource_did_load() | ||||||
| { | { | ||||||
|     VERIFY(resource()); |     VERIFY(resource()); | ||||||
| 
 | 
 | ||||||
|  |     m_document_load_event_delayer.clear(); | ||||||
|  | 
 | ||||||
|     if (!resource()->has_encoded_data()) { |     if (!resource()->has_encoded_data()) { | ||||||
|         dbgln_if(CSS_LOADER_DEBUG, "CSSLoader: Resource did load, no encoded data. URL: {}", resource()->url()); |         dbgln_if(CSS_LOADER_DEBUG, "CSSLoader: Resource did load, no encoded data. URL: {}", resource()->url()); | ||||||
|     } else { |     } else { | ||||||
|  | @ -74,6 +78,8 @@ void CSSLoader::resource_did_fail() | ||||||
| { | { | ||||||
|     dbgln_if(CSS_LOADER_DEBUG, "CSSLoader: Resource did fail. URL: {}", resource()->url()); |     dbgln_if(CSS_LOADER_DEBUG, "CSSLoader: Resource did fail. URL: {}", resource()->url()); | ||||||
| 
 | 
 | ||||||
|  |     m_document_load_event_delayer.clear(); | ||||||
|  | 
 | ||||||
|     load_next_import_if_needed(); |     load_next_import_if_needed(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -8,6 +8,8 @@ | ||||||
| 
 | 
 | ||||||
| #include <AK/Function.h> | #include <AK/Function.h> | ||||||
| #include <LibWeb/CSS/CSSStyleSheet.h> | #include <LibWeb/CSS/CSSStyleSheet.h> | ||||||
|  | #include <LibWeb/DOM/Document.h> | ||||||
|  | #include <LibWeb/DOM/DocumentLoadEventDelayer.h> | ||||||
| #include <LibWeb/Loader/Resource.h> | #include <LibWeb/Loader/Resource.h> | ||||||
| 
 | 
 | ||||||
| namespace Web { | namespace Web { | ||||||
|  | @ -34,6 +36,8 @@ private: | ||||||
|     DOM::Element& m_owner_element; |     DOM::Element& m_owner_element; | ||||||
| 
 | 
 | ||||||
|     RefPtr<CSS::CSSStyleSheet> m_style_sheet; |     RefPtr<CSS::CSSStyleSheet> m_style_sheet; | ||||||
|  | 
 | ||||||
|  |     Optional<DOM::DocumentLoadEventDelayer> m_document_load_event_delayer; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling