nested-cross-origin.sub.html (1470B)
1 <!DOCTYPE html> 2 <meta name="viewport" content="width=device-width,initial-scale=1"> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="../resources/intersection-observer-test-utils.js"></script> 6 7 <style> 8 pre, #log { 9 position: absolute; 10 top: 0; 11 left: 200px; 12 } 13 iframe { 14 width: 300px; 15 height: 150px; 16 border: none; 17 } 18 </style> 19 20 <iframe src="http://{{domains[www1]}}:{{ports[http][0]}}/intersection-observer/resources/v2-midframe.sub.html"></iframe> 21 22 <script> 23 async_test(function(t) { 24 let iframe = document.querySelector("iframe"); 25 26 function step0(event) { 27 assert_equals(event.data,""); 28 } 29 30 function step1(event) { 31 assert_equals(JSON.stringify(event.data), 32 JSON.stringify([true])); 33 iframe.style.opacity = "0.9"; 34 } 35 36 function step2(event) { 37 assert_equals(JSON.stringify(event.data), 38 JSON.stringify([false])); 39 iframe.style.opacity = ""; 40 } 41 42 function step3(event) { 43 assert_equals(JSON.stringify(event.data), 44 JSON.stringify([true])); 45 } 46 47 let steps = [step0, step1, step2, step3]; 48 49 window.addEventListener("message", event => { 50 if (steps.length) { 51 t.step(steps.shift(), t, event); 52 waitForFrame(t, () => { 53 iframe.contentWindow.postMessage("", "*"); 54 }); 55 } else { 56 t.done(); 57 } 58 }); 59 60 }, "Intersection observer V2 test with nested cross-origin iframes."); 61 </script>