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

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

Issue 1776493002: IntersectionObserver: use an idle callback to send notifications. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: syntax error Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/intersection-observer/observer-without-js-reference.html
diff --git a/third_party/WebKit/LayoutTests/intersection-observer/observer-without-js-reference.html b/third_party/WebKit/LayoutTests/intersection-observer/observer-without-js-reference.html
index 637a955f3c97d1c963356a5e20b30d590884e7db..b4fbd3bf681d06d92e3f7292dd0bc1c24dcd3777 100644
--- a/third_party/WebKit/LayoutTests/intersection-observer/observer-without-js-reference.html
+++ b/third_party/WebKit/LayoutTests/intersection-observer/observer-without-js-reference.html
@@ -6,19 +6,26 @@
<div style="width:100%; height:700px;"></div>
<script>
- jsTestIsAsync = true;
- description("IntersectionObserver continues to produce notifications when it has no javascript references.");
- var target = document.getElementById("target");
- var entries = [];
- new IntersectionObserver(function(changes) {
- entries.push(...changes);
- }).observe(target);
- gc();
- document.scrollingElement.scrollTop = 300;
- requestAnimationFrame(function () {
- setTimeout(function() {
- shouldBeEqualToNumber("entries.length", 1);
- finishJSTest();
- });
- });
+jsTestIsAsync = true;
+description("IntersectionObserver continues to produce notifications when it has no javascript references.");
+var target = document.getElementById("target");
+var entries = [];
+new IntersectionObserver(function(changes) {
+ entries.push(...changes);
+}).observe(target);
+gc();
+document.scrollingElement.scrollTop = 300;
+// See README for explanation of double RAF.
+requestAnimationFrame(() => { requestAnimationFrame(() => {
+ // In other IntersectionObserver tests, observer.takeRecords() is used to ensure that
+ // all pending notifications are taken. Because this test specifically tests the
+ // case where the observer object has no js references, it can't use takeRecords().
+ // However, the IntersectionObserver spec mandates that all notifications must be
+ // sent within 100ms of being generated, so this timeout effectively tests conformance
+ // with that requirement.
+ setTimeout(() => {
+ shouldBeEqualToNumber("entries.length", 1);
+ finishJSTest();
+ }, 100)
+}) });
</script>

Powered by Google App Engine
This is Rietveld 408576698