summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/meta/scroll-animations
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /testing/web-platform/meta/scroll-animations
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/meta/scroll-animations')
-rw-r--r--testing/web-platform/meta/scroll-animations/css/__dir__.ini1
-rw-r--r--testing/web-platform/meta/scroll-animations/css/animation-duration-auto.tentative.html.ini15
-rw-r--r--testing/web-platform/meta/scroll-animations/css/animation-range-ignored.html.ini6
-rw-r--r--testing/web-platform/meta/scroll-animations/css/animation-range-normal-matches-cover.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/animation-shorthand.html.ini42
-rw-r--r--testing/web-platform/meta/scroll-animations/css/animation-timeline-ignored.tentative.html.ini16
-rw-r--r--testing/web-platform/meta/scroll-animations/css/animation-timeline-in-keyframe.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/animation-timeline-multiple.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html.ini15
-rw-r--r--testing/web-platform/meta/scroll-animations/css/animation-timeline-parsing.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/animation-timeline-view-functional-notation.tentative.html.ini36
-rw-r--r--testing/web-platform/meta/scroll-animations/css/get-animations-inactive-timeline.html.ini5
-rw-r--r--testing/web-platform/meta/scroll-animations/css/merge-timeline-offset-keyframes.html.ini6
-rw-r--r--testing/web-platform/meta/scroll-animations/css/printing/scroll-timeline-default-iframe-print.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/css/printing/scroll-timeline-default-print.tentative.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/css/progress-based-animation-animation-longhand-properties.tentative.html.ini30
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-attachment-computed-tentative.html.ini39
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-attachment-parsing-tentative.html.ini33
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-attachment.html.ini30
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-axis-writing-mode.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-document-scroller-quirks.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-dynamic.tentative.html.ini22
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-in-container-query.html.ini5
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-inactive.html.ini6
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-multi-pass.tentative.html.ini6
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-name-shadow.html.ini12
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-nearest-dirty.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-nearest-with-absolute-positioned-element.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-paused-animations.html.ini8
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-responsiveness-from-endpoint.html.ini5
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-root-dirty.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-sampling.html.ini6
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-shorthand.tentative.html.ini57
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-update-reversed-animation.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/css/scroll-timeline-with-percent-delay.tentative.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/timeline-offset-in-keyframe-change-timeline.tentative.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/timeline-offset-keyframes-hidden-subject.html.ini9
-rw-r--r--testing/web-platform/meta/scroll-animations/css/timeline-offset-keyframes-with-document-timeline.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/timeline-range-name-offset-in-keyframes.tentative.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/timeline-scope-computed.tentative.html.ini33
-rw-r--r--testing/web-platform/meta/scroll-animations/css/timeline-scope-parsing.tentative.html.ini33
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-animation-range-update.tentative.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-animation.html.ini13
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-attachment-computed-tentative.html.ini39
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-attachment-parsing-tentative.html.ini33
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-attachment.html.ini33
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-dynamic.html.ini17
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-inset-animation.html.ini88
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-keyframe-boundary-interpolation.html.ini8
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-lookup.html.ini24
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-name-shadow.html.ini12
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-range-animation.html.ini45
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-range-update-reversed-animation.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-range-update.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-shorthand.tentative.html.ini48
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-subject-bounds-update.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-used-values.html.ini8
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-with-delay-and-range.tentative.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/css/view-timeline-with-transform-on-subject.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/__dir__.ini1
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-animatable-interface.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-display-none.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-overflow-hidden.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-root-scroller.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-transform.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/cancel-animation.html.ini31
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/constructor-no-document.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/constructor.html.ini30
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/current-time-nan.html.ini12
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/current-time-root-scroller.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/current-time-writing-modes.html.ini9
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/effect-updateTiming.html.ini198
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/finish-animation.html.ini63
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/idlharness.window.js.ini72
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/layout-changes-on-percentage-based-timeline.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/pause-animation.html.ini25
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/play-animation.html.ini37
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/progress-based-effect-delay.tentative.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/reverse-animation.html.ini39
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation-effect-fill-modes.tentative.html.ini78
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation-effect-phases.tentative.html.ini87
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation-inactive-timeline.html.ini13
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation.html.ini16
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-timeline-invalidation.html.ini9
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-timeline-snapshotting.html.ini4
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/set-current-time-before-play.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/setting-current-time.html.ini33
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/setting-playback-rate.html.ini45
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/setting-start-time.html.ini45
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/setting-timeline.tentative.html.ini48
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/source-quirks-mode.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html.ini2
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/update-playback-rate.html.ini28
-rw-r--r--testing/web-platform/meta/scroll-animations/scroll-timelines/updating-the-finished-state.html.ini75
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/__dir__.ini1
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/block-view-timeline-current-time-vertical-rl.tentative.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/block-view-timeline-current-time.tentative.html.ini9
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/block-view-timeline-nested-subject.tentative.html.ini5
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/change-animation-range-updates-play-state.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/get-keyframes-with-timeline-offset.html.ini15
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/inline-view-timeline-current-time.tentative.html.ini12
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/timeline-offset-in-keyframe.html.ini15
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-get-current-time-range-name.html.ini5
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-get-set-range.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-inset.html.ini23
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-missing-subject.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-on-display-none-element.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-range-large-subject.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-range.html.ini27
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-root-source.html.ini3
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-snapport.html.ini5
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-source.tentative.html.ini11
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-subject-size-changes.html.ini5
-rw-r--r--testing/web-platform/meta/scroll-animations/view-timelines/zero-intrinsic-iteration-duration.tentative.html.ini3
115 files changed, 2088 insertions, 0 deletions
diff --git a/testing/web-platform/meta/scroll-animations/css/__dir__.ini b/testing/web-platform/meta/scroll-animations/css/__dir__.ini
new file mode 100644
index 0000000000..27673b4d05
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/__dir__.ini
@@ -0,0 +1 @@
+prefs: [layout.css.scroll-driven-animations.enabled:true, layout.css.individual-transform.enabled:true]
diff --git a/testing/web-platform/meta/scroll-animations/css/animation-duration-auto.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/animation-duration-auto.tentative.html.ini
new file mode 100644
index 0000000000..912f0a0736
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/animation-duration-auto.tentative.html.ini
@@ -0,0 +1,15 @@
+[animation-duration-auto.tentative.html]
+ [A value of auto can be specified for animation-duration]
+ expected: FAIL
+
+ [e.style['animation-duration'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [Property animation-duration value 'auto']
+ expected: FAIL
+
+ [e.style['animation'\] = "auto cubic-bezier(0, -2, 1, 3) -3s 4 reverse both paused anim" should set the property value]
+ expected: FAIL
+
+ [Property animation value 'auto cubic-bezier(0, -2, 1, 3) -3s 4 reverse both paused anim']
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/animation-range-ignored.html.ini b/testing/web-platform/meta/scroll-animations/css/animation-range-ignored.html.ini
new file mode 100644
index 0000000000..1f7b65650e
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/animation-range-ignored.html.ini
@@ -0,0 +1,6 @@
+[animation-range-ignored.html]
+ [Animation API call rangeStart overrides animation-range-start]
+ expected: FAIL
+
+ [Animation API call rangeEnd overrides animation-range-end]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/animation-range-normal-matches-cover.html.ini b/testing/web-platform/meta/scroll-animations/css/animation-range-normal-matches-cover.html.ini
new file mode 100644
index 0000000000..b667ae8e74
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/animation-range-normal-matches-cover.html.ini
@@ -0,0 +1,3 @@
+[animation-range-normal-matches-cover.html]
+ [Changing the animation range updates the play state]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/animation-shorthand.html.ini b/testing/web-platform/meta/scroll-animations/css/animation-shorthand.html.ini
new file mode 100644
index 0000000000..3012409364
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/animation-shorthand.html.ini
@@ -0,0 +1,42 @@
+[animation-shorthand.html]
+ [e.style['animation'\] = "1s linear 1s 2 reverse forwards paused anim scroll()" should not set the property value]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1824261
+
+ [e.style['animation'\] = "1s linear 1s 2 reverse forwards paused anim view()" should not set the property value]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1824261
+
+ [e.style['animation'\] = "1s linear 1s 2 reverse forwards paused anim timeline" should not set the property value]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1824261
+
+ [e.style['animation'\] = "1s linear 1s 2 reverse forwards paused anim1,\\n 1s linear 1s 2 reverse forwards paused anim2,\\n 1s linear 1s 2 reverse forwards paused anim3" should set animation-range-end]
+ expected: FAIL
+
+ [e.style['animation'\] = "1s linear 1s 2 reverse forwards paused anim1,\\n 1s linear 1s 2 reverse forwards paused anim2,\\n 1s linear 1s 2 reverse forwards paused anim3" should set animation-range-start]
+ expected: FAIL
+
+ [Animation shorthand can not represent non-initial timelines (specified)]
+ expected: FAIL
+
+ [Animation shorthand can not represent non-initial timelines (computed)]
+ expected: FAIL
+
+ [Animation shorthand can not represent non-initial animation-delay-end (specified)]
+ expected: FAIL
+
+ [Animation shorthand can not represent non-initial animation-delay-end (computed)]
+ expected: FAIL
+
+ [Animation shorthand can not represent non-initial animation-range-start (specified)]
+ expected: FAIL
+
+ [Animation shorthand can not represent non-initial animation-range-start (computed)]
+ expected: FAIL
+
+ [Animation shorthand can not represent non-initial animation-range-end (specified)]
+ expected: FAIL
+
+ [Animation shorthand can not represent non-initial animation-range-end (computed)]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/animation-timeline-ignored.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/animation-timeline-ignored.tentative.html.ini
new file mode 100644
index 0000000000..95efea2688
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/animation-timeline-ignored.tentative.html.ini
@@ -0,0 +1,16 @@
+[animation-timeline-ignored.tentative.html]
+ [animation-timeline ignored after setting timeline with JS (ScrollTimeline from JS)]
+ expected: FAIL
+
+ [animation-timeline ignored after setting timeline with JS (ScrollTimeline from CSS)]
+ expected: FAIL
+
+ [animation-timeline ignored after setting timeline with JS (document timeline)]
+ expected: FAIL
+
+ [animation-timeline ignored after setting timeline with JS (null)]
+ expected: FAIL
+
+ [Changing animation-timeline changes the timeline (sanity check)]
+ expected:
+ if os == "android": FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/animation-timeline-in-keyframe.html.ini b/testing/web-platform/meta/scroll-animations/css/animation-timeline-in-keyframe.html.ini
new file mode 100644
index 0000000000..834f5b8fb5
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/animation-timeline-in-keyframe.html.ini
@@ -0,0 +1,3 @@
+[animation-timeline-in-keyframe.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/scroll-animations/css/animation-timeline-multiple.html.ini b/testing/web-platform/meta/scroll-animations/css/animation-timeline-multiple.html.ini
new file mode 100644
index 0000000000..f59dbea7ef
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/animation-timeline-multiple.html.ini
@@ -0,0 +1,3 @@
+[animation-timeline-multiple.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, OK]
diff --git a/testing/web-platform/meta/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html.ini
new file mode 100644
index 0000000000..ab3182cc7b
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html.ini
@@ -0,0 +1,15 @@
+[animation-timeline-named-scroll-progress-timeline.tentative.html]
+ [Change in scroll-timeline-name to match animation timeline updates animation.]
+ expected: FAIL
+
+ [Change in scroll-timeline-name to no longer match animation timeline updates animation.]
+ expected: FAIL
+
+ [Timeline lookup updates candidate when closer match available.]
+ expected: FAIL
+
+ [Timeline lookup updates candidate when match becomes available.]
+ expected: FAIL
+
+ [scroll-timeline-name is not referenceable in animation-timeline on that element's siblings]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/animation-timeline-parsing.html.ini b/testing/web-platform/meta/scroll-animations/css/animation-timeline-parsing.html.ini
new file mode 100644
index 0000000000..c4193b3283
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/animation-timeline-parsing.html.ini
@@ -0,0 +1,3 @@
+[animation-timeline-parsing.html]
+ [e.style['animation-timeline'\] = "\\"test\\"" should not set the property value]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/animation-timeline-view-functional-notation.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/animation-timeline-view-functional-notation.tentative.html.ini
new file mode 100644
index 0000000000..3af0d0ddb0
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/animation-timeline-view-functional-notation.tentative.html.ini
@@ -0,0 +1,36 @@
+[animation-timeline-view-functional-notation.tentative.html]
+ [animation-timeline: view()]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1824875
+
+ [animation-timeline: view(50px)]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1824875
+
+ [animation-timeline: view(auto 50px)]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1824875
+
+ [animation-timeline: view(inline)]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1824875
+
+ [animation-timeline: view(horizontal)]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1824875
+
+ [animation-timeline: view(vertical)]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1824875
+
+ [animation-timeline: view(horizontal 50px)]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1824875
+
+ [animation-timeline: view(), view(inline)]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1824875
+
+ [animation-timeline: view(inline) changes to view(inline 50px)]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1824875
diff --git a/testing/web-platform/meta/scroll-animations/css/get-animations-inactive-timeline.html.ini b/testing/web-platform/meta/scroll-animations/css/get-animations-inactive-timeline.html.ini
new file mode 100644
index 0000000000..31fdc7fac2
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/get-animations-inactive-timeline.html.ini
@@ -0,0 +1,5 @@
+[get-animations-inactive-timeline.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [getAnimations includes inactive scroll-linked animations that have not been canceled]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/merge-timeline-offset-keyframes.html.ini b/testing/web-platform/meta/scroll-animations/css/merge-timeline-offset-keyframes.html.ini
new file mode 100644
index 0000000000..6d15befb4e
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/merge-timeline-offset-keyframes.html.ini
@@ -0,0 +1,6 @@
+[merge-timeline-offset-keyframes.html]
+ [Keyframes with same easing and timeline offset are merged.]
+ expected: FAIL
+
+ [Keyframes with same timeline offset but different easing function are not merged.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/printing/scroll-timeline-default-iframe-print.html.ini b/testing/web-platform/meta/scroll-animations/css/printing/scroll-timeline-default-iframe-print.html.ini
new file mode 100644
index 0000000000..5545ee0b73
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/printing/scroll-timeline-default-iframe-print.html.ini
@@ -0,0 +1,2 @@
+[scroll-timeline-default-iframe-print.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/printing/scroll-timeline-default-print.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/printing/scroll-timeline-default-print.tentative.html.ini
new file mode 100644
index 0000000000..795b22a2e5
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/printing/scroll-timeline-default-print.tentative.html.ini
@@ -0,0 +1,2 @@
+[scroll-timeline-default-print.tentative.html]
+ max-asserts: 2
diff --git a/testing/web-platform/meta/scroll-animations/css/progress-based-animation-animation-longhand-properties.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/progress-based-animation-animation-longhand-properties.tentative.html.ini
new file mode 100644
index 0000000000..62c912ded9
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/progress-based-animation-animation-longhand-properties.tentative.html.ini
@@ -0,0 +1,30 @@
+[progress-based-animation-animation-longhand-properties.tentative.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, OK]
+ [animation-iteration-count]
+ expected:
+ if os == "android": FAIL
+
+ [animation-direction: normal]
+ expected:
+ if os == "android": FAIL
+
+ [animation-direction: reverse]
+ expected:
+ if os == "android": FAIL
+
+ [animation-direction: alternate]
+ expected:
+ if os == "android": FAIL
+
+ [animation-direction: alternate-reverse]
+ expected:
+ if os == "android": FAIL
+
+ [animation-delay with a positive value]
+ expected:
+ if os == "android": FAIL
+
+ [animation-delay with a negative value]
+ expected:
+ if os == "android": FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-attachment-computed-tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-attachment-computed-tentative.html.ini
new file mode 100644
index 0000000000..232c633ad9
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-attachment-computed-tentative.html.ini
@@ -0,0 +1,39 @@
+[scroll-timeline-attachment-computed-tentative.html]
+ [Property scroll-timeline-attachment value 'initial']
+ expected: FAIL
+
+ [Property scroll-timeline-attachment value 'inherit']
+ expected: FAIL
+
+ [Property scroll-timeline-attachment value 'unset']
+ expected: FAIL
+
+ [Property scroll-timeline-attachment value 'revert']
+ expected: FAIL
+
+ [Property scroll-timeline-attachment value 'local']
+ expected: FAIL
+
+ [Property scroll-timeline-attachment value 'defer']
+ expected: FAIL
+
+ [Property scroll-timeline-attachment value 'ancestor']
+ expected: FAIL
+
+ [Property scroll-timeline-attachment value 'local, defer']
+ expected: FAIL
+
+ [Property scroll-timeline-attachment value 'defer, ancestor']
+ expected: FAIL
+
+ [Property scroll-timeline-attachment value 'local, defer, ancestor']
+ expected: FAIL
+
+ [Property scroll-timeline-attachment value 'local, local, local, local']
+ expected: FAIL
+
+ [The scroll-timeline-attachment property shows up in CSSStyleDeclaration enumeration]
+ expected: FAIL
+
+ [The scroll-timeline-attachment property shows up in CSSStyleDeclaration.cssText]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-attachment-parsing-tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-attachment-parsing-tentative.html.ini
new file mode 100644
index 0000000000..2aca618159
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-attachment-parsing-tentative.html.ini
@@ -0,0 +1,33 @@
+[scroll-timeline-attachment-parsing-tentative.html]
+ [e.style['scroll-timeline-attachment'\] = "initial" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-timeline-attachment'\] = "inherit" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-timeline-attachment'\] = "unset" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-timeline-attachment'\] = "revert" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-timeline-attachment'\] = "local" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-timeline-attachment'\] = "defer" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-timeline-attachment'\] = "ancestor" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-timeline-attachment'\] = "local, defer" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-timeline-attachment'\] = "defer, ancestor" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-timeline-attachment'\] = "local, defer, ancestor, local" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-timeline-attachment'\] = "local, local, local, local" should set the property value]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-attachment.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-attachment.html.ini
new file mode 100644
index 0000000000..b7c6eda8a7
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-attachment.html.ini
@@ -0,0 +1,30 @@
+[scroll-timeline-attachment.html]
+ [Descendant can attach to deferred timeline]
+ expected: FAIL
+
+ [Timeline with ancestor attachment does not attach to local]
+ expected: FAIL
+
+ [Axis of deferred timeline is taken from attached timeline]
+ expected: FAIL
+
+ [Axis of deferred timeline with multiple attachments]
+ expected: FAIL
+
+ [Dynamically re-attaching]
+ expected: FAIL
+
+ [Dynamically attaching]
+ expected: FAIL
+
+ [Dynamically detaching]
+ expected: FAIL
+
+ [Removing/inserting ancestor attached element]
+ expected: FAIL
+
+ [Ancestor attached element becoming display:none/block]
+ expected: FAIL
+
+ [Dynamically becoming a deferred timeline]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-axis-writing-mode.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-axis-writing-mode.html.ini
new file mode 100644
index 0000000000..7836051b66
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-axis-writing-mode.html.ini
@@ -0,0 +1,3 @@
+[scroll-timeline-axis-writing-mode.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-document-scroller-quirks.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-document-scroller-quirks.html.ini
new file mode 100644
index 0000000000..856e1d2768
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-document-scroller-quirks.html.ini
@@ -0,0 +1,3 @@
+[scroll-timeline-document-scroller-quirks.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-dynamic.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-dynamic.tentative.html.ini
new file mode 100644
index 0000000000..2a6b7a5f0e
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-dynamic.tentative.html.ini
@@ -0,0 +1,22 @@
+[scroll-timeline-dynamic.tentative.html]
+ [Reverse animation direction [immediate\]]
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1774060
+ expected: FAIL
+
+ [Reverse animation direction [scroll\]]
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1774060
+ expected: FAIL
+
+ [Switching timelines and pausing at the same time [immediate\]]
+ bug: https://github.com/w3c/csswg-drafts/issues/5653
+ expected: FAIL
+
+ [Switching timelines and pausing at the same time [scroll\]]
+ bug: https://github.com/w3c/csswg-drafts/issues/5653
+ expected: FAIL
+
+ [Change to timeline attachment while paused [immediate\]]
+ expected: FAIL
+
+ [Change to timeline attachment while paused [scroll\]]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-in-container-query.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-in-container-query.html.ini
new file mode 100644
index 0000000000..b1557ec712
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-in-container-query.html.ini
@@ -0,0 +1,5 @@
+[scroll-timeline-in-container-query.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Timeline appearing via container queries]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-inactive.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-inactive.html.ini
new file mode 100644
index 0000000000..fd04583b49
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-inactive.html.ini
@@ -0,0 +1,6 @@
+[scroll-timeline-inactive.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Animation does not apply when timeline is initially inactive]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1817051
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-multi-pass.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-multi-pass.tentative.html.ini
new file mode 100644
index 0000000000..27d8454e66
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-multi-pass.tentative.html.ini
@@ -0,0 +1,6 @@
+[scroll-timeline-multi-pass.tentative.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Multiple style/layout passes occur when necessary]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1817051
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-name-shadow.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-name-shadow.html.ini
new file mode 100644
index 0000000000..9d7c3381ff
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-name-shadow.html.ini
@@ -0,0 +1,12 @@
+[scroll-timeline-name-shadow.html]
+ [Outer animation can see scroll timeline defined by :host]
+ expected: FAIL
+
+ [Outer animation can see scroll timeline defined by ::slotted]
+ expected: FAIL
+
+ [Inner animation can see scroll timeline defined by ::part]
+ expected: FAIL
+
+ [Slotted element can see scroll timeline within the shadow]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-nearest-dirty.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-nearest-dirty.html.ini
new file mode 100644
index 0000000000..e0acbc2804
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-nearest-dirty.html.ini
@@ -0,0 +1,3 @@
+[scroll-timeline-nearest-dirty.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-nearest-with-absolute-positioned-element.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-nearest-with-absolute-positioned-element.html.ini
new file mode 100644
index 0000000000..de009d795f
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-nearest-with-absolute-positioned-element.html.ini
@@ -0,0 +1,3 @@
+[scroll-timeline-nearest-with-absolute-positioned-element.html]
+ [Resolving scroll(nearest) for an absolutely positioned element]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-paused-animations.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-paused-animations.html.ini
new file mode 100644
index 0000000000..47a933dcf0
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-paused-animations.html.ini
@@ -0,0 +1,8 @@
+[scroll-timeline-paused-animations.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test that the scroll animation is paused]
+ expected: FAIL
+
+ [Test that the scroll animation is paused by updating animation-play-state]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-responsiveness-from-endpoint.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-responsiveness-from-endpoint.html.ini
new file mode 100644
index 0000000000..419c8e0c7f
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-responsiveness-from-endpoint.html.ini
@@ -0,0 +1,5 @@
+[scroll-timeline-responsiveness-from-endpoint.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test that the scroll animation is still responsive after moving from 100%]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-root-dirty.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-root-dirty.html.ini
new file mode 100644
index 0000000000..f664892da5
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-root-dirty.html.ini
@@ -0,0 +1,3 @@
+[scroll-timeline-root-dirty.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-sampling.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-sampling.html.ini
new file mode 100644
index 0000000000..6f0d9c9224
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-sampling.html.ini
@@ -0,0 +1,6 @@
+[scroll-timeline-sampling.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Scroll position is sampled once per frame]
+ expected: FAIL
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1817051
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-shorthand.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-shorthand.tentative.html.ini
new file mode 100644
index 0000000000..3644756b58
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-shorthand.tentative.html.ini
@@ -0,0 +1,57 @@
+[scroll-timeline-shorthand.tentative.html]
+ [e.style['scroll-timeline'\] = "abc vertical local" should set scroll-timeline-attachment]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "abc vertical local" should set scroll-timeline-axis]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "abc vertical local" should set scroll-timeline-name]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "abc vertical local" should not set unrelated longhands]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "inline horizontal defer" should set scroll-timeline-attachment]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "inline horizontal defer" should set scroll-timeline-axis]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "inline horizontal defer" should set scroll-timeline-name]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "inline horizontal defer" should not set unrelated longhands]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "abc vertical ancestor, def" should set scroll-timeline-attachment]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "abc vertical ancestor, def" should set scroll-timeline-axis]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "abc vertical ancestor, def" should set scroll-timeline-name]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "abc vertical ancestor, def" should not set unrelated longhands]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "abc, def" should set scroll-timeline-attachment]
+ expected: FAIL
+
+ [Shorthand contraction of scroll-timeline-name:abc:undefined;scroll-timeline-axis:inline:undefined;scroll-timeline-attachment:defer:undefined]
+ expected: FAIL
+
+ [Shorthand contraction of scroll-timeline-name:a, b:undefined;scroll-timeline-axis:inline, block:undefined;scroll-timeline-attachment:ancestor, local:undefined]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "abc defer vertical" should set the property value]
+ expected: FAIL
+
+ [e.style['scroll-timeline'\] = "abc vertical defer" should set the property value]
+ expected: FAIL
+
+ [Property scroll-timeline value 'abc defer vertical']
+ expected: FAIL
+
+ [Property scroll-timeline value 'abc vertical defer']
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-update-reversed-animation.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-update-reversed-animation.html.ini
new file mode 100644
index 0000000000..5060142f0f
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-update-reversed-animation.html.ini
@@ -0,0 +1,2 @@
+[scroll-timeline-update-reversed-animation.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/scroll-timeline-with-percent-delay.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-with-percent-delay.tentative.html.ini
new file mode 100644
index 0000000000..6f723c4d6b
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/scroll-timeline-with-percent-delay.tentative.html.ini
@@ -0,0 +1,3 @@
+[scroll-timeline-with-percent-delay.tentative.html]
+ [ScrollTimeline with animation delays as percentages]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/timeline-offset-in-keyframe-change-timeline.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/timeline-offset-in-keyframe-change-timeline.tentative.html.ini
new file mode 100644
index 0000000000..3d876850e7
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/timeline-offset-in-keyframe-change-timeline.tentative.html.ini
@@ -0,0 +1,3 @@
+[timeline-offset-in-keyframe-change-timeline.tentative.html]
+ [getKeyframes with timeline-offsets]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/timeline-offset-keyframes-hidden-subject.html.ini b/testing/web-platform/meta/scroll-animations/css/timeline-offset-keyframes-hidden-subject.html.ini
new file mode 100644
index 0000000000..02b5556bee
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/timeline-offset-keyframes-hidden-subject.html.ini
@@ -0,0 +1,9 @@
+[timeline-offset-keyframes-hidden-subject.html]
+ expected:
+ if (os == "mac") and not debug: [OK, TIMEOUT]
+ TIMEOUT
+ [Keyframes with timeline-offsets ignored when timeline is inactive]
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1823509
+ expected:
+ if (os == "mac") and not debug: [FAIL, TIMEOUT]
+ TIMEOUT
diff --git a/testing/web-platform/meta/scroll-animations/css/timeline-offset-keyframes-with-document-timeline.html.ini b/testing/web-platform/meta/scroll-animations/css/timeline-offset-keyframes-with-document-timeline.html.ini
new file mode 100644
index 0000000000..b3d384fb0f
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/timeline-offset-keyframes-with-document-timeline.html.ini
@@ -0,0 +1,3 @@
+[timeline-offset-keyframes-with-document-timeline.html]
+ [Keyframes with timeline-offsets reported but not reachable when using a document timeline]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/timeline-range-name-offset-in-keyframes.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/timeline-range-name-offset-in-keyframes.tentative.html.ini
new file mode 100644
index 0000000000..3e66247beb
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/timeline-range-name-offset-in-keyframes.tentative.html.ini
@@ -0,0 +1,3 @@
+[timeline-range-name-offset-in-keyframes.tentative.html]
+ [Timeline offset in Animation Keyframes]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/timeline-scope-computed.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/timeline-scope-computed.tentative.html.ini
new file mode 100644
index 0000000000..f446a9d836
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/timeline-scope-computed.tentative.html.ini
@@ -0,0 +1,33 @@
+[timeline-scope-computed.tentative.html]
+ [Property timeline-scope value 'initial']
+ expected: FAIL
+
+ [Property timeline-scope value 'inherit']
+ expected: FAIL
+
+ [Property timeline-scope value 'unset']
+ expected: FAIL
+
+ [Property timeline-scope value 'revert']
+ expected: FAIL
+
+ [Property timeline-scope value 'none']
+ expected: FAIL
+
+ [Property timeline-scope value 'test']
+ expected: FAIL
+
+ [Property timeline-scope value 'foo, bar']
+ expected: FAIL
+
+ [Property timeline-scope value 'bar, foo']
+ expected: FAIL
+
+ [Property timeline-scope value 'a, b, c, D, e']
+ expected: FAIL
+
+ [The timeline-scope property shows up in CSSStyleDeclaration enumeration]
+ expected: FAIL
+
+ [The timeline-scope property shows up in CSSStyleDeclaration.cssText]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/timeline-scope-parsing.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/timeline-scope-parsing.tentative.html.ini
new file mode 100644
index 0000000000..4773d62c8e
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/timeline-scope-parsing.tentative.html.ini
@@ -0,0 +1,33 @@
+[timeline-scope-parsing.tentative.html]
+ [e.style['timeline-scope'\] = "initial" should set the property value]
+ expected: FAIL
+
+ [e.style['timeline-scope'\] = "inherit" should set the property value]
+ expected: FAIL
+
+ [e.style['timeline-scope'\] = "unset" should set the property value]
+ expected: FAIL
+
+ [e.style['timeline-scope'\] = "revert" should set the property value]
+ expected: FAIL
+
+ [e.style['timeline-scope'\] = "none" should set the property value]
+ expected: FAIL
+
+ [e.style['timeline-scope'\] = "abc" should set the property value]
+ expected: FAIL
+
+ [e.style['timeline-scope'\] = " abc" should set the property value]
+ expected: FAIL
+
+ [e.style['timeline-scope'\] = "aBc" should set the property value]
+ expected: FAIL
+
+ [e.style['timeline-scope'\] = "foo, bar" should set the property value]
+ expected: FAIL
+
+ [e.style['timeline-scope'\] = "bar, foo" should set the property value]
+ expected: FAIL
+
+ [e.style['timeline-scope'\] = "auto" should set the property value]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-animation-range-update.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-animation-range-update.tentative.html.ini
new file mode 100644
index 0000000000..3166e8227f
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-animation-range-update.tentative.html.ini
@@ -0,0 +1,3 @@
+[view-timeline-animation-range-update.tentative.html]
+ [Ensure that animation is updated on a style change]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-animation.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-animation.html.ini
new file mode 100644
index 0000000000..10b77abf48
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-animation.html.ini
@@ -0,0 +1,13 @@
+[view-timeline-animation.html]
+ [Default view-timeline]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [Horizontal view-timeline]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [Multiple view-timelines on the same element]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+ FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-attachment-computed-tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-attachment-computed-tentative.html.ini
new file mode 100644
index 0000000000..1c72a8fb42
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-attachment-computed-tentative.html.ini
@@ -0,0 +1,39 @@
+[view-timeline-attachment-computed-tentative.html]
+ [Property view-timeline-attachment value 'initial']
+ expected: FAIL
+
+ [Property view-timeline-attachment value 'inherit']
+ expected: FAIL
+
+ [Property view-timeline-attachment value 'unset']
+ expected: FAIL
+
+ [Property view-timeline-attachment value 'revert']
+ expected: FAIL
+
+ [Property view-timeline-attachment value 'local']
+ expected: FAIL
+
+ [Property view-timeline-attachment value 'defer']
+ expected: FAIL
+
+ [Property view-timeline-attachment value 'ancestor']
+ expected: FAIL
+
+ [Property view-timeline-attachment value 'local, defer']
+ expected: FAIL
+
+ [Property view-timeline-attachment value 'defer, ancestor']
+ expected: FAIL
+
+ [Property view-timeline-attachment value 'local, defer, ancestor']
+ expected: FAIL
+
+ [Property view-timeline-attachment value 'local, local, local, local']
+ expected: FAIL
+
+ [The view-timeline-attachment property shows up in CSSStyleDeclaration enumeration]
+ expected: FAIL
+
+ [The view-timeline-attachment property shows up in CSSStyleDeclaration.cssText]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-attachment-parsing-tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-attachment-parsing-tentative.html.ini
new file mode 100644
index 0000000000..3a2bac2e44
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-attachment-parsing-tentative.html.ini
@@ -0,0 +1,33 @@
+[view-timeline-attachment-parsing-tentative.html]
+ [e.style['view-timeline-attachment'\] = "initial" should set the property value]
+ expected: FAIL
+
+ [e.style['view-timeline-attachment'\] = "inherit" should set the property value]
+ expected: FAIL
+
+ [e.style['view-timeline-attachment'\] = "unset" should set the property value]
+ expected: FAIL
+
+ [e.style['view-timeline-attachment'\] = "revert" should set the property value]
+ expected: FAIL
+
+ [e.style['view-timeline-attachment'\] = "local" should set the property value]
+ expected: FAIL
+
+ [e.style['view-timeline-attachment'\] = "defer" should set the property value]
+ expected: FAIL
+
+ [e.style['view-timeline-attachment'\] = "ancestor" should set the property value]
+ expected: FAIL
+
+ [e.style['view-timeline-attachment'\] = "local, defer" should set the property value]
+ expected: FAIL
+
+ [e.style['view-timeline-attachment'\] = "defer, ancestor" should set the property value]
+ expected: FAIL
+
+ [e.style['view-timeline-attachment'\] = "local, defer, ancestor, local" should set the property value]
+ expected: FAIL
+
+ [e.style['view-timeline-attachment'\] = "local, local, local, local" should set the property value]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-attachment.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-attachment.html.ini
new file mode 100644
index 0000000000..3ae4adaea6
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-attachment.html.ini
@@ -0,0 +1,33 @@
+[view-timeline-attachment.html]
+ [Descendant can attach to deferred timeline]
+ expected: FAIL
+
+ [Axis of deferred timeline is taken from attached timeline]
+ expected: FAIL
+
+ [Axis of deferred timeline with multiple attachments]
+ expected: FAIL
+
+ [Inset of deferred timeline is taken from attached timeline]
+ expected: FAIL
+
+ [Dynamically re-attaching]
+ expected: FAIL
+
+ [Dynamically attaching]
+ expected: FAIL
+
+ [Dynamically detaching]
+ expected: FAIL
+
+ [Removing/inserting ancestor attached element]
+ expected: FAIL
+
+ [Ancestor attached element becoming display:none/block]
+ expected: FAIL
+
+ [Dynamically becoming a deferred timeline]
+ expected: FAIL
+
+ [Mixing deferred scroll and view-timelines]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-dynamic.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-dynamic.html.ini
new file mode 100644
index 0000000000..3e4a3616ba
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-dynamic.html.ini
@@ -0,0 +1,17 @@
+[view-timeline-dynamic.html]
+ [Dynamically changing view-timeline-name]
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1774060
+ expected: FAIL
+
+ [Element with view-timeline becoming display:none]
+ expected: FAIL
+
+ [Dynamically changing view-timeline-axis]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+ FAIL
+
+ [Dynamically changing view-timeline-inset]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+ FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-inset-animation.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-inset-animation.html.ini
new file mode 100644
index 0000000000..64645d7e59
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-inset-animation.html.ini
@@ -0,0 +1,88 @@
+[view-timeline-inset-animation.html]
+ [view-timeline-inset with horizontal scroller]
+ expected: FAIL
+
+ [view-timeline-inset with inline scroller]
+ expected: FAIL
+
+ [view-timeline-inset:auto, inline]
+ expected: FAIL
+
+ [view-timeline-inset:auto, inline, vertical-rl]
+ expected: FAIL
+
+ [view-timeline-inset:auto, inline, vertical-lr]
+ expected: FAIL
+
+ [view-timeline-inset:auto, inline, rtl]
+ expected: FAIL
+
+ [view-timeline-inset:auto, inline, vertical-rl, rtl]
+ expected: FAIL
+
+ [view-timeline-inset:auto, inline, vertical-lr, rtl]
+ expected: FAIL
+
+ [view-timeline-inset:auto, vertical, vertical-rl]
+ expected: FAIL
+
+ [view-timeline-inset:auto, vertical, vertical-rl, rtl]
+ expected: FAIL
+
+ [view-timeline-inset:auto, horizontal]
+ expected: FAIL
+
+ [view-timeline-inset:auto, horizontal, rtl]
+ expected: FAIL
+
+ [view-timeline-inset with block scroller]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline-inset:auto, block]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline-inset:auto, vertical]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline-inset:auto, block, vertical-rl]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline-inset with one value]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline-inset:auto, horizontal, vertical-lr]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline-inset with two values]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline-inset:auto, horizontal, vertical-rl]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline-inset with percentage values]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline-inset with em values]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline-inset:auto, mix]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline-inset:auto, block, vertical-lr]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline-inset with negative values]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-keyframe-boundary-interpolation.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-keyframe-boundary-interpolation.html.ini
new file mode 100644
index 0000000000..171a878ea5
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-keyframe-boundary-interpolation.html.ini
@@ -0,0 +1,8 @@
+[view-timeline-keyframe-boundary-interpolation.html]
+ expected:
+ if (os == "mac") and not debug: [OK, TIMEOUT]
+ [ViewTimeline with timeline offset keyframes outside [0,1\]]
+ bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1823509
+ expected:
+ if (os == "mac") and not debug: [FAIL, TIMEOUT]
+ FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-lookup.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-lookup.html.ini
new file mode 100644
index 0000000000..dddd56dc3d
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-lookup.html.ini
@@ -0,0 +1,24 @@
+[view-timeline-lookup.html]
+ [view-timeline on self]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline on preceding sibling]
+ expected:
+ if (os == "mac") and not debug: [FAIL, PASS]
+ FAIL
+
+ [view-timeline on ancestor]
+ expected:
+ if (os == "mac") and not debug: [PASS, FAIL]
+
+ [view-timeline on ancestor sibling]
+ expected:
+ if (os == "mac") and not debug: [FAIL, PASS]
+ FAIL
+
+ [view-timeline on ancestor sibling, conflict remains unresolved]
+ expected: FAIL
+
+ [view-timeline on ancestor sibling, closer timeline wins]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-name-shadow.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-name-shadow.html.ini
new file mode 100644
index 0000000000..145533b1a4
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-name-shadow.html.ini
@@ -0,0 +1,12 @@
+[view-timeline-name-shadow.html]
+ [Outer animation can see view timeline defined by :host]
+ expected: FAIL
+
+ [Outer animation can see view timeline defined by ::slotted]
+ expected: FAIL
+
+ [Inner animation can see view timeline defined by ::part]
+ expected: FAIL
+
+ [Slotted element can see view timeline within the shadow]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-range-animation.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-range-animation.html.ini
new file mode 100644
index 0000000000..52cf6b2159
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-range-animation.html.ini
@@ -0,0 +1,45 @@
+[view-timeline-range-animation.html]
+ [Animation with ranges [initial, initial\]]
+ expected: FAIL
+
+ [Animation with ranges [cover 0%, cover 100%\]]
+ expected: FAIL
+
+ [Animation with ranges [contain 0%, contain 100%\]]
+ expected: FAIL
+
+ [Animation with ranges [exit 0%, exit 100%\]]
+ expected: FAIL
+
+ [Animation with ranges [cover 20px, cover 100px\]]
+ expected: FAIL
+
+ [Animation with ranges [contain 20px, contain 100px\]]
+ expected: FAIL
+
+ [Animation with ranges [exit 20px, exit 80px\]]
+ expected: FAIL
+
+ [Animation with ranges [contain 20px, contain calc(100px - 10%)\]]
+ expected: FAIL
+
+ [Animation with ranges [exit 2em, exit 8em\]]
+ expected: FAIL
+
+ [Animation with ranges [entry 0%, entry 100%\]]
+ expected: FAIL
+
+ [Animation with ranges [contain -50%, entry 200%\]]
+ expected: FAIL
+
+ [Animation with ranges [entry 0%, exit 100%\]]
+ expected: FAIL
+
+ [Animation with ranges [entry 20px, entry 100px\]]
+ expected: FAIL
+
+ [Animation with ranges [entry-crossing 20px, entry-crossing 100px\]]
+ expected: FAIL
+
+ [Animation with ranges [exit-crossing 20px, exit-crossing 80px\]]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-range-update-reversed-animation.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-range-update-reversed-animation.html.ini
new file mode 100644
index 0000000000..7fcd230300
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-range-update-reversed-animation.html.ini
@@ -0,0 +1,2 @@
+[view-timeline-range-update-reversed-animation.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-range-update.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-range-update.html.ini
new file mode 100644
index 0000000000..727dd25a0b
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-range-update.html.ini
@@ -0,0 +1,2 @@
+[view-timeline-range-update.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-shorthand.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-shorthand.tentative.html.ini
new file mode 100644
index 0000000000..4cf82e7b18
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-shorthand.tentative.html.ini
@@ -0,0 +1,48 @@
+[view-timeline-shorthand.tentative.html]
+ [e.style['view-timeline'\] = "abc vertical" should set view-timeline-attachment]
+ expected: FAIL
+
+ [e.style['view-timeline'\] = "abc vertical defer, def" should set view-timeline-attachment]
+ expected: FAIL
+
+ [e.style['view-timeline'\] = "abc vertical defer, def" should set view-timeline-axis]
+ expected: FAIL
+
+ [e.style['view-timeline'\] = "abc vertical defer, def" should set view-timeline-name]
+ expected: FAIL
+
+ [e.style['view-timeline'\] = "abc vertical defer, def" should not set unrelated longhands]
+ expected: FAIL
+
+ [e.style['view-timeline'\] = "abc, def" should set view-timeline-attachment]
+ expected: FAIL
+
+ [e.style['view-timeline'\] = "inline horizontal ancestor" should set view-timeline-attachment]
+ expected: FAIL
+
+ [e.style['view-timeline'\] = "inline horizontal ancestor" should set view-timeline-axis]
+ expected: FAIL
+
+ [e.style['view-timeline'\] = "inline horizontal ancestor" should set view-timeline-name]
+ expected: FAIL
+
+ [e.style['view-timeline'\] = "inline horizontal ancestor" should not set unrelated longhands]
+ expected: FAIL
+
+ [Shorthand contraction of view-timeline-name:abc:undefined;view-timeline-axis:inline:undefined;view-timeline-attachment:ancestor:undefined]
+ expected: FAIL
+
+ [Shorthand contraction of view-timeline-name:a, b:undefined;view-timeline-axis:inline, block:undefined;view-timeline-attachment:defer, local:undefined]
+ expected: FAIL
+
+ [e.style['view-timeline'\] = "abc defer vertical" should set the property value]
+ expected: FAIL
+
+ [e.style['view-timeline'\] = "abc vertical defer" should set the property value]
+ expected: FAIL
+
+ [Property view-timeline value 'abc defer vertical']
+ expected: FAIL
+
+ [Property view-timeline value 'abc vertical defer']
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-subject-bounds-update.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-subject-bounds-update.html.ini
new file mode 100644
index 0000000000..6a570239e7
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-subject-bounds-update.html.ini
@@ -0,0 +1,2 @@
+[view-timeline-subject-bounds-update.html]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-used-values.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-used-values.html.ini
new file mode 100644
index 0000000000..61c795aa3c
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-used-values.html.ini
@@ -0,0 +1,8 @@
+[view-timeline-used-values.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Use the last value from view-timeline-axis if omitted]
+ expected: FAIL
+
+ [Use the last value from view-timeline-inset if omitted]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-with-delay-and-range.tentative.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-with-delay-and-range.tentative.html.ini
new file mode 100644
index 0000000000..b3a33c720d
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-with-delay-and-range.tentative.html.ini
@@ -0,0 +1,3 @@
+[view-timeline-with-delay-and-range.tentative.html]
+ [ViewTimeline with animation delays and range]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/css/view-timeline-with-transform-on-subject.html.ini b/testing/web-platform/meta/scroll-animations/css/view-timeline-with-transform-on-subject.html.ini
new file mode 100644
index 0000000000..5b77d22345
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/css/view-timeline-with-transform-on-subject.html.ini
@@ -0,0 +1,3 @@
+[view-timeline-with-transform-on-subject.html]
+ [ViewTimeline use untransformed box for range calculations]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/__dir__.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/__dir__.ini
new file mode 100644
index 0000000000..2ef043b928
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/__dir__.ini
@@ -0,0 +1 @@
+implementation-status: backlog
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-animatable-interface.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-animatable-interface.html.ini
new file mode 100644
index 0000000000..ef20f32e2b
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-animatable-interface.html.ini
@@ -0,0 +1,2 @@
+[animation-with-animatable-interface.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-display-none.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-display-none.html.ini
new file mode 100644
index 0000000000..a9b9d83256
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-display-none.html.ini
@@ -0,0 +1,2 @@
+[animation-with-display-none.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-overflow-hidden.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-overflow-hidden.html.ini
new file mode 100644
index 0000000000..0563577b85
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-overflow-hidden.html.ini
@@ -0,0 +1,2 @@
+[animation-with-overflow-hidden.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-root-scroller.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-root-scroller.html.ini
new file mode 100644
index 0000000000..661a7805fb
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-root-scroller.html.ini
@@ -0,0 +1,2 @@
+[animation-with-root-scroller.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-transform.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-transform.html.ini
new file mode 100644
index 0000000000..7ff574072b
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/animation-with-transform.html.ini
@@ -0,0 +1,2 @@
+[animation-with-transform.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/cancel-animation.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/cancel-animation.html.ini
new file mode 100644
index 0000000000..6d0262b0cc
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/cancel-animation.html.ini
@@ -0,0 +1,31 @@
+[cancel-animation.html]
+ [oncancel event is fired when the timeline is inactive.]
+ expected: FAIL
+
+ [A play-pending ready promise should be rejected when the animation is canceled]
+ expected: FAIL
+
+ [Canceling an animation with inactive timeline should cause its start time and hold time to be unresolved]
+ expected: FAIL
+
+ [Canceling an animation should cause its start time and hold time to be unresolved]
+ expected: FAIL
+
+ [A pause-pending ready promise should be rejected when the animation is canceled]
+ expected: FAIL
+
+ [The cancel event should NOT be fired if the animation is already idle]
+ expected: FAIL
+
+ [Canceling an animation should fire cancel event on orphaned element]
+ expected: FAIL
+
+ [The finished promise should NOT be rejected if the animation is already idle]
+ expected: FAIL
+
+ [When an animation is canceled, it should create a resolved Promise]
+ expected: FAIL
+
+ [The ready promise should be replaced when the animation is canceled]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/constructor-no-document.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/constructor-no-document.html.ini
new file mode 100644
index 0000000000..9468a0f99b
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/constructor-no-document.html.ini
@@ -0,0 +1,3 @@
+[constructor-no-document.html]
+ [The source can be null if the document.scrollingElement does not exist]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/constructor.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/constructor.html.ini
new file mode 100644
index 0000000000..dd1866612b
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/constructor.html.ini
@@ -0,0 +1,30 @@
+[constructor.html]
+ [A ScrollTimeline created with a null source should have no source]
+ expected: FAIL
+
+ [A ScrollTimeline can be created with a source]
+ expected: FAIL
+
+ [A ScrollTimeline created without a source should use the document.scrollingElement]
+ expected: FAIL
+
+ [A ScrollTimeline can be created with a non-scrolling source]
+ expected: FAIL
+
+ [Creating a ScrollTimeline with an invalid axis value should throw]
+ expected: FAIL
+
+ ['horizontal' is a valid axis value]
+ expected: FAIL
+
+ [A ScrollTimeline created with the default axis should default to 'block']
+ expected: FAIL
+
+ ['vertical' is a valid axis value]
+ expected: FAIL
+
+ ['block' is a valid axis value]
+ expected: FAIL
+
+ ['inline' is a valid axis value]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/current-time-nan.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/current-time-nan.html.ini
new file mode 100644
index 0000000000..c5d7d7b9bb
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/current-time-nan.html.ini
@@ -0,0 +1,12 @@
+[current-time-nan.html]
+ [currentTime should be null for a display: none source]
+ expected: FAIL
+
+ [currentTime should be null when the source is not a scroller]
+ expected: FAIL
+
+ [currentTime should be null for an unattached source]
+ expected: FAIL
+
+ [currentTime should be null for a display: inline source]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/current-time-root-scroller.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/current-time-root-scroller.html.ini
new file mode 100644
index 0000000000..4e498d17e0
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/current-time-root-scroller.html.ini
@@ -0,0 +1,3 @@
+[current-time-root-scroller.html]
+ [currentTime calculates the correct time for a document.scrollingElement source]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/current-time-writing-modes.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/current-time-writing-modes.html.ini
new file mode 100644
index 0000000000..6071c52bb8
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/current-time-writing-modes.html.ini
@@ -0,0 +1,9 @@
+[current-time-writing-modes.html]
+ [currentTime handles direction: rtl correctly]
+ expected: FAIL
+
+ [currentTime handles writing-mode: vertical-rl correctly]
+ expected: FAIL
+
+ [currentTime handles writing-mode: vertical-lr correctly]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/effect-updateTiming.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/effect-updateTiming.html.ini
new file mode 100644
index 0000000000..b9795f72df
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/effect-updateTiming.html.ini
@@ -0,0 +1,198 @@
+[effect-updateTiming.html]
+ [Allows setting the delay to a positive number]
+ expected: FAIL
+
+ [Allows setting the delay to a negative number]
+ expected: FAIL
+
+ [Allows setting the delay of an animation in progress: positive delay that causes the animation to be no longer in-effect]
+ expected: FAIL
+
+ [Allows setting the delay of an animation in progress: negative delay that seeks into the active interval]
+ expected: FAIL
+
+ [Allows setting the delay of an animation in progress: large negative delay that causes the animation to be finished]
+ expected: FAIL
+
+ [Throws when setting invalid delay value: NaN]
+ expected: FAIL
+
+ [Throws when setting invalid delay value: Infinity]
+ expected: FAIL
+
+ [Throws when setting invalid delay value: -Infinity]
+ expected: FAIL
+
+ [Allows setting the endDelay to a positive number]
+ expected: FAIL
+
+ [Allows setting the endDelay to a negative number]
+ expected: FAIL
+
+ [Throws when setting the endDelay to infinity]
+ expected: FAIL
+
+ [Throws when setting the endDelay to negative infinity]
+ expected: FAIL
+
+ [Allows setting the fill to 'none']
+ expected: FAIL
+
+ [Allows setting the fill to 'forwards']
+ expected: FAIL
+
+ [Allows setting the fill to 'backwards']
+ expected: FAIL
+
+ [Allows setting the fill to 'both']
+ expected: FAIL
+
+ [Allows setting the iterationStart of an animation in progress: backwards-filling]
+ expected: FAIL
+
+ [Allows setting the iterationStart of an animation in progress: active phase]
+ expected: FAIL
+
+ [Allows setting the iterationStart of an animation in progress: forwards-filling]
+ expected: FAIL
+
+ [Throws when setting invalid iterationStart value: -1]
+ expected: FAIL
+
+ [Throws when setting invalid iterationStart value: NaN]
+ expected: FAIL
+
+ [Throws when setting invalid iterationStart value: Infinity]
+ expected: FAIL
+
+ [Throws when setting invalid iterationStart value: -Infinity]
+ expected: FAIL
+
+ [Allows setting iterations to a double value]
+ expected: FAIL
+
+ [Throws when setting iterations to Infinity]
+ expected: FAIL
+
+ [Allows setting the iterations of an animation in progress]
+ expected: FAIL
+
+ [Allows setting the iterations of an animation in progress with duration "auto"]
+ expected: FAIL
+
+ [Allows setting the duration to 123.45]
+ expected: FAIL
+
+ [Allows setting the duration to auto]
+ expected: FAIL
+
+ [Throws when setting invalid duration: -1]
+ expected: FAIL
+
+ [Throws when setting invalid duration: NaN]
+ expected: FAIL
+
+ [Throws when setting invalid duration: Infinity]
+ expected: FAIL
+
+ [Throws when setting invalid duration: -Infinity]
+ expected: FAIL
+
+ [Throws when setting invalid duration: "abc"]
+ expected: FAIL
+
+ [Throws when setting invalid duration: "100"]
+ expected: FAIL
+
+ [Allows setting the duration of an animation in progress]
+ expected: FAIL
+
+ [Allows setting the duration of an animation in progress such that the the start and current time do not change]
+ expected: FAIL
+
+ [Allows setting the direction to each of the possible keywords]
+ expected: FAIL
+
+ [Allows setting the direction of an animation in progress from 'normal' to 'reverse']
+ expected: FAIL
+
+ [Allows setting the direction of an animation in progress from 'normal' to 'reverse' while at start of active interval]
+ expected: FAIL
+
+ [Allows setting the direction of an animation in progress from 'normal' to 'reverse' while filling backwards]
+ expected: FAIL
+
+ [Allows setting the direction of an animation in progress from 'normal' to 'alternate']
+ expected: FAIL
+
+ [Allows setting the direction of an animation in progress from 'alternate' to 'alternate-reverse']
+ expected: FAIL
+
+ [Allows setting the easing to a step-start function]
+ expected: FAIL
+
+ [Allows setting the easing to a steps(1, start) function]
+ expected: FAIL
+
+ [Allows setting the easing to a steps(2, start) function]
+ expected: FAIL
+
+ [Allows setting the easing to a step-end function]
+ expected: FAIL
+
+ [Allows setting the easing to a steps(1) function]
+ expected: FAIL
+
+ [Allows setting the easing to a steps(1, end) function]
+ expected: FAIL
+
+ [Allows setting the easing to a steps(2, end) function]
+ expected: FAIL
+
+ [Allows setting the easing to a linear function]
+ expected: FAIL
+
+ [Allows setting the easing to a ease function]
+ expected: FAIL
+
+ [Allows setting the easing to a ease-in function]
+ expected: FAIL
+
+ [Allows setting the easing to a ease-in-out function]
+ expected: FAIL
+
+ [Allows setting the easing to a ease-out function]
+ expected: FAIL
+
+ [Allows setting the easing to a easing function which produces values greater than 1]
+ expected: FAIL
+
+ [Allows setting the easing to a easing function which produces values less than 1]
+ expected: FAIL
+
+ [Updates the specified value when setting the easing to 'ease']
+ expected: FAIL
+
+ [Updates the specified value when setting the easing to 'linear']
+ expected: FAIL
+
+ [Updates the specified value when setting the easing to 'ease-in']
+ expected: FAIL
+
+ [Updates the specified value when setting the easing to 'ease-out']
+ expected: FAIL
+
+ [Updates the specified value when setting the easing to 'ease-in-out']
+ expected: FAIL
+
+ [Updates the specified value when setting the easing to 'cubic-bezier(0.1, 5, 0.23, 0)']
+ expected: FAIL
+
+ [Updates the specified value when setting the easing to 'steps(3, start)']
+ expected: FAIL
+
+ [Updates the specified value when setting the easing to 'steps(3)']
+ expected: FAIL
+
+ [Allows setting the easing of an animation in progress]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/finish-animation.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/finish-animation.html.ini
new file mode 100644
index 0000000000..90bc9e291e
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/finish-animation.html.ini
@@ -0,0 +1,63 @@
+[finish-animation.html]
+ [Finishing an animation resolves the finished promise synchronously]
+ expected: FAIL
+
+ [Finishing an animation attached to inactive timeline while play-pending doesn't resolves the pending task]
+ expected: FAIL
+
+ [Finishing an animation seeks to the end time]
+ expected: FAIL
+
+ [Finishing an animation fires finish event on orphaned element]
+ expected: FAIL
+
+ [A pending ready promise is resolved and not replaced when the animation is finished]
+ expected: FAIL
+
+ [Finishing a reversed animation with a current time less than zero makes it jump back to zero]
+ expected: FAIL
+
+ [Finishing a reversed animation jumps to zero time]
+ expected: FAIL
+
+ [Finishing an animation with a zero playback rate throws]
+ expected: FAIL
+
+ [Finishing a canceled animation sets the current and start times]
+ expected: FAIL
+
+ [Finishing idle animation attached to inactive timeline pauses the animation.]
+ expected: FAIL
+
+ [Finishing an animation while play-pending resolves the pending task immediately]
+ expected: FAIL
+
+ [Finishing an animation with a current time past the effect end jumps back to the end]
+ expected: FAIL
+
+ [Finishing idle animation produces correct state and fires finish event.]
+ expected: FAIL
+
+ [Finishing running animation attached to inactive timeline pauses the animation.]
+ expected: FAIL
+
+ [Finishing running animation produces correct state and fires finish event.]
+ expected: FAIL
+
+ [Finishing a pause-pending animation resolves the pending task immediately and update the start time]
+ expected: FAIL
+
+ [Finishing a paused animation resolves the start time]
+ expected: FAIL
+
+ [An exception should be thrown if the effective playback rate is zero]
+ expected: FAIL
+
+ [Finishing an animation during an aborted pause makes it finished immediately]
+ expected: FAIL
+
+ [A pending playback rate should be applied immediately when an animation is finished]
+ expected: FAIL
+
+ [Finishing a pause-pending animation with negative playback rate resolves the pending task immediately]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/idlharness.window.js.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/idlharness.window.js.ini
new file mode 100644
index 0000000000..d3d19dc025
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/idlharness.window.js.ini
@@ -0,0 +1,72 @@
+[idlharness.window.html]
+ [ScrollTimeline interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ViewTimeline interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ViewTimeline interface: attribute endOffset]
+ expected: FAIL
+
+ [ScrollTimeline interface object length]
+ expected: FAIL
+
+ [ScrollTimeline interface object name]
+ expected: FAIL
+
+ [Stringification of new ScrollTimeline()]
+ expected: FAIL
+
+ [ViewTimeline interface: attribute startOffset]
+ expected: FAIL
+
+ [ScrollTimeline interface: attribute source]
+ expected: FAIL
+
+ [ViewTimeline interface object length]
+ expected: FAIL
+
+ [ScrollTimeline interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ViewTimeline interface: existence and properties of interface object]
+ expected: FAIL
+
+ [ScrollTimeline interface: attribute axis]
+ expected: FAIL
+
+ [ScrollTimeline must be primary interface of new ScrollTimeline()]
+ expected: FAIL
+
+ [ScrollTimeline interface: new ScrollTimeline() must inherit property "axis" with the proper type]
+ expected: FAIL
+
+ [ViewTimeline interface: attribute subject]
+ expected: FAIL
+
+ [ScrollTimeline interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ViewTimeline interface object name]
+ expected: FAIL
+
+ [ScrollTimeline interface: new ScrollTimeline() must inherit property "source" with the proper type]
+ expected: FAIL
+
+ [ViewTimeline interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ViewTimeline interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ScrollTimeline interface: existence and properties of interface object]
+ expected: FAIL
+
+ [AnimationTimeline interface: new ScrollTimeline() must inherit property "getCurrentTime(optional AnimationTimeOptions)" with the proper type]
+ expected: FAIL
+
+ [AnimationTimeline interface: operation getCurrentTime(optional AnimationTimeOptions)]
+ expected: FAIL
+
+ [AnimationTimeline interface: calling getCurrentTime(optional AnimationTimeOptions) on new ScrollTimeline() with too few arguments must throw TypeError]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/layout-changes-on-percentage-based-timeline.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/layout-changes-on-percentage-based-timeline.html.ini
new file mode 100644
index 0000000000..c3c209de7b
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/layout-changes-on-percentage-based-timeline.html.ini
@@ -0,0 +1,2 @@
+[layout-changes-on-percentage-based-timeline.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/pause-animation.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/pause-animation.html.ini
new file mode 100644
index 0000000000..7baa5f047c
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/pause-animation.html.ini
@@ -0,0 +1,25 @@
+[pause-animation.html]
+ [Pausing a canceled animation sets the current time]
+ expected: FAIL
+
+ [Pausing clears the start time]
+ expected: FAIL
+
+ [Aborting a pause preserves the start time]
+ expected: FAIL
+
+ [The animation's current time remains fixed after pausing]
+ expected: FAIL
+
+ [A pause-pending animation maintains the current time when applying a pending playback rate]
+ expected: FAIL
+
+ [Animation start and current times are correct if scroll timeline is activated after animation.pause call.]
+ expected: FAIL
+
+ [A pending ready promise should be resolved and not replaced when the animation is paused]
+ expected: FAIL
+
+ [Pause pending task doesn't run when the timeline is inactive.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/play-animation.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/play-animation.html.ini
new file mode 100644
index 0000000000..4e122aa9ff
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/play-animation.html.ini
@@ -0,0 +1,37 @@
+[play-animation.html]
+ [If a pause operation is interrupted, the ready promise is reused]
+ expected: FAIL
+
+ [Resuming an animation from paused calculates start time from hold time]
+ expected: FAIL
+
+ [Playing a finished and reversed animation seeks to end]
+ expected: FAIL
+
+ [A pending playback rate is used when determining auto-rewind behavior]
+ expected: FAIL
+
+ [Playing a finished animation clears the start time]
+ expected: FAIL
+
+ [Playing a running animation leaves the current time unchanged]
+ expected: FAIL
+
+ [Playing a canceled animation backwards sets the start time]
+ expected: FAIL
+
+ [Playing a finished animation seeks back to the start]
+ expected: FAIL
+
+ [Playing a canceled animation sets the start time]
+ expected: FAIL
+
+ [The ready promise should be replaced if the animation is not already pending]
+ expected: FAIL
+
+ [A pending ready promise should be resolved and not replaced when the animation enters the running state]
+ expected: FAIL
+
+ [Playing a pause-pending but previously finished animation seeks back to to the start]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/progress-based-effect-delay.tentative.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/progress-based-effect-delay.tentative.html.ini
new file mode 100644
index 0000000000..11fd4000f6
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/progress-based-effect-delay.tentative.html.ini
@@ -0,0 +1,2 @@
+[progress-based-effect-delay.tentative.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/reverse-animation.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/reverse-animation.html.ini
new file mode 100644
index 0000000000..3dd1cbc064
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/reverse-animation.html.ini
@@ -0,0 +1,39 @@
+[reverse-animation.html]
+ [Reversing an animation when playbackRate < 0 and currentTime < 0 should make it play from the start]
+ expected: FAIL
+
+ [Reversing an animation when playbackRate > 0 and currentTime > effect end should make it play from the end]
+ expected: FAIL
+
+ [Reversing an animation inverts the playback rate]
+ expected: FAIL
+
+ [Reversing an animation does not cause it to resolve the ready promise]
+ expected: FAIL
+
+ [Reversing an animation without an active timeline throws an InvalidStateError]
+ expected: FAIL
+
+ [Reversing an animation when playbackRate > 0 and currentTime < 0 should make it play from the end]
+ expected: FAIL
+
+ [Reversing an animation plays a pausing animation]
+ expected: FAIL
+
+ [Reversing an animation does not cause it to leave the pending state]
+ expected: FAIL
+
+ [Reversing an animation maintains the same current time]
+ expected: FAIL
+
+ [Reversing should use the negative pending playback rate]
+ expected: FAIL
+
+ [Reversing an idle animation from starts playing the animation]
+ expected: FAIL
+
+ [Reversing when when playbackRate == 0 should preserve the current time and playback rate]
+ expected: FAIL
+
+ [Reversing an animation when playbackRate < 0 and currentTime > effect end should make it play from the start]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation-effect-fill-modes.tentative.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation-effect-fill-modes.tentative.html.ini
new file mode 100644
index 0000000000..b1f1cb0173
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation-effect-fill-modes.tentative.html.ini
@@ -0,0 +1,78 @@
+[scroll-animation-effect-fill-modes.tentative.html]
+ [Scroll based animation effect fill mode should return 'auto' for getTiming() and should return 'none' for getComputedTiming().]
+ expected: FAIL
+
+ [Applied effect value before timeline start with fill: forwards]
+ expected: FAIL
+
+ [Applied effect value at timeline start with fill: forwards]
+ expected: FAIL
+
+ [Applied effect value in timeline range with fill: forwards]
+ expected: FAIL
+
+ [Applied effect value at timeline end with fill: forwards]
+ expected: FAIL
+
+ [Applied effect value after timeline end with fill: forwards]
+ expected: FAIL
+
+ [Applied effect value before timeline start with fill: both]
+ expected: FAIL
+
+ [Applied effect value at timeline start with fill: both]
+ expected: FAIL
+
+ [Applied effect value in timeline range with fill: both]
+ expected: FAIL
+
+ [Applied effect value at timeline end with fill: both]
+ expected: FAIL
+
+ [Applied effect value after timeline end with fill: both]
+ expected: FAIL
+
+ [Applied effect value before timeline start with fill: auto]
+ expected: FAIL
+
+ [Applied effect value at timeline start with fill: auto]
+ expected: FAIL
+
+ [Applied effect value in timeline range with fill: auto]
+ expected: FAIL
+
+ [Applied effect value at timeline end with fill: auto]
+ expected: FAIL
+
+ [Applied effect value after timeline end with fill: auto]
+ expected: FAIL
+
+ [Applied effect value at start delay with fill: none]
+ expected: FAIL
+
+ [Applied effect value before start delay with fill: none]
+ expected: FAIL
+
+ [Applied effect value at midpoint with fill: none]
+ expected: FAIL
+
+ [Applied effect value at effect end with fill: backwards]
+ expected: FAIL
+
+ [Applied effect value before start delay with fill: backwards]
+ expected: FAIL
+
+ [Applied effect value at start delay with fill: backwards]
+ expected: FAIL
+
+ [Applied effect value after effect end with fill: none]
+ expected: FAIL
+
+ [Applied effect value at effect end with fill: none]
+ expected: FAIL
+
+ [Applied effect value after effect end with fill: backwards]
+ expected: FAIL
+
+ [Applied effect value at midpoint with fill: backwards]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation-effect-phases.tentative.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation-effect-phases.tentative.html.ini
new file mode 100644
index 0000000000..00578e7786
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation-effect-phases.tentative.html.ini
@@ -0,0 +1,87 @@
+[scroll-animation-effect-phases.tentative.html]
+ [Verify that (play -> pause -> play) doesn't change phase/progress.]
+ expected: FAIL
+
+ [Pause in before phase, scroll timeline into active phase, animation should remain in the before phase]
+ expected: FAIL
+
+ [Make scroller inactive, then set current time to an in range time]
+ expected: FAIL
+
+ [Animation effect is still applied after pausing and making timeline inactive.]
+ expected: FAIL
+
+ [Current times and effect phase at timeline start when delay = 0 and endDelay = 500 |]
+ expected: FAIL
+
+ [Current times and effect phase at timeline start when delay = 500 and endDelay = 0 |]
+ expected: FAIL
+
+ [Pause in before phase, set animation current time to be in active range, animation should become active. Scrolling should have no effect.]
+ expected: FAIL
+
+ [Make timeline inactive, force style update then pause the animation. No crashing indicates test success.]
+ expected: FAIL
+
+ [Current times and effect phase at start delay when delay = 250 and endDelay = 250 |]
+ expected: FAIL
+
+ [Current times and effect phase at start when delay = 0 and endDelay = 0 |]
+ expected: FAIL
+
+ [Current times and effect phase in active range when delay = 500 and endDelay = 0 |]
+ expected: FAIL
+
+ [Current times and effect phase after effect end time when delay = 0 and endDelay = 500 |]
+ expected: FAIL
+
+ [Current times and effect phase at effect end time when delay = 500 and endDelay = 0 |]
+ expected: FAIL
+
+ [Current times and effect phase at effect end time when delay = 250 and endDelay = 250 |]
+ expected: FAIL
+
+ [Current times and effect phase at effect end time when delay = 0 and endDelay = 0 |]
+ expected: FAIL
+
+ [Current times and effect phase at timeline boundary when delay = 250 and endDelay = 250 |]
+ expected: FAIL
+
+ [Current times and effect phase in active range when delay = 250 and endDelay = 250 |]
+ expected: FAIL
+
+ [Current times and effect phase at timeline end when delay = -125 and endDelay = -125 |]
+ expected: FAIL
+
+ [Current times and effect phase in active range when delay = 0 and endDelay = 500 |]
+ expected: FAIL
+
+ [Current times and effect phase before start delay when delay = 500 and endDelay = 0 |]
+ expected: FAIL
+
+ [Current times and effect phase at timeline boundary when delay = 0 and endDelay = 500 |]
+ expected: FAIL
+
+ [Current times and effect phase in active range when delay = 0 and endDelay = 0 |]
+ expected: FAIL
+
+ [Current times and effect phase at timeline start when delay = -125 and endDelay = -125 |]
+ expected: FAIL
+
+ [Current times and effect phase before start delay when delay = 250 and endDelay = 250 |]
+ expected: FAIL
+
+ [Current times and effect phase in active range when delay = -125 and endDelay = -125 |]
+ expected: FAIL
+
+ [Current times and effect phase at effect end time when delay = 0 and endDelay = 500 |]
+ expected: FAIL
+
+ [Current times and effect phase after effect end time when delay = 250 and endDelay = 250 |]
+ expected: FAIL
+
+ [Current times and effect phase at timeline start when delay = 250 and endDelay = 250 |]
+ expected: FAIL
+
+ [Current times and effect phase at start delay when delay = 500 and endDelay = 0 |]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation-inactive-timeline.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation-inactive-timeline.html.ini
new file mode 100644
index 0000000000..defa965c1f
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation-inactive-timeline.html.ini
@@ -0,0 +1,13 @@
+[scroll-animation-inactive-timeline.html]
+ [Animation start and current times are correct if scroll timeline is activated after animation.play call.]
+ expected: FAIL
+
+ [Play pending task doesn't run when the timeline is inactive.]
+ expected: FAIL
+
+ [Animation current time is correct when the timeline becomes newly inactive and then active again.]
+ expected: FAIL
+
+ [Animation start and current times are correct if scroll timeline is activated after setting start time.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation.html.ini
new file mode 100644
index 0000000000..844e5bae70
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-animation.html.ini
@@ -0,0 +1,16 @@
+[scroll-animation.html]
+ [Animation start and current times are correct for each animation state when the animation starts playing with advanced scroller.]
+ expected: FAIL
+
+ [Animation start and current times are correct when multiple animations are attached to the same timeline.]
+ expected: FAIL
+
+ [Animation start and current times are correct for each animation state.]
+ expected: FAIL
+
+ [Sending animation finished events by finished animation on reverse scrolling.]
+ expected: FAIL
+
+ [Finished animation plays on reverse scrolling.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-timeline-invalidation.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-timeline-invalidation.html.ini
new file mode 100644
index 0000000000..70910b3883
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-timeline-invalidation.html.ini
@@ -0,0 +1,9 @@
+[scroll-timeline-invalidation.html]
+ [Animation current time and effect local time are updated after scroller size changes.]
+ expected: FAIL
+
+ [Animation current time and effect local time are updated after scroller content size changes.]
+ expected: FAIL
+
+ [If scroll animation resizes its scroll timeline scroller, layout reruns once per frame.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-timeline-snapshotting.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-timeline-snapshotting.html.ini
new file mode 100644
index 0000000000..4f21872fc6
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/scroll-timeline-snapshotting.html.ini
@@ -0,0 +1,4 @@
+[scroll-timeline-snapshotting.html]
+ [ScrollTimeline current time is updated after programmatic animated scroll.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/set-current-time-before-play.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/set-current-time-before-play.html.ini
new file mode 100644
index 0000000000..bfbd8a14b1
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/set-current-time-before-play.html.ini
@@ -0,0 +1,2 @@
+[set-current-time-before-play.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/setting-current-time.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/setting-current-time.html.ini
new file mode 100644
index 0000000000..e2bae12e3c
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/setting-current-time.html.ini
@@ -0,0 +1,33 @@
+[setting-current-time.html]
+ [Set animation current time to a value beyond effect end.]
+ expected: FAIL
+
+ [Set animation current time to a negative value.]
+ expected: FAIL
+
+ [Set animation current time to a valid value while playing.]
+ expected: FAIL
+
+ [Setting animation current time to null throws TypeError.]
+ expected: FAIL
+
+ [Setting animation.currentTime then restarting the animation should reset the current time.]
+ expected: FAIL
+
+ [Set animation current time to a valid value without playing.]
+ expected: FAIL
+
+ [Setting current time while play pending overrides the current time]
+ expected: FAIL
+
+ [Set Animation current time then scroll.]
+ expected: FAIL
+
+ [Animation current time set while the timeline is inactive holds when the timeline becomes active again.]
+ expected: FAIL
+
+ [Animation current time and play state are correct when current time is set while the timeline is inactive.]
+ expected: FAIL
+
+ [Setting the current time to an absolute time value throws exception]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/setting-playback-rate.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/setting-playback-rate.html.ini
new file mode 100644
index 0000000000..7f72b2e917
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/setting-playback-rate.html.ini
@@ -0,0 +1,45 @@
+[setting-playback-rate.html]
+ [Zero current time is not affected by playbackRate set while the animation is in play-pending state.]
+ expected: FAIL
+
+ [Initial current time is scaled by playbackRate set while scroll-linked animation is in running state.]
+ expected: FAIL
+
+ [Reversing the playback rate while playing correctly impacts current time during future scrolls]
+ expected: FAIL
+
+ [Zero initial playback rate should correctly modify initial current time.]
+ expected: FAIL
+
+ [The playback rate affects the rate of progress of the current time when scrolling]
+ expected: FAIL
+
+ [Zero current time is not affected by playbackRate set while the animation is in idle state.]
+ expected: FAIL
+
+ [The playback rate set before scroll-linked animation started playing affects the rate of progress of the current time]
+ expected: FAIL
+
+ [Negative initial playback rate should correctly modify initial current time.]
+ expected: FAIL
+
+ [Setting the playback rate while playing scales the set current time.]
+ expected: FAIL
+
+ [Setting the playback rate while play-pending scales the set current time.]
+ expected: FAIL
+
+ [Setting the playback rate while play-pending scales the current time from scrollTimeline.]
+ expected: FAIL
+
+ [Setting a zero playback rate while running preserves the start time]
+ expected: FAIL
+
+ [Reversing an animation with non-boundary aligned start time symmetrically adjusts the start time]
+ expected: FAIL
+
+ [The current time is scaled by playbackRate set while the scroll-linked animation is in play state.]
+ expected: FAIL
+
+ [Setting the playback rate while playing scales the current time from scrollTimeline.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/setting-start-time.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/setting-start-time.html.ini
new file mode 100644
index 0000000000..f6136edea3
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/setting-start-time.html.ini
@@ -0,0 +1,45 @@
+[setting-start-time.html]
+ [Setting the start time clears the hold time when the timeline is inactive]
+ expected: FAIL
+
+ [Setting the start time on a running animation updates the play state]
+ expected: FAIL
+
+ [Setting the start time resolves a pending ready promise]
+ expected: FAIL
+
+ [Setting an unresolved start time on a play-pending animation makes it paused]
+ expected: FAIL
+
+ [Setting an unresolved start time sets the hold time to unresolved when the timeline is inactive]
+ expected: FAIL
+
+ [Setting the start time resolves a pending ready promise when the timelineis inactive]
+ expected: FAIL
+
+ [Setting the start time clears the hold time]
+ expected: FAIL
+
+ [Setting the start time on a reverse running animation updates the play state]
+ expected: FAIL
+
+ [Setting an unresolved start time sets the hold time]
+ expected: FAIL
+
+ [Setting the start time updates the finished state]
+ expected: FAIL
+
+ [Setting an unresolved start time on a play-pending animation makes it idle when the timeline is inactive]
+ expected: FAIL
+
+ [Setting the start time resolves a pending pause task]
+ expected: FAIL
+
+ [Setting the start time of a playing animation applies a pending playback rate]
+ expected: FAIL
+
+ [Setting the start time of a play-pending animation applies a pending playback rate]
+ expected: FAIL
+
+ [Setting the start time to an absolute time value throws exception]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/setting-timeline.tentative.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/setting-timeline.tentative.html.ini
new file mode 100644
index 0000000000..1d2d76e5b3
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/setting-timeline.tentative.html.ini
@@ -0,0 +1,48 @@
+[setting-timeline.tentative.html]
+ [Setting a scroll timeline on a play-pending animation synchronizes currentTime of the animation with the scroll position.]
+ expected: FAIL
+
+ [Setting a scroll timeline on a running animation synchronizes the currentTime of the animation with the scroll position.]
+ expected: FAIL
+
+ [Transitioning from a scroll timeline to a document timeline on a running animation preserves currentTime]
+ expected: FAIL
+
+ [Switching from one scroll timeline to another updates currentTime]
+ expected: FAIL
+
+ [Setting a scroll timeline on a reversed paused animation fixes the currentTime of the animation based on the scroll position when resumed]
+ expected: FAIL
+
+ [Setting a scroll timeline on a reversed play-pending animation synchronizes the currentTime of the animation with the scroll position.]
+ expected: FAIL
+
+ [Switching from a document timeline to a scroll timeline and updating currentTime preserves the new value when unpaused.]
+ expected: FAIL
+
+ [Setting a scroll timeline on a pause-pending animation fixes the currentTime of the animation based on the scroll position once resumed]
+ expected: FAIL
+
+ [Switching from a document timeline to a scroll timeline updates currentTime when unpaused via CSS.]
+ expected: FAIL
+
+ [Setting a scroll timeline on a paused animation fixes the currentTime of the animation based on the scroll position when resumed]
+ expected: FAIL
+
+ [Switching from a null timeline to a scroll timeline on an animation with a resolved start time preserved the play state]
+ expected: FAIL
+
+ [Switching from a document timeline to a scroll timeline and updating startTime preserves the new value when play is called.]
+ expected: FAIL
+
+ [Transitioning from a scroll timeline to a document timeline on a pause-pending animation preserves currentTime]
+ expected: FAIL
+
+ [Transition from a scroll timeline to a document timeline on a reversed paused animation maintains correct currentTime]
+ expected: FAIL
+
+ [Switching from a document timeline to a scroll timeline on an infinite duration animation.]
+ expected: FAIL
+
+ [Transitioning from a scroll timeline to a null timeline on a running animation preserves current progress.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/source-quirks-mode.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/source-quirks-mode.html.ini
new file mode 100644
index 0000000000..88780ed1a8
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/source-quirks-mode.html.ini
@@ -0,0 +1,3 @@
+[source-quirks-mode.html]
+ [Style of <body> is reflected in source attribute in quirks mode]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html.ini
new file mode 100644
index 0000000000..4f4f9a45ba
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline-cancel-one.html.ini
@@ -0,0 +1,2 @@
+[two-animations-attach-to-same-scroll-timeline-cancel-one.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html.ini
new file mode 100644
index 0000000000..edac1b8203
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/two-animations-attach-to-same-scroll-timeline.html.ini
@@ -0,0 +1,2 @@
+[two-animations-attach-to-same-scroll-timeline.html]
+ expected: TIMEOUT
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/update-playback-rate.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/update-playback-rate.html.ini
new file mode 100644
index 0000000000..931ee35810
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/update-playback-rate.html.ini
@@ -0,0 +1,28 @@
+[update-playback-rate.html]
+ [Updating the playback rate maintains the current time]
+ expected: FAIL
+
+ [Updating the playback rate on a play-pending animation maintains the current time]
+ expected: FAIL
+
+ [Updating the playback rate to zero on a finished animation maintains the current time]
+ expected: FAIL
+
+ [Updating the playback rate while running makes the animation pending]
+ expected: FAIL
+
+ [Updating the playback rate on a pause-pending animation maintains the current time]
+ expected: FAIL
+
+ [In the idle state, the playback rate is applied immediately]
+ expected: FAIL
+
+ [If a pending playback rate is set multiple times, the latest wins]
+ expected: FAIL
+
+ [Updating the playback rate on a finished animation maintains the current time]
+ expected: FAIL
+
+ [In the paused state, the playback rate is applied immediately]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/scroll-animations/scroll-timelines/updating-the-finished-state.html.ini b/testing/web-platform/meta/scroll-animations/scroll-timelines/updating-the-finished-state.html.ini
new file mode 100644
index 0000000000..a2cc1a1919
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/scroll-timelines/updating-the-finished-state.html.ini
@@ -0,0 +1,75 @@
+[updating-the-finished-state.html]
+ [Animation finish event is fired again after replaying from start]
+ expected: FAIL
+
+ [Updating the finished state when playing a reversed animation exactly to zero]
+ expected: FAIL
+
+ [Updating the finished state when playback rate is zero and the current time is less than end]
+ expected: FAIL
+
+ [Animation finished promise is replaced after seeking back to start]
+ expected: FAIL
+
+ [Updating the finished state when playback rate is zero and the current time is less than zero]
+ expected: FAIL
+
+ [finish event is fired after the endDelay has expired]
+ expected: FAIL
+
+ [Finish notification steps run when the animation seeks past finish]
+ expected: FAIL
+
+ [Finish notification steps run when the animation completes normally]
+ expected: FAIL
+
+ [Finish notification steps don't run when the animation seeks to finish and then seeks back again]
+ expected: FAIL
+
+ [Updating the finished state when seeking exactly to end]
+ expected: FAIL
+
+ [Updating the finished state when seeking a reversed animation exactly to zero]
+ expected: FAIL
+
+ [finish event is not fired at the end of the active interval when the endDelay has not expired]
+ expected: FAIL
+
+ [Finish notification steps run when the animation completes with .finish(), even if we then seek away]
+ expected: FAIL
+
+ [Updating the finished state when current time is unresolved]
+ expected: FAIL
+
+ [Updating the finished state when playing in reverse past zero]
+ expected: FAIL
+
+ [Updating the finished state when seeking before end]
+ expected: FAIL
+
+ [Animation finished promise is replaced after replaying from start]
+ expected: FAIL
+
+ [Updating the finished state when start time is unresolved and did seek = true]
+ expected: FAIL
+
+ [Updating the finished state when seeking past end]
+ expected: FAIL
+
+ [Animation finish event is fired again after seeking back to start]
+ expected: FAIL
+
+ [Updating the finished state when seeking a reversed animation past zero]
+ expected: FAIL
+
+ [Finish notification steps run when an animation without a target effect completes normally]
+ expected: FAIL
+
+ [Updating the finished state when seeking a reversed animation before end]
+ expected: FAIL
+
+ [Updating the finished state when playing exactly to end]
+ expected: FAIL
+
+ [Updating the finished state when playback rate is zero and the currenttime is greater than end]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/__dir__.ini b/testing/web-platform/meta/scroll-animations/view-timelines/__dir__.ini
new file mode 100644
index 0000000000..2ef043b928
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/__dir__.ini
@@ -0,0 +1 @@
+implementation-status: backlog
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/block-view-timeline-current-time-vertical-rl.tentative.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/block-view-timeline-current-time-vertical-rl.tentative.html.ini
new file mode 100644
index 0000000000..b1b5bbf580
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/block-view-timeline-current-time-vertical-rl.tentative.html.ini
@@ -0,0 +1,3 @@
+[block-view-timeline-current-time-vertical-rl.tentative.html]
+ [View timeline with container having vertical-rl layout]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/block-view-timeline-current-time.tentative.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/block-view-timeline-current-time.tentative.html.ini
new file mode 100644
index 0000000000..4b01c09206
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/block-view-timeline-current-time.tentative.html.ini
@@ -0,0 +1,9 @@
+[block-view-timeline-current-time.tentative.html]
+ [View timeline with start and end scroll offsets that do not align with the scroll boundaries]
+ expected: FAIL
+
+ [View timeline does not clamp starting scroll offset at 0]
+ expected: FAIL
+
+ [View timeline does not clamp end scroll offset at max scroll]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/block-view-timeline-nested-subject.tentative.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/block-view-timeline-nested-subject.tentative.html.ini
new file mode 100644
index 0000000000..aaa10ff160
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/block-view-timeline-nested-subject.tentative.html.ini
@@ -0,0 +1,5 @@
+[block-view-timeline-nested-subject.tentative.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [View timeline with subject that is not a direct descendant of the scroll container]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/change-animation-range-updates-play-state.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/change-animation-range-updates-play-state.html.ini
new file mode 100644
index 0000000000..9508990401
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/change-animation-range-updates-play-state.html.ini
@@ -0,0 +1,3 @@
+[change-animation-range-updates-play-state.html]
+ [Changing the animation range updates the play state]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/get-keyframes-with-timeline-offset.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/get-keyframes-with-timeline-offset.html.ini
new file mode 100644
index 0000000000..64353adf23
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/get-keyframes-with-timeline-offset.html.ini
@@ -0,0 +1,15 @@
+[get-keyframes-with-timeline-offset.html]
+ [Report specified timeline offsets]
+ expected: FAIL
+
+ [Computed offsets can be outside [0,1\] for keyframes with timeline offsets]
+ expected: FAIL
+
+ [Retain specified ordering of keyframes with timeline offsets]
+ expected: FAIL
+
+ [Include unreachable keyframes]
+ expected: FAIL
+
+ [Mix of computed and timeline offsets.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/inline-view-timeline-current-time.tentative.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/inline-view-timeline-current-time.tentative.html.ini
new file mode 100644
index 0000000000..df899b53f7
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/inline-view-timeline-current-time.tentative.html.ini
@@ -0,0 +1,12 @@
+[inline-view-timeline-current-time.tentative.html]
+ [View timeline with start and end scroll offsets that do not align with the scroll boundaries]
+ expected: FAIL
+
+ [View timeline with container having RTL layout]
+ expected: FAIL
+
+ [View timeline does not clamp starting scroll offset at 0]
+ expected: FAIL
+
+ [View timeline does not clamp end scroll offset at max scroll]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/timeline-offset-in-keyframe.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/timeline-offset-in-keyframe.html.ini
new file mode 100644
index 0000000000..df41e5a4f2
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/timeline-offset-in-keyframe.html.ini
@@ -0,0 +1,15 @@
+[timeline-offset-in-keyframe.html]
+ [Timeline offsets in programmatic keyframes]
+ expected: FAIL
+
+ [String offsets in programmatic keyframes]
+ expected: FAIL
+
+ [Invalid timeline offset in programmatic keyframe throws]
+ expected: FAIL
+
+ [Timeline offsets in programmatic keyframes adjust for change in timeline]
+ expected: FAIL
+
+ [Timeline offsets in programmetic keyframes resolved when updating the animation effect]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-get-current-time-range-name.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-get-current-time-range-name.html.ini
new file mode 100644
index 0000000000..9f994ae6af
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-get-current-time-range-name.html.ini
@@ -0,0 +1,5 @@
+[view-timeline-get-current-time-range-name.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [View timeline current time for named range]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-get-set-range.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-get-set-range.html.ini
new file mode 100644
index 0000000000..71b071c084
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-get-set-range.html.ini
@@ -0,0 +1,3 @@
+[view-timeline-get-set-range.html]
+ [Getting and setting the animation range]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-inset.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-inset.html.ini
new file mode 100644
index 0000000000..30864e5250
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-inset.html.ini
@@ -0,0 +1,23 @@
+[view-timeline-inset.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [View timeline with px based inset.]
+ expected: FAIL
+
+ [View timeline with percent based inset.]
+ expected: FAIL
+
+ [view timeline with inset auto.]
+ expected: FAIL
+
+ [view timeline with font relative inset.]
+ expected: FAIL
+
+ [view timeline with viewport relative insets.]
+ expected: FAIL
+
+ [view timeline inset as string]
+ expected: FAIL
+
+ [view timeline with invalid inset]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-missing-subject.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-missing-subject.html.ini
new file mode 100644
index 0000000000..dd707edb3e
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-missing-subject.html.ini
@@ -0,0 +1,3 @@
+[view-timeline-missing-subject.html]
+ [ViewTimeline with missing subject]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-on-display-none-element.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-on-display-none-element.html.ini
new file mode 100644
index 0000000000..28748a3f1e
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-on-display-none-element.html.ini
@@ -0,0 +1,3 @@
+[view-timeline-on-display-none-element.html]
+ [element with display: none should have inactive viewtimeline]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-range-large-subject.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-range-large-subject.html.ini
new file mode 100644
index 0000000000..3f01fc0b18
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-range-large-subject.html.ini
@@ -0,0 +1,3 @@
+[view-timeline-range-large-subject.html]
+ [View timeline with range set via delays.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-range.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-range.html.ini
new file mode 100644
index 0000000000..ec32fab2d4
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-range.html.ini
@@ -0,0 +1,27 @@
+[view-timeline-range.html]
+ [View timeline with range as <name> <percent> pair.]
+ expected: FAIL
+
+ [View timeline with range and inferred name or offset.]
+ expected: FAIL
+
+ [View timeline with range as <name> <px> pair.]
+ expected: FAIL
+
+ [View timeline with range as <name> <percent+px> pair.]
+ expected: FAIL
+
+ [View timeline with range as <name> <percent> pair.]
+ expected: FAIL
+
+ [View timeline with range and inferred name or offset.]
+ expected: FAIL
+
+ [View timeline with range as <name> <px> pair.]
+ expected: FAIL
+
+ [View timeline with range as <name> <percent+px> pair.]
+ expected: FAIL
+
+ [View timeline with range as strings.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-root-source.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-root-source.html.ini
new file mode 100644
index 0000000000..a2fa3fa414
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-root-source.html.ini
@@ -0,0 +1,3 @@
+[view-timeline-root-source.html]
+ [Test view-timeline with document scrolling element.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-snapport.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-snapport.html.ini
new file mode 100644
index 0000000000..367a24713c
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-snapport.html.ini
@@ -0,0 +1,5 @@
+[view-timeline-snapport.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Default ViewTimeline is not affected by scroll-padding]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-source.tentative.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-source.tentative.html.ini
new file mode 100644
index 0000000000..52a2074b17
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-source.tentative.html.ini
@@ -0,0 +1,11 @@
+[view-timeline-source.tentative.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Default source for a View timeline is the nearest scroll ancestor to the subject]
+ expected: FAIL
+
+ [View timeline ignores explicitly set source]
+ expected: FAIL
+
+ [View timeline source is null when display:none]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-subject-size-changes.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-subject-size-changes.html.ini
new file mode 100644
index 0000000000..51f765c391
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/view-timeline-subject-size-changes.html.ini
@@ -0,0 +1,5 @@
+[view-timeline-subject-size-changes.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [View timeline with subject size change after the creation of the animation]
+ expected: FAIL
diff --git a/testing/web-platform/meta/scroll-animations/view-timelines/zero-intrinsic-iteration-duration.tentative.html.ini b/testing/web-platform/meta/scroll-animations/view-timelines/zero-intrinsic-iteration-duration.tentative.html.ini
new file mode 100644
index 0000000000..c840d9d405
--- /dev/null
+++ b/testing/web-platform/meta/scroll-animations/view-timelines/zero-intrinsic-iteration-duration.tentative.html.ini
@@ -0,0 +1,3 @@
+[zero-intrinsic-iteration-duration.tentative.html]
+ [Intrinsic iteration duration is non-negative]
+ expected: FAIL