root-scroll-marker-activation-in-iframe.html (1754B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <html class="reftest-wait"> 4 <title>CSS Overflow: ::scroll-marker with ::scroll-marker-group on root element doesn't propagate scrolling</title> 5 <link rel="help" href="https://drafts.csswg.org/css-overflow-5/#scroll-marker-pseudo"> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 <script src="/resources/testdriver.js"></script> 9 <script src="/resources/testdriver-actions.js"></script> 10 <script src="/resources/testdriver-vendor.js"></script> 11 <script src="/dom/events/scrolling/scroll_support.js"></script> 12 <style> 13 body { 14 margin: 0; 15 } 16 17 #container { 18 overflow: auto; 19 height: 600px; 20 position: relative; 21 } 22 23 iframe { 24 width: 600px; 25 height: 400px; 26 position: absolute; 27 top: 500px; 28 border: 2px solid black; 29 } 30 </style> 31 <div id="container"> 32 <iframe id="target" onload="run_test()" src="resources/root-scroll-marker-activation-iframe.html"></iframe> 33 </div> 34 <script> 35 function run_test() { 36 promise_test(async t => { 37 const iframe = document.getElementById("target"); 38 const container = document.getElementById("container"); 39 const target = iframe.contentWindow; 40 const scrollEndPromise = waitForScrollEndFallbackToDelayWithoutScrollEvent(target); 41 await new test_driver.Actions() 42 .pointerMove(140, 510) 43 .pointerDown() 44 .pointerUp() 45 .send(); 46 await scrollEndPromise; 47 assert_equals(container.scrollTop, 0, "scrolling is not propagated from iframe to the main frame"); 48 assert_greater_than(target.scrollY, 0, "scroll marker activation scrolls iframe"); 49 document.documentElement.classList.remove("reftest-wait"); 50 }); 51 } 52 </script> 53 </html>