| Index: third_party/WebKit/LayoutTests/resources/intersection-observer-helper-functions.js
 | 
| diff --git a/third_party/WebKit/LayoutTests/resources/intersection-observer-helper-functions.js b/third_party/WebKit/LayoutTests/resources/intersection-observer-helper-functions.js
 | 
| index 050274da18dcd5bff5bbd65d8f981fd1fb35c557..d0d31fcacb1d58ef7415b1bb7686547358301501 100644
 | 
| --- a/third_party/WebKit/LayoutTests/resources/intersection-observer-helper-functions.js
 | 
| +++ b/third_party/WebKit/LayoutTests/resources/intersection-observer-helper-functions.js
 | 
| @@ -6,7 +6,7 @@ if (self.isJsTest) {
 | 
|    self.jsTestIsAsync = true;
 | 
|  }
 | 
|  
 | 
| -// waitForNotification is a requestIdleCallback wrapped in a setTimeout wrapped in a
 | 
| +// waitForNotification is a setTimeout wrapped in a setTimeout wrapped in a
 | 
|  // requestAnimationFrame.  What in the wide, wide world of sports is going on here?
 | 
|  //
 | 
|  // Here's the order of events:
 | 
| @@ -17,32 +17,22 @@ if (self.isJsTest) {
 | 
|  //     - requestAnimationFrame
 | 
|  // - BeginFrame
 | 
|  //   - requestAnimationFrame handler runs.
 | 
| -//     - setTimeout
 | 
| +//     - queue first setTimeout
 | 
|  //   - FrameView::updateAllLifecyclePhases
 | 
|  //     - IntersectionObserver generates notification based on the new layout.
 | 
| -//       - Post idle task to deliver notification.
 | 
| -//   - setTimeout handler runs.
 | 
| -//     - testRunner.runIdleTasks or requestIdleCallback.
 | 
| -//   - Idle tasks run -- more or less immediately if (self.testRunner),
 | 
| -//     possibly delayed if (!self.testRunner).
 | 
| +//       - Post task to deliver notification.
 | 
| +//   - first setTimeout runs.
 | 
| +//     - queue second setTimeout
 | 
| +//   - Posted task runs.
 | 
|  //     - IntersectionObserver notifications are delivered.
 | 
| -//     - secondTestFunction
 | 
| -//       - Verify notifications generated by firstTestFunction.
 | 
| -//       - Change layout to generate new IntersectionObserver notifications.
 | 
| -//       - waitForNotification(thirdTestFunction)
 | 
| -//
 | 
| -// Note that this should work equally well in these operation conditions:
 | 
| -//
 | 
| -//   - layout test using single-threaded compositing (the default)
 | 
| -//   - layout test using multi-threaded compositing (virtual/threaded/)
 | 
| -//   - Not in a layout test and using multi-threaded compositing (the only configuration we ship)
 | 
| +//   - second setTimeout runs secondTestFunction
 | 
| +//     - Verify notifications generated by firstTestFunction.
 | 
| +//     - Change layout to generate new IntersectionObserver notifications.
 | 
| +//     - waitForNotification(thirdTestFunction)
 | 
|  function waitForNotification(f) {
 | 
|    requestAnimationFrame(() => {
 | 
|      setTimeout(() => {
 | 
| -      if (self.testRunner)
 | 
| -        testRunner.runIdleTasks(f);
 | 
| -      else
 | 
| -        requestIdleCallback(f);
 | 
| +      setTimeout(f);
 | 
|      });
 | 
|    });
 | 
|  }
 | 
| 
 |