[view-timeline] Support range(Start|End) as strings in animation options.
This patch also extends length support to handle style dependent units.
Remaining step: Update style-dependent lengths.
Bug: 1407923
Change-Id: Iad81e8caac695905538b8c63b6c80fe6203a473b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4198530
Commit-Queue: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1099413}
diff --git a/scroll-animations/css/view-timeline-range-animation.html b/scroll-animations/css/view-timeline-range-animation.html
index dc37850..9f66a5e 100644
--- a/scroll-animations/css/view-timeline-range-animation.html
+++ b/scroll-animations/css/view-timeline-range-animation.html
@@ -179,7 +179,7 @@
endOffset: 790
});
- test_animation_delay({
+ test_animation_delay({
rangeStart: 'exit 2em',
rangeEnd: 'exit 8em',
startOffset: 820,
diff --git a/scroll-animations/view-timelines/view-timeline-range.html b/scroll-animations/view-timelines/view-timeline-range.html
index 4123bda..f2a1b3f 100644
--- a/scroll-animations/view-timelines/view-timeline-range.html
+++ b/scroll-animations/view-timelines/view-timeline-range.html
@@ -31,6 +31,7 @@
height: 100px;
width: 100px;
display: inline-block;
+ font-size: 10px;
}
</style>
<body>
@@ -149,4 +150,37 @@
});
}, 'View timeline with range as <name> <percent+px> pair.' );
+
+ promise_test(async t => {
+ await runTimelineRangeTest(t, {
+ rangeStart: "contain -50%",
+ rangeEnd: "enter 200%",
+ startOffset: 650,
+ endOffset: 800
+ });
+
+ await runTimelineRangeTest(t, {
+ rangeStart: "contain 20px",
+ rangeEnd: "contain 100px",
+ startOffset: 720,
+ endOffset: 800
+ });
+
+ await runTimelineRangeTest(t, {
+ rangeStart: "contain calc(0% + 20px)",
+ rangeEnd: "contain calc(100% - 10px)",
+ startOffset: 720,
+ endOffset: 790
+ });
+
+ await runTimelineRangeTest(t, {
+ rangeStart: "exit 2em",
+ rangeEnd: "exit 8em",
+ startOffset: 820,
+ endOffset: 880
+ });
+
+
+ }, 'View timeline with range as strings.');
+
</script>