diff options
Diffstat (limited to 'testing/web-platform/tests/scroll-to-text-fragment/force-load-at-top.js')
-rw-r--r-- | testing/web-platform/tests/scroll-to-text-fragment/force-load-at-top.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/testing/web-platform/tests/scroll-to-text-fragment/force-load-at-top.js b/testing/web-platform/tests/scroll-to-text-fragment/force-load-at-top.js new file mode 100644 index 0000000000..691168859f --- /dev/null +++ b/testing/web-platform/tests/scroll-to-text-fragment/force-load-at-top.js @@ -0,0 +1,33 @@ +function checkScroll() { + // Ensure two animation frames on load to test the fallback to element + // anchor, which gets queued for the next frame if the text fragment is not + // found. + requestAnimationFrame(() => { + requestAnimationFrame(() => { + let results = { + scrolled: (window.pageYOffset != 0), + }; + + let key = (new URL(document.location)).searchParams.get("key"); + stashResultsThenClose(key, results); + }); + }); +} + +window.addEventListener('pageshow', () => { + if (location.hash == "#history") { + // This is the "history" test - on the first load we'll navigate to a page + // that calls history.back(). When we load a second time (from the back + // navigation), record the scroll state at that point to check how history + // scroll restoration is handled. + if (history.state == null) { + history.pushState("test", "test", ""); + requestAnimationFrame(() => { + location.href = "navigate-back.html"; + }); + return; + } + } + + checkScroll(); +}); |