[scroll-animations] Support animation-duration:auto

This CL supports using 'auto' (explicitly) as an animation duration.

Whether or not 'auto' should become the new initial value of
animation-duration will be handled separately.

Fixed: 1382873
Change-Id: I50a669fdf53323f32299948081d316997c7820c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4079648
Commit-Queue: Anders Hartvoll Ruud <andruud@chromium.org>
Reviewed-by: Kevin Ellis <kevers@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1081438}
diff --git a/scroll-animations/css/animation-duration-auto.tentative.html b/scroll-animations/css/animation-duration-auto.tentative.html
new file mode 100644
index 0000000..f44a682
--- /dev/null
+++ b/scroll-animations/css/animation-duration-auto.tentative.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<title>animation-duration: auto</title>
+<link rel="help" src="https://github.com/w3c/csswg-drafts/issues/6530">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/web-animations/testcommon.js"></script>
+<script src="./support/testcommon.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<style>
+  #scroller {
+    overflow: hidden;
+    width: 100px;
+    height: 100px;
+  }
+  #scroller > div {
+    height: 200px;
+    width: 200px;
+  }
+
+  @keyframes anim {
+    from { z-index: 0; }
+    to { z-index: 100; }
+  }
+
+  #scroller {
+    scroll-timeline: timeline;
+  }
+
+  #element {
+    z-index: -1;
+    animation-name: anim;
+    animation-duration: auto;
+    animation-timeline: timeline;
+  }
+</style>
+<main>
+  <div id=scroller>
+    <div></div>
+  </div>
+  <div id=element></div>
+</main>
+<script>
+  promise_test(async (t) => {
+    await waitForCSSScrollTimelineStyle();
+    assert_equals(getComputedStyle(element).zIndex, '0');
+  }, 'A value of auto can be specified for animation-duration');
+</script>
+
+<div id="target"></div>
+<script>
+  test_valid_value('animation-duration', 'auto');
+  test_computed_value('animation-duration', 'auto');
+  test_valid_value('animation', 'auto cubic-bezier(0, -2, 1, 3) -3s 4 reverse both paused anim');
+  test_computed_value('animation', 'auto cubic-bezier(0, -2, 1, 3) -3s 4 reverse both paused anim');
+</script>