diff options
Diffstat (limited to 'testing/web-platform/tests/pointerevents/pointer-events-none-skip-scroll-will-change-in-iframe.html')
-rw-r--r-- | testing/web-platform/tests/pointerevents/pointer-events-none-skip-scroll-will-change-in-iframe.html | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/testing/web-platform/tests/pointerevents/pointer-events-none-skip-scroll-will-change-in-iframe.html b/testing/web-platform/tests/pointerevents/pointer-events-none-skip-scroll-will-change-in-iframe.html new file mode 100644 index 0000000000..e05bb915fb --- /dev/null +++ b/testing/web-platform/tests/pointerevents/pointer-events-none-skip-scroll-will-change-in-iframe.html @@ -0,0 +1,58 @@ +<!doctype html> +<meta charset=utf-8> +<title>pointer-events: none correctly targets scrolls</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="/resources/testdriver-actions.js"></script> + +<div style="pointer-events: none"> + <iframe id="iframe"></iframe> +</div> +<div style="height: 200vh"></div> + +<script> + promise_test(async (t) => { + let iframe = document.getElementById("iframe"); + await new Promise((resolve) => { + iframe.onload = resolve; + iframe.srcdoc = ` +<style> + #scroller { + overflow: auto; + height: 100px; + border: 2px solid blue; + will-change: scroll-position; + } + .spacer { + height: 200vh; + } +</style> +<div id="scroller"> + <div class="spacer"></div> +</div> +<div class="spacer"></div> +`; + }); + let scrolled = new Promise((resolve) => { + let scrollers = [ + window, + iframe.contentWindow, + iframe.contentDocument.getElementById("scroller") + ]; + let onscroll = (evt) => { + for (const scroller of scrollers) { + scroller.removeEventListener("scroll", onscroll); + } + resolve(evt.target.id || "root"); + } + for (const scroller of scrollers) { + scroller.addEventListener("scroll", onscroll); + } + }); + const actions = new test_driver.Actions().scroll(50, 50, 0, 50, { duration: 50 }); + actions.send(); + assert_equals(await scrolled, "root", "Incorrect element scrolled"); + }, "Wheel-scroll over pointer-events: none scroller skips that scroller"); +</script> |