blob: 5e179d4f075eef32cb72164751d57023993788c7 [file] [log] [blame]
<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<style>
@keyframes bgColorAnim {
from {
background-color: blue;
}
to {
background-color: red;
}
}
@keyframes customPropertyAnim {
from {
--x: blue;
}
to {
--x: red;
}
}
#target {
width: 100px;
height: 100px;
}
</style>
<div id="target"></div>
<script>
'use strict';
test(() => {
assert_true(
internals.isCSSPropertyUseCounted(document, "background-color"),
'Usage of background-color in style causes it to be counted in ' +
'normal CSS property UseCounter');
assert_true(
internals.isCSSPropertyUseCounted(document, "width"),
'Usage of width in style causes it to be counted in normal CSS ' +
'property UseCounter');
assert_false(
internals.isAnimatedCSSPropertyUseCounted(document, "background-color"),
'Initially background-color animation has not been UseCounted');
assert_false(
internals.isAnimatedCSSPropertyUseCounted(document, "width"),
'Initially width animation has not been UseCounted');
target.style.animation = 'bgColorAnim 1s';
target.offsetTop; // force recalc
assert_true(
internals.isAnimatedCSSPropertyUseCounted(document, "background-color"),
'After applying the animation, background-color has been counted');
assert_false(
internals.isAnimatedCSSPropertyUseCounted(document, "width"),
'Width is not animated, so not counted');
}, 'Animating properties via CSS causes UseCounter to be incremented.');
test(() => {
assert_true(
internals.isCSSPropertyUseCounted(document, "--x"),
'Usage of custom property --x in style causes it to be counted in ' +
'normal CSS property UseCounter');
assert_true(
internals.isCSSPropertyUseCounted(document, "--y"),
'All custom properties are counted together in normal CSS property ' +
'UseCounter');
assert_false(
internals.isAnimatedCSSPropertyUseCounted(document, "--x"),
'Initially custom property --x animation has not been UseCounted');
assert_false(
internals.isAnimatedCSSPropertyUseCounted(document, "--y"),
'Initially custom property --y animation has not been UseCounted');
target.style.animation = 'customPropertyAnim 1s';
target.offsetTop; // force recalc
assert_true(
internals.isAnimatedCSSPropertyUseCounted(document, "--x"),
'After applying the animation, custom property animation has been counted');
assert_true(
internals.isAnimatedCSSPropertyUseCounted(document, "--y"),
'All custom property animations are counted together');
}, 'Animating custom CSS properties causes UseCounter to be incremented.');
</script>