Bug 1634136 [wpt PR 23322] - Update animation timing after handling scroll input, a=testonly
authorOlga Gerchikov <gerchiko@microsoft.com>
Wed, 13 May 2020 03:58:49 +0000
changeset 531026 d59d05a6f27e53965af7bd1a2144980acdd0c5ca
parent 531025 73dfb76e1bf5808c55af973fe1f92df7c165e0a7
child 531027 542c6e7ff5812c2ba8c94d76552c59b82c7a44b1
push id37435
push userapavel@mozilla.com
push dateWed, 20 May 2020 15:28:23 +0000
treeherdermozilla-central@5415da14ec9a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1634136, 23322, 944449, 2161317, 764686
milestone78.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1634136 [wpt PR 23322] - Update animation timing after handling scroll input, a=testonly Automatic update from web-platform-tests Update animation timing after handling scroll input Changes made: - Call update animation timing after updating native scroll/snap animations. This is required to keep scroll animations in sync with scroll offset updates triggered by native scroll animations. - Added tests verifying that scroll timeline is in sync with native scroll animation updates. Bug: 944449 Change-Id: Iee9fad23ef63889f2211bb9257bbd8f583d13175 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2161317 Reviewed-by: Robert Flack <flackr@chromium.org> Reviewed-by: Majid Valipour <majidvp@chromium.org> Commit-Queue: Olga Gerchikov <gerchiko@microsoft.com> Cr-Commit-Position: refs/heads/master@{#764686} -- wpt-commits: 342939cebf15aa909949138f9c42a1f60b9a83de wpt-pr: 23322
testing/web-platform/tests/scroll-animations/scroll-timeline-snapshotting.html
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/scroll-animations/scroll-timeline-snapshotting.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>ScrollTimeline snapshotting</title>
+<link rel="help" href="https://wicg.github.io/scroll-animations/#avoiding-cycles">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/resources/testdriver-actions.js"></script>
+<script src="/web-animations/testcommon.js"></script>
+
+<style>
+  body {
+    height: 800px;
+    width: 800px;
+  }
+</style>
+<div id="log"></div>
+
+<script>
+'use strict';
+
+promise_test(async t => {
+  const scroller = document.scrollingElement;
+  const maxScroll = scroller.scrollHeight - scroller.clientHeight;
+  const timeline = new ScrollTimeline(
+    {scrollSource: scroller, timeRange: maxScroll});
+  scroller.scrollTo(0, 0);
+  assert_equals(scroller.scrollTop, 0, "verify test pre-condition");
+
+  scroller.scrollBy({top:100, behavior:'smooth'})
+  // Wait for the scroll to change.
+  const startScroll = scroller.scrollTop;
+  do {
+    await waitForNextFrame();
+  } while(scroller.scrollTop == startScroll);
+  assert_times_equal(timeline.currentTime, scroller.scrollTop,
+    'Scroll timeline current time corresponds to the scroll position.');
+}, 'ScrollTimeline current time is updated after programmatic animated scroll.');
+
+</script>