From 393068afba5d637984c7b924cc546e3ea006c1de Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Tue, 30 May 2023 20:29:39 +0300 Subject: [PATCH] WebContent: Wait for Resource to load in wait_for_navigation_to_complete Fixes wait_for_navigation_to_complete() so it actually waits for ongoing page loading request in FrameLoader to complete. --- Userland/Services/WebContent/WebDriverConnection.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Userland/Services/WebContent/WebDriverConnection.cpp b/Userland/Services/WebContent/WebDriverConnection.cpp index 6fd5cdd383..d59642278a 100644 --- a/Userland/Services/WebContent/WebDriverConnection.cpp +++ b/Userland/Services/WebContent/WebDriverConnection.cpp @@ -1888,7 +1888,11 @@ ErrorOr WebDriverConnection::wait_for_navigation_to return {}; // FIXME: 3. Start a timer. If this algorithm has not completed before timer reaches the session’s session page load timeout in milliseconds, return an error with error code timeout. - // FIXME: 4. If there is an ongoing attempt to navigate the current browsing context that has not yet matured, wait for navigation to mature. + + // 4. If there is an ongoing attempt to navigate the current browsing context that has not yet matured, wait for navigation to mature. + Web::Platform::EventLoopPlugin::the().spin_until([&] { + return !m_page_client.page().has_ongoing_navigation(); + }); // 5. Let readiness target be the document readiness state associated with the current session’s page loading strategy, which can be found in the table of page load strategies. auto readiness_target = [this]() {