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

Side by Side Diff: third_party/WebKit/LayoutTests/intersection-observer/observer-without-js-reference.html

Issue 1806133002: IntersectionObserver: use an idle callback to send notifications. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: rebase Created 4 years, 8 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
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src="../resources/js-test.js"></script> 2 <script src="../resources/js-test.js"></script>
3 <script src="../resources/gc.js"></script> 3 <script src="../resources/gc.js"></script>
4 <div style="width:100%; height:700px;"></div> 4 <div style="width:100%; height:700px;"></div>
5 <div id="target" style="background-color: green; width:100px; height:100px"></di v> 5 <div id="target" style="background-color: green; width:100px; height:100px"></di v>
6 <div style="width:100%; height:700px;"></div> 6 <div style="width:100%; height:700px;"></div>
7 7
8 <script> 8 <script>
9 jsTestIsAsync = true; 9 jsTestIsAsync = true;
10 description("IntersectionObserver continues to produce notifications when it h as no javascript references."); 10 description("IntersectionObserver continues to produce notifications when it has no javascript references.");
11 var target = document.getElementById("target"); 11 var target = document.getElementById("target");
12 var entries = []; 12 var entries = [];
13 new IntersectionObserver(function(changes) { 13 new IntersectionObserver(function(changes) {
14 entries.push(...changes); 14 entries.push(...changes);
15 }).observe(target); 15 }).observe(target);
16 gc(); 16 gc();
17 document.scrollingElement.scrollTop = 300; 17 document.scrollingElement.scrollTop = 300;
18 requestAnimationFrame(function () { 18 // See README for explanation of double RAF.
19 setTimeout(function() { 19 requestAnimationFrame(() => { requestAnimationFrame(() => {
20 shouldBeEqualToNumber("entries.length", 1); 20 // In other IntersectionObserver tests, observer.takeRecords() is used to ensu re that
21 finishJSTest(); 21 // all pending notifications are taken. Because this test specifically tests the
22 }); 22 // case where the observer object has no js references, it can't use takeRecor ds().
23 }); 23 // However, the IntersectionObserver spec mandates that all notifications must be
24 // sent within 100ms of being generated, so this timeout effectively tests con formance
25 // with that requirement.
26 // TODO(szager): Switch setTimeout to testRunner.runIdleTasks after this patch lands:
27 // https://codereview.chromium.org/1806133002/
28 setTimeout(() => {
29 shouldBeEqualToNumber("entries.length", 1);
30 finishJSTest();
31 }, 100)
32 }) });
24 </script> 33 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698