OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <script src="/js-test-resources/js-test.js"></script> | |
3 <script src="/js-test-resources/intersection-observer-helper-functions.js"></scr
ipt> | |
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 waitForNotification(() => { 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 finishJSTest(); | |
55 document.scrollingElement.scrollTop = 0; | |
56 } else { | |
57 waitForNotification(() => { iframe.contentWindow.postMessage("", "*") }); | |
58 } | |
59 } | |
60 | |
61 window.addEventListener("message", handleMessage); | |
62 | |
63 iframe.onload = (() => { | |
64 waitForNotification(() => { iframe.contentWindow.postMessage("", "*") }); | |
65 }); | |
66 </script> | |
OLD | NEW |