| 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);
|
| });
|
| });
|
| }
|
|
|