forked from mirrors/gecko-dev
Automatic update from web-platform-tests Force KeyframeModel::time_offset_ to be 0 for scroll-driven animations. KeyframeModel::CalculateActiveTime shifts all times by time_offset_, which is initialized when we start the animation on the compositor. But we don't want such shifting for scroll-driven animations, because cc::Animation::Tick gives the KeyframeModel a pause_time_ based on absolute progress (the current scroll position). Fix by making Animation::ComputeCompositorTimeOffset return 0 during Animation::StartAnimationOnCompositor, even if the scroll position is non-zero from an earlier scroll. Bug: 1431191 Change-Id: Ie2a2b7e099c12232e05900907231da1729ee6c34 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4498525 Commit-Queue: Steve Kobes <skobes@chromium.org> Reviewed-by: Kevin Ellis <kevers@chromium.org> Cr-Commit-Position: refs/heads/main@{#1138967} -- wpt-commits: 797d2099e320aa895aae4c445ab3cefc9379b23c wpt-pr: 39810
44 lines
678 B
HTML
44 lines
678 B
HTML
<!DOCTYPE html>
|
|
<style>
|
|
|
|
#scroller {
|
|
overflow-y: auto;
|
|
height: 200px;
|
|
border: 2px solid green;
|
|
position: relative;
|
|
background: gray;
|
|
}
|
|
|
|
.spacer {
|
|
height: 1000px;
|
|
}
|
|
|
|
#align {
|
|
box-sizing: border-box;
|
|
width: 100%;
|
|
height: 50px;
|
|
background: rgba(0, 0, 200, 0.2);
|
|
color: white;
|
|
position: absolute;
|
|
border: 1px solid white;
|
|
transform: translateY(200px);
|
|
will-change: transform;
|
|
}
|
|
|
|
#marker {
|
|
width: 100%;
|
|
height: 50px;
|
|
background: #640;
|
|
position: absolute;
|
|
top: 350px;
|
|
}
|
|
|
|
</style>
|
|
<div id="scroller">
|
|
<div id="align">TOP</div>
|
|
<div class="spacer"></div>
|
|
<div id="marker">BOTTOM</div>
|
|
</div>
|
|
<script>
|
|
scroller.scrollTo(0, 200);
|
|
</script>
|