diff options
author | Andreas Kling <kling@serenityos.org> | 2021-09-26 01:03:42 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-09-26 02:00:00 +0200 |
commit | dbba0a520fa16e7b2e9ad7742bf0dc7e24a9c241 (patch) | |
tree | 716defbf353f5252e782f0e27a06da92aec6d404 /Userland/Libraries/LibWeb/HTML | |
parent | b1529e320257c4aba1df70fb2f9418db7875b757 (diff) | |
download | serenity-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')
-rw-r--r-- | Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp | 6 |
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 { |