blob: 8dcb486c0ca152278f3fa75351b6c7461dbd35c0 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Test case which ensures that an animation assigned to an element whose
| ancestor has display: none will wait until display becomes non-none to begin,
| and that specifically re-calculating the computed style on the animating
| element does not change anything.
-->
<html>
<head>
<style>
@keyframes testAnimation{
0% { transform: translate(0, 0); }
50% { transform: translate(100px,0); }
100% { transform: translate(100px,100px); }
}
#block {
width: 100px;
height: 100px;
font-size: 30px;
background-color: red;
}
</style>
</head>
<body>
<div id="outer-container">
<div id="inner-container">
<div id="block"></div>
</div>
</div>
<script>
if (window.testRunner) {
window.testRunner.waitUntilDone();
}
var blockDiv = document.getElementById('block');
var containerDiv = document.getElementById('outer-container');
window.addEventListener('load', function() {
if (window.testRunner) {
// Run the transition to the half-way point.
window.testRunner.AdvanceClockByMs(500);
window.testRunner.DoNonMeasuredLayout();
}
containerDiv.style.display = "none";
blockDiv.style.animation = "testAnimation 1s forwards";
if (window.testRunner) {
window.testRunner.AdvanceClockByMs(500);
}
// Call getComputedStyle() to cause a targeted computed style update.
window.getComputedStyle(blockDiv);
containerDiv.style.display = "block";
if (window.testRunner) {
window.testRunner.DoNonMeasuredLayout();
window.testRunner.AdvanceClockByMs(500);
window.testRunner.notifyDone();
}
});
</script>
</body>
</html>