diff --git a/moli-core/tests/fixtures/runtime/window_child_browsing_context_fragment_traversal_events_are_window_local.html b/moli-core/tests/fixtures/runtime/window_child_browsing_context_fragment_traversal_events_are_window_local.html index 3af03ba1a4..8539bc2b25 100644 --- a/moli-core/tests/fixtures/runtime/window_child_browsing_context_fragment_traversal_events_are_window_local.html +++ b/moli-core/tests/fixtures/runtime/window_child_browsing_context_fragment_traversal_events_are_window_local.html @@ -17,6 +17,7 @@ document.body.setAttribute('data-done', '1'); const childWindow = iframe.contentWindow; + let finishTraversal; childWindow.addEventListener('popstate', () => { childOrder.push('child-popstate'); @@ -29,6 +30,7 @@ document.body.setAttribute('data-child-new', event.newURL); queueMicrotask(() => { childOrder.push('child-hashchange-microtask'); + finishTraversal?.(); }); }); @@ -41,14 +43,19 @@ document.body.removeAttribute('data-child-old'); document.body.removeAttribute('data-child-new'); + const traversalCompleted = new Promise(resolve => { + finishTraversal = resolve; + }); childWindow.history.back(); document.body.setAttribute('data-child-sync-hash', childWindow.location.hash); - setTimeout(() => { - document.body.setAttribute('data-top-order', topOrder.join(',')); - document.body.setAttribute('data-child-order', childOrder.join(',')); - document.body.setAttribute('data-child-timeout-hash', childWindow.location.hash); - }, 50); + traversalCompleted.then(() => { + setTimeout(() => { + document.body.setAttribute('data-top-order', topOrder.join(',')); + document.body.setAttribute('data-child-order', childOrder.join(',')); + document.body.setAttribute('data-child-timeout-hash', childWindow.location.hash); + }, 50); + }); }, 50); }); diff --git a/moli-core/tests/history_child.rs b/moli-core/tests/history_child.rs index 82ad241a2e..b12099b810 100644 --- a/moli-core/tests/history_child.rs +++ b/moli-core/tests/history_child.rs @@ -4073,9 +4073,7 @@ async fn child_browsing_context_fragment_traversal_events_stay_window_local() -> "/compat/window-child-browsing-context-fragment-traversal-events-are-window-local", )) .await?; - browser - .wait_for_page_delay(&mut page, Duration::from_millis(250)) - .await?; + wait_for_body_attribute(&browser, &mut page, "data-child-timeout-hash", "#one").await?; assert!( page.serialize_html_async()