prefer-targeted-element-main-frame.html (1726B)
1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <meta charset="utf-8"> 6 <title> CSS Scroll Snap Test: snap selection with targeted element</title> 7 <link rel="help" href="https://drafts.csswg.org/css-scroll-snap"> 8 <script src="/resources/testharness.js"></script> 9 <script src="/resources/testharnessreport.js"></script> 10 <script src="/resources/testdriver.js"></script> 11 <script src="/resources/testdriver-actions.js"></script> 12 <script src="/resources/testdriver-vendor.js"></script> 13 <script src="/common/utils.js"></script> 14 </head> 15 16 <body onload="runTest()"> 17 <script> 18 async function fetchResult(key) { 19 const url = `/css/css-scroll-snap/snap-after-relayout/` + 20 `multiple-aligned-targets/stash.py?key=${key}`; 21 // We may need multiple requests. Return a promise that will be resolved 22 // when an actual response is received. 23 return new Promise(async (resolve) => { 24 async function fetchResultInternal(url) { 25 const response = await fetch(url); 26 const text = await response.text(); 27 if (text) { 28 resolve(JSON.parse(text)); 29 } else { 30 requestAnimationFrame(fetchResultInternal.bind(this, url)); 31 } 32 } 33 fetchResultInternal(url); 34 }); 35 } 36 37 function runTest() { 38 promise_test(async (t) => { 39 let key = token(); 40 41 test_driver.bless("Open a URL", () => { 42 window.open(`prefer-targeted-element-main-frame-target.html` + 43 `?key=${key}`, "_blank", "noopener"); 44 }); 45 46 const result = await fetchResult(key); 47 assert_equals([result.passed, result.errors].join(), "9,"); 48 }, "targeted box is selected snap target."); 49 } 50 </script> 51 </body>