blob: d444237f6b954b08952c502a510e7ead785c2eec [file] [log] [blame]
Xiaoming Shi73dfa202020-03-12 11:31:35 -07001<!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>
8pre, #log {
9 position: absolute;
10 top: 0;
11 left: 200px;
12}
13iframe {
14 width: 160px;
15 height: 100px;
16 overflow-y: scroll;
17}
18.spacer {
19 height: calc(100vh + 100px);
20}
21</style>
22
23<div class="spacer"></div>
24<iframe src="http://{{hosts[alt][]}}:{{ports[http][0]}}/intersection-observer/resources/cross-origin-subframe.html" sandbox="allow-scripts"></iframe>
25<div class="spacer"></div>
26
27<script>
28async_test(function(t) {
29 var iframe = document.querySelector("iframe");
30
31 function handleMessage(event) {
32 if (event.data.hasOwnProperty('scrollTo')) {
33 document.scrollingElement.scrollTop = event.data.scrollTo;
34 waitForNotification(t, function() { iframe.contentWindow.postMessage("", "*"); },
35 "document.scrollingElement.scrollTop = " + event.data.scrollTo);
36 } else if (event.data.hasOwnProperty('actual')) {
37 checkJsonEntries(event.data.actual, event.data.expected, event.data.description);
38 } else if (event.data.hasOwnProperty('DONE')) {
39 document.scrollingElement.scrollTop = 0;
40 t.done();
41 } else {
42 var description = event.data.description;
43 waitForNotification(t, function() { iframe.contentWindow.postMessage("", "*"); }, description);
44 }
45 }
46
47 window.addEventListener("message", t.step_func(handleMessage));
48
49 iframe.onload = t.step_func(function() {
50 waitForNotification(t, function() { iframe.contentWindow.postMessage("", "*") }, "setup");
51 });
52}, "Intersection observer test with no explicit root and target in a cross-origin iframe.");
53</script>