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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/layout/scroll-anchoring/resources/scroll-anchoring-test.js

Issue 2002623003: Exclude position:absolute elements when picking an anchor for ScrollAnchoring (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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
(Empty)
1 // Contains helper methods to verify expectations for tests related to Scroll
2 // Anchoring
3 var frame = () => new Promise((resolve) => { requestAnimationFrame(resolve); });
4
5 var waitFor = function(condition, failmsg, deadline) {
6 if (!deadline) deadline = Date.now() + 1000;
7 if (condition()) return Promise.resolve();
8 else if (Date.now() > deadline) return Promise.reject(failmsg);
9 else return frame().then(() => waitFor(condition, failmsg, deadline));
10 };
11
12 var waitFrames = function(n, condition, failmsg) {
13 var p = Promise.resolve();
14 var check = () => (!condition || condition() ?
15 Promise.resolve() : Promise.reject(failmsg));
16 while (n--)
17 p = p.then(check).then(frame);
18 return p.then(check);
19 };
20
21 var scrollSettlesAt = function(expectedY) {
22 return waitFor(() => (scrollY == expectedY),
23 "scroll did not reach " + expectedY)
24 .then(() => waitFrames(3))
25 .then(() => waitFrames(3, () => (scrollY == expectedY),
26 "scroll did not stay at " + expectedY));
27 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698