| Index: third_party/WebKit/LayoutTests/animations/add-keyframes-recalc.html
|
| diff --git a/third_party/WebKit/LayoutTests/animations/add-keyframes-recalc.html b/third_party/WebKit/LayoutTests/animations/add-keyframes-recalc.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c696b85fdd3432f735cf5a767fa6021ae0e066ac
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/animations/add-keyframes-recalc.html
|
| @@ -0,0 +1,79 @@
|
| +<!DOCTYPE html>
|
| +<script src="../resources/testharness.js"></script>
|
| +<script src="../resources/testharnessreport.js"></script>
|
| +<div id="anim"></div>
|
| +<script>
|
| + test(() => assert_not_equals(window.internals, undefined, "Needs window.internals for testing."), "Check that window.internals is defined");
|
| + anim.offsetTop;
|
| +</script>
|
| +<style>
|
| + @keyframes unused {
|
| + from { color: pink }
|
| + to { color: orange }
|
| + }
|
| +</style>
|
| +<script>
|
| + test(() =>
|
| + assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 2, "Recalc for style and script.")
|
| + , "Check that adding @keyframes does not cause a style recalc of the anim element when no animations are running.");
|
| +</script>
|
| +<style>
|
| + #anim {
|
| + color: red;
|
| + animation-name: later;
|
| + animation-duration: 100s;
|
| + animation-timing-function: step-end;
|
| + }
|
| +</style>
|
| +<script>
|
| + test(() =>
|
| + assert_equals(getComputedStyle(anim).color, "rgb(255, 0, 0)", "Initial color of #anim.")
|
| + , "Check initial color of #anim.");
|
| +
|
| + anim.offsetTop;
|
| +</script>
|
| +<style>
|
| + @keyframes later {
|
| + from { color: green }
|
| + to { color: red }
|
| + }
|
| +</style>
|
| +<script>
|
| + test(() =>
|
| + assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 13, "Full document recalc.")
|
| + , "Check that adding @keyframes after keyframe resolution failed, recalculates whole document");
|
| +
|
| + test(() =>
|
| + assert_equals(getComputedStyle(anim).color, "rgb(0, 128, 0)", "Color of #anim during animation.")
|
| + , "Check that @keyframes rule applies.");
|
| +
|
| + anim.offsetTop;
|
| +</script>
|
| +<style>
|
| + @keyframes later {
|
| + from { color: lime }
|
| + to { color: red }
|
| + }
|
| +</style>
|
| +<script>
|
| + test(() =>
|
| + assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 3, "Recalc of style, script, and #anim.")
|
| + , "Check that adding @keyframes causes a style recalc of the #anim element when an animation is running.");
|
| +
|
| + test(() =>
|
| + assert_equals(getComputedStyle(anim).color, "rgb(0, 255, 0)", "Color of #anim during animation for new @keyframes.")
|
| + , "Check that the new @keyframes rule for 'later' applies.");
|
| +
|
| + anim.offsetTop;
|
| +</script>
|
| +<style>
|
| + @keyframes unused2 {
|
| + from { color: pink }
|
| + to { color: orange }
|
| + }
|
| +</style>
|
| +<script>
|
| + test(() =>
|
| + assert_equals(internals.updateStyleAndReturnAffectedElementCount(), 3, "Recalc of style, script, and #anim.")
|
| + , "Check that adding unused @keyframes causes a style recalc of the #anim element when an animation is running.");
|
| +</script>
|
|
|