| OLD | NEW |
| (Empty) | |
| 1 <!DOCTYPE html> |
| 2 <script src="/js-test-resources/js-test.js"></script> |
| 3 <script src="resources/helper-functions.js"></script> |
| 4 <div style="width:100%; height:700px;"></div> |
| 5 <iframe id="target-iframe" src="http://localhost:8080/intersection-observer/reso
urces/cross-origin-subframe.html" style="height: 100px; overflow-y: scroll"></if
rame> |
| 6 <div style="width:100%; height:700px;"></div> |
| 7 |
| 8 <script> |
| 9 description("Simple intersection observer test with no explicit root and target
in a cross-origin iframe."); |
| 10 |
| 11 var iframe = document.getElementById("target-iframe"); |
| 12 var actual; |
| 13 |
| 14 function checkData(actualData, expected) { |
| 15 actual = actualData; |
| 16 shouldBeEqualToNumber("actual.length", expected.length); |
| 17 for (var i = 0; i < actualData.length && i < expected.length; i++) { |
| 18 actual = actualData[i]; |
| 19 shouldBeEqualToNumber("actual.boundingClientRect.left", expected[i].bounding
ClientRect.left); |
| 20 shouldBeEqualToNumber("actual.boundingClientRect.top", expected[i].boundingC
lientRect.top); |
| 21 shouldBeEqualToNumber("actual.boundingClientRect.right", expected[i].boundin
gClientRect.right); |
| 22 shouldBeEqualToNumber("actual.boundingClientRect.bottom", expected[i].boundi
ngClientRect.bottom); |
| 23 shouldBeEqualToNumber("actual.boundingClientRect.width", expected[i].boundin
gClientRect.width); |
| 24 shouldBeEqualToNumber("actual.boundingClientRect.height", expected[i].boundi
ngClientRect.height); |
| 25 shouldBeEqualToNumber("actual.intersectionRect.left", expected[i].intersecti
onRect.left); |
| 26 shouldBeEqualToNumber("actual.intersectionRect.top", expected[i].intersectio
nRect.top); |
| 27 shouldBeEqualToNumber("actual.intersectionRect.right", expected[i].intersect
ionRect.right); |
| 28 shouldBeEqualToNumber("actual.intersectionRect.bottom", expected[i].intersec
tionRect.bottom); |
| 29 shouldBeEqualToNumber("actual.intersectionRect.width", expected[i].intersect
ionRect.width); |
| 30 shouldBeEqualToNumber("actual.intersectionRect.height", expected[i].intersec
tionRect.height); |
| 31 if (expected[i].rootBounds == "null") { |
| 32 shouldBe("actual.rootBounds", "null"); |
| 33 } else if (actual.rootBounds == "null") { |
| 34 shouldNotBe("actual.rootBounds", "null"); |
| 35 } else { |
| 36 shouldBeEqualToNumber("actual.rootBounds.left", expected[i].rootBounds.lef
t); |
| 37 shouldBeEqualToNumber("actual.rootBounds.top", expected[i].rootBounds.top)
; |
| 38 shouldBeEqualToNumber("actual.rootBounds.right", expected[i].rootBounds.ri
ght); |
| 39 shouldBeEqualToNumber("actual.rootBounds.bottom", expected[i].rootBounds.b
ottom); |
| 40 shouldBeEqualToNumber("actual.rootBounds.width", expected[i].rootBounds.wi
dth); |
| 41 shouldBeEqualToNumber("actual.rootBounds.height", expected[i].rootBounds.h
eight); |
| 42 } |
| 43 shouldBeEqualToString("actual.target", expected[i].target); |
| 44 } |
| 45 } |
| 46 |
| 47 function handleMessage(event) { |
| 48 if (event.data.hasOwnProperty('scrollTo')) { |
| 49 document.scrollingElement.scrollTop = event.data.scrollTo; |
| 50 requestAnimationFrame(function () { iframe.contentWindow.postMessage("", "*"
) }); |
| 51 } else if (event.data.hasOwnProperty('actual')) { |
| 52 checkData(event.data.actual, event.data.expected); |
| 53 } else if (event.data.hasOwnProperty('DONE')) { |
| 54 finishTest(); |
| 55 document.scrollingElement.scrollTop = 0; |
| 56 } else { |
| 57 requestAnimationFrame(function () { iframe.contentWindow.postMessage("", "*"
) }); |
| 58 } |
| 59 } |
| 60 |
| 61 window.addEventListener("message", handleMessage); |
| 62 iframe.onload = function() { |
| 63 iframe.contentWindow.postMessage("", "*") |
| 64 }; |
| 65 </script> |
| OLD | NEW |