| 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..f15267663aa49bc023e698e5201617d48efac682 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,28 @@ | 
| <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. | 
| +  // TODO(szager): Switch setTimeout to testRunner.runIdleTasks after this patch lands: | 
| +  //   https://codereview.chromium.org/1806133002/ | 
| +  setTimeout(() => { | 
| +    shouldBeEqualToNumber("entries.length", 1); | 
| +    finishJSTest(); | 
| +  }, 100) | 
| +}) }); | 
| </script> | 
|  |