Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/intersection-observer/resources/cross-origin-subframe.html

Issue 2560253004: IntersectionObserver: convert tests to testharness.js (Closed)
Patch Set: Address comments Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <script src="/js-test-resources/intersection-observer-helper-functions.js"></scr ipt>
3 <div style="height: 200px; width: 100px;"></div>
4 <div id="target" style="background-color: green; width:100px; height:100px"></di v>
5 <div style="height: 200px; width: 100px;"></div>
6 <script>
7 var port;
8 var entries = [];
9 var target = document.getElementById('target');
10 var scroller = document.scrollingElement;
11 var nextStep;
12
13 // Note that we never use RAF in this code, because this frame might get render- throttled.
14 // Instead of RAF-ing, we just post an empty message to the parent window, which will
15 // RAF when it is received, and then send us a message to cause the next step to run.
16
17 // Use a rootMargin here, and verify it does NOT get applied for the cross-origi n case.
18 var observer = new IntersectionObserver(
19 changes => { entries = entries.concat(changes) },
20 { rootMargin: "7px" }
21 );
22 observer.observe(target);
23
24 function step0() {
25 entries = entries.concat(observer.takeRecords());
26 nextStep = step1;
27 port.postMessage({actual: entries.map(entryToJson), expected: []}, "*");
28 entries = [];
29 port.postMessage({scrollTo: 200}, "*");
30 }
31
32 function step1() {
33 entries = entries.concat(observer.takeRecords());
34 port.postMessage({actual: entries.map(entryToJson), expected: []}, "*");
35 entries = [];
36 scroller.scrollTop = 250;
37 nextStep = step2;
38 port.postMessage({}, "*");
39 }
40
41 function step2() {
42 entries = entries.concat(observer.takeRecords());
43 var expected = [{
44 boundingClientRect: coordinatesToClientRectJson(-42, 108, 58, 8),
45 intersectionRect: coordinatesToClientRectJson(0, 108, 58, 8),
46 rootBounds: "null",
47 target: target.id
48 }];
49 port.postMessage({actual: entries.map(entryToJson), expected: expected}, "*");
50 entries = [];
51 nextStep = step3;
52 port.postMessage({scrollTo: 100}, "*");
53 }
54
55 function step3() {
56 entries = entries.concat(observer.takeRecords());
57 var expected = [{
58 boundingClientRect: coordinatesToClientRectJson(-42, 108, 58, 8),
59 intersectionRect: coordinatesToClientRectJson(0, 0, 0, 0),
60 rootBounds: "null",
61 target: target.id
62 }];
63 port.postMessage({actual: entries.map(entryToJson), expected: expected}, "*");
64 port.postMessage({DONE: 1}, "*");
65 }
66
67 function handleMessage(event)
68 {
69 port = event.source;
70 nextStep();
71 }
72
73 nextStep = step0;
74 window.addEventListener("message", handleMessage);
75 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698