diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /layout/generic/test/test_scrollframe_abspos_interrupt.html | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/generic/test/test_scrollframe_abspos_interrupt.html')
-rw-r--r-- | layout/generic/test/test_scrollframe_abspos_interrupt.html | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/layout/generic/test/test_scrollframe_abspos_interrupt.html b/layout/generic/test/test_scrollframe_abspos_interrupt.html new file mode 100644 index 0000000000..fe25e991f9 --- /dev/null +++ b/layout/generic/test/test_scrollframe_abspos_interrupt.html @@ -0,0 +1,60 @@ +<!doctype html> +<title>Test for bug 1526609</title> +<script src="/tests/SimpleTest/SimpleTest.js"></script> +<script src="/tests/SimpleTest/EventUtils.js"></script> +<style> + body { + margin: 0; + } + .scroller { + overflow-y: auto; + position: relative; + width: 500px; + height: 300px; + } + .kid { + position: absolute; + width: 100%; + background: linear-gradient(to bottom, red, green); + line-height: 100px; + } +</style> +<div class="scroller" id="scroller"> + <div class="kid"></div> +</div> +<script> +{ + let text = " foo bar "; + + for (let i = 0; i < 16; ++i) + text = text + text; + document.querySelector(".kid").innerText = text; +} + +SimpleTest.waitForExplicitFinish(); + +const scroller = document.querySelector("#scroller"); + +is(scroller.scrollTop, 0, "Initial scroll position"); +ok(scroller.scrollTopMax > 0, "Should be able to scroll down"); + +scroller.scrollTop = scroller.scrollTopMax; +is(scroller.scrollTop, scroller.scrollTopMax, "Should've scrolled"); + +const origWidth = scroller.offsetWidth; +const utils = SpecialPowers.DOMWindowUtils; + +// Take control of the refresh driver +utils.advanceTimeAndRefresh(0); + +// Force the next reflow to get interrupted +utils.forceReflowInterrupt(); +scroller.style.width = "300px"; +utils.advanceTimeAndRefresh(0); + +isnot(scroller.scrollTop, 0, "Shouldn't have lost scroll position"); +isnot(scroller.offsetWidth, origWidth, "Should've had to reflow"); + +utils.restoreNormalRefresh(); +SimpleTest.finish(); +</script> |