summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/HTML/Parser
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2021-09-26 01:03:42 +0200
committerAndreas Kling <kling@serenityos.org>2021-09-26 02:00:00 +0200
commitdbba0a520fa16e7b2e9ad7742bf0dc7e24a9c241 (patch)
tree716defbf353f5252e782f0e27a06da92aec6d404 /Userland/Libraries/LibWeb/HTML/Parser
parentb1529e320257c4aba1df70fb2f9418db7875b757 (diff)
downloadserenity-dbba0a520fa16e7b2e9ad7742bf0dc7e24a9c241.zip
LibWeb: Allow HTML parser to delay delivery of the document "load" event
We will now spin in "the end" until there are no more "things delaying the load event". Of course, nothing actually uses this yet, and there are a lot of things that need to.
Diffstat (limited to 'Userland/Libraries/LibWeb/HTML/Parser')
-rw-r--r--Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp b/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp
index c3d222d851..74508b327a 100644
--- a/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp
+++ b/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp
@@ -231,7 +231,11 @@ void HTMLParser::the_end()
return m_document->scripts_to_execute_as_soon_as_possible().is_empty();
});
- // FIXME: 8. Spin the event loop until there is nothing that delays the load event in the Document.
+ // 8. Spin the event loop until there is nothing that delays the load event in the Document.
+ // FIXME: Track down all the things that are supposed to delay the load event.
+ main_thread_event_loop().spin_until([&] {
+ return m_document->number_of_things_delaying_the_load_event() == 0;
+ });
// 9. Queue a global task on the DOM manipulation task source given the Document's relevant global object to run the following steps:
queue_global_task(HTML::Task::Source::DOMManipulation, *m_document, [document = m_document]() mutable {