<!doctype html><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->
<style>
.animated {
  -webkit-animation: test 10ms;
  -webkit-animation-delay: -10ms;
}
@-webkit-keyframes test {
  0% {}
}
</style>
<div id="test">FAIL</div>
<script>
if (window.testRunner) {
  testRunner.dumpAsText();
  testRunner.waitUntilDone();
}
onload = function() {
  // This test covers a specific regression where an on-demand timing update
  // that was triggered after an animation received a start time could cause
  // CSS Animation and Transition events to not be fired on the subseuquent
  // animation-frame timing update.
  test.classList.add('animated');
  test.addEventListener('webkitAnimationStart', function() {
    document.documentElement.textContent = 'PASS';
    if (window.testRunner)
      testRunner.notifyDone();
  });
  requestAnimationFrame(function() {
    setTimeout(function() {
      getComputedStyle(test).left;
    });
  });
}
</script>
