From e1eeb93cc6095a47371d23db0bbf55eb30215cee Mon Sep 17 00:00:00 2001 From: Tim Ledbetter Date: Tue, 8 Oct 2024 01:08:49 +0100 Subject: [PATCH] LibWeb: Fire iframe load event on document close This matches the behavior of other browsers. --- .../HTML/document-close-iframe-load-event.txt | 1 + .../HTML/document-close-iframe-load-event.html | 15 +++++++++++++++ Userland/Libraries/LibWeb/DOM/Document.cpp | 3 +++ 3 files changed, 19 insertions(+) create mode 100644 Tests/LibWeb/Text/expected/HTML/document-close-iframe-load-event.txt create mode 100644 Tests/LibWeb/Text/input/HTML/document-close-iframe-load-event.html diff --git a/Tests/LibWeb/Text/expected/HTML/document-close-iframe-load-event.txt b/Tests/LibWeb/Text/expected/HTML/document-close-iframe-load-event.txt new file mode 100644 index 00000000000..60e14372fd8 --- /dev/null +++ b/Tests/LibWeb/Text/expected/HTML/document-close-iframe-load-event.txt @@ -0,0 +1 @@ +Onload event fired diff --git a/Tests/LibWeb/Text/input/HTML/document-close-iframe-load-event.html b/Tests/LibWeb/Text/input/HTML/document-close-iframe-load-event.html new file mode 100644 index 00000000000..d7a7359df0e --- /dev/null +++ b/Tests/LibWeb/Text/input/HTML/document-close-iframe-load-event.html @@ -0,0 +1,15 @@ + + + diff --git a/Userland/Libraries/LibWeb/DOM/Document.cpp b/Userland/Libraries/LibWeb/DOM/Document.cpp index d2f42b8d18e..d92d2a0bdd4 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.cpp +++ b/Userland/Libraries/LibWeb/DOM/Document.cpp @@ -705,6 +705,9 @@ WebIDL::ExceptionOr Document::close() // FIXME: 6. Run the tokenizer, processing resulting tokens as they are emitted, and stopping when the tokenizer reaches the explicit "EOF" character or spins the event loop. m_parser->run(); + // AD-HOC: This ensures that a load event is fired if the node navigable's container is an iframe. + completely_finish_loading(); + return {}; }