blob: a37a2bc38e27d426dc8646e3d5724ce30861c608 [file] [log] [blame]
<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<style>
#target {
width: 100px;
height: 100px;
transition: width 1s;
}
</style>
<div id="target"></div>
<script>
'use strict';
function waitForProgress() {
var initialWidth = getComputedStyle(target).width;
return new Promise(resolve => {
function poll() {
var width = getComputedStyle(target).width;
if (width === initialWidth) {
requestAnimationFrame(poll);
} else {
resolve();
}
}
requestAnimationFrame(poll);
});
}
async_test(t => {
assert_true(
internals.isCSSPropertyUseCounted(document, "width"),
'Usage of width in style causes it to be counted in normal CSS ' +
'property UseCounter');
assert_true(
internals.isCSSPropertyUseCounted(document, "height"),
'Usage of height in style causes it to be counted in normal CSS ' +
'property UseCounter');
assert_false(
internals.isAnimatedCSSPropertyUseCounted(document, "width"),
'Initially width animation has not been UseCounted');
assert_false(
internals.isAnimatedCSSPropertyUseCounted(document, "height"),
'Initially height animation has not been UseCounted');
target.offsetTop; // force recalc
target.style.width = '200px';
waitForProgress().then(t.step_func_done(() => {
assert_true(
internals.isAnimatedCSSPropertyUseCounted(document, "width"),
'After triggering the transition, width has been counted');
assert_false(
internals.isAnimatedCSSPropertyUseCounted(document, "height"),
'Height is not animated, so not counted');
}));
}, 'Using CSS transitions causes UseCounter to be incremented.');
</script>