Commit b81a6148 authored by Jordan Taylor's avatar Jordan Taylor Committed by Commit Bot

[Animation Worklet] Upstream web tests (related to setting values) to WPT

web_tests/animations/animationworklet/worklet-animation-set-keyframes.html -> web_tests/external/wpt/animation-worklet/worklet-animation-set-keyframes.https.html

web_tests/animations/animationworklet/worklet-animation-set-keyframes-expected.html -> web_tests/external/wpt/animation-worklet/worklet-animation-set-keyframes-ref.html

web_tests/animations/animationworklet/worklet-animation-set-timing.html -> web_tests/external/wpt/animation-worklet/worklet-animation-set-timing.https.html

web_tests/animations/animationworklet/worklet-animation-set-timing-expected.html -> web_tests/external/wpt/animation-worklet/worklet-animation-set-timing-ref.html

Bug: 915352
Change-Id: I95f69fcfaea64b8d779e136facb87b6f5c16c27c
Reviewed-on: https://chromium-review.googlesource.com/c/1459069Reviewed-by: default avatarYi Gu <yigu@chromium.org>
Commit-Queue: Jordan Taylor <jortaylo@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#630554}
parent 01922e1c
<!DOCTYPE html>
<style>
#box {
width: 100px;
height: 100px;
background-color: #00ff00;
}
</style>
<div id="box"></div>
<script id="visual_update" type="text/worklet">
registerAnimator("test_animator", class {
animate(currentTime, effect) {
effect.localTime = 500;
}
});
</script>
<script src="resources/animation-worklet-tests.js"></script>
<script>
if (window.testRunner) {
testRunner.waitUntilDone();
}
runInAnimationWorklet(
document.getElementById('visual_update').textContent
).then(()=>{
const keyframes_before = [
{ transform: 'translateY(0)' },
{ transform: 'translateY(200px)' }
];
const keyframes_after = [
{ transform: 'translateX(0)' },
{ transform: 'translateX(200px)' }
];
const box = document.getElementById('box');
const effect = new KeyframeEffect(box, keyframes_before, {duration: 1000});
const animation = new WorkletAnimation('test_animator', effect, document.timeline, {});
animation.play();
waitTwoAnimationFrames(_ => {
effect.setKeyframes(keyframes_after);
waitTwoAnimationFrames(_ => {
// TODO(crbug.com/829926): The same issue that is affecting
// worklet-animation-cancel test is at play here. Change opacity to force
// a new animation frame and commit to get updated result.
box.style.opacity = 0.8;
waitTwoAnimationFrames(_ => {
if (window.testRunner)
testRunner.notifyDone();
});
});
});
});
</script>
<!DOCTYPE html>
<style>
#box {
width: 100px;
height: 100px;
background-color: #00ff00;
}
</style>
<div id="box"></div>
<script id="visual_update" type="text/worklet">
registerAnimator("test_animator", class {
animate(currentTime, effect) {
effect.localTime = 500;
}
});
</script>
<script src="resources/animation-worklet-tests.js"></script>
<script>
if (window.testRunner)
testRunner.waitUntilDone();
runInAnimationWorklet(
document.getElementById('visual_update').textContent
).then(()=>{
const keyframes = [
{ transform: 'translateX(0)' },
{ transform: 'translateX(200px)' }
];
const options_before = {
duration: 1000
};
const options_after = {
duration: 2000
};
const box = document.getElementById('box');
const effect = new KeyframeEffect(box, keyframes, options_before);
const animation = new WorkletAnimation('test_animator', effect, document.timeline, {});
animation.play();
waitTwoAnimationFrames(_ => {
effect.updateTiming(options_after);
waitTwoAnimationFrames(_ => {
box.style.opacity = 0.8;
// TODO(crbug.com/829926): The same issue that is affecting
// worklet-animation-cancel is at play here. Change opacity to force a
// new animation frame and commit to get updated result.
waitTwoAnimationFrames(_ => {
if (window.testRunner)
testRunner.notifyDone();
});
});
});
});
</script>
<!DOCTYPE html> <!DOCTYPE html>
<title>Reference for Worklet Animation sets keyframes</title>
<style> <style>
.box { #box {
width: 100px; width: 100px;
height: 100px; height: 100px;
transform: translateX(100px); transform: translateX(100px);
background-color: #00ff00; background-color: green;
opacity: 0.8;
will-change: transform;
} }
</style> </style>
<div class="box"></div> <div id="box"></div>
\ No newline at end of file
<html class="reftest-wait">
<title>Worklet Animation sets keyframes</title>
<link rel="help" href="https://drafts.css-houdini.org/css-animationworklet/">
<meta name="assert" content="Can update the keyframes for an effect while the animation is running">
<link rel="match" href="worklet-animation-set-keyframes-ref.html">
<script src="/web-animations/testcommon.js"></script>
<script src="/common/reftest-wait.js"></script>
<script src="common.js"></script>
<style>
#box {
width: 100px;
height: 100px;
background-color: green;
}
</style>
<div id="box"></div>
<script>
registerConstantLocalTimeAnimator(500).then(()=>{
const keyframes_before = [
{ transform: 'translateY(0)' },
{ transform: 'translateY(200px)' }
];
const keyframes_after = [
{ transform: 'translateX(0)' },
{ transform: 'translateX(200px)' }
];
const box = document.getElementById('box');
const effect = new KeyframeEffect(box, keyframes_before, {duration: 1000});
const animation = new WorkletAnimation('constant_time', effect);
animation.play();
waitForAsyncAnimationFrames(1).then(_ => {
effect.setKeyframes(keyframes_after);
waitForAsyncAnimationFrames(1).then(_ => {
takeScreenshot();
});
});
});
</script>
\ No newline at end of file
<!DOCTYPE html> <!DOCTYPE html>
<title>Reference for Worklet Animation sets timing</title>
<style> <style>
.box { #box {
width: 100px; width: 100px;
height: 100px; height: 100px;
transform: translateX(50px); transform: translateX(50px);
opacity: 0.8; background-color: green;
background-color: #00ff00;
will-change: transform;
} }
</style> </style>
<div class="box"></div> <div id="box"></div>
\ No newline at end of file
<html class="reftest-wait">
<title>Worklet Animation sets timing</title>
<link rel="help" href="https://drafts.css-houdini.org/css-animationworklet/">
<meta name="assert" content="Can update the timing for an effect while the animation is running">
<link rel="match" href="worklet-animation-set-timing-ref.html">
<script src="/web-animations/testcommon.js"></script>
<script src="/common/reftest-wait.js"></script>
<script src="common.js"></script>
<style>
#box {
width: 100px;
height: 100px;
background-color: green;
}
</style>
<div id="box"></div>
<script>
registerConstantLocalTimeAnimator(500).then(()=>{
const keyframes = [
{ transform: 'translateX(0)' },
{ transform: 'translateX(200px)' }
];
const options_before = {
duration: 1000
};
const options_after = {
duration: 2000
};
const box = document.getElementById('box');
const effect = new KeyframeEffect(box, keyframes, options_before);
const animation = new WorkletAnimation('constant_time', effect);
animation.play();
waitForAsyncAnimationFrames(1).then(_ => {
effect.updateTiming(options_after);
waitForAsyncAnimationFrames(1).then(_ => {
takeScreenshot();
});
});
});
</script>
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment