<!-- webkit-test-runner [ UsesBackForwardCache=true ] -->
<style>
@-webkit-keyframes bounce {
    from {
        -webkit-transform: translate3d(0,0,0);
    }
    to {
        -webkit-transform: translate3d(200px,0,0);
    }
}

#animator {
    position: relative;
    top: 0px;
    width: 100px;
    height: 100px;
    background-color: blue;
    -webkit-animation-name: bounce;
    -webkit-animation-duration: 80ms;
    -webkit-animation-iteration-count: infinite;
}
</style>
<script>
var hasNavigated = false;

function sawIteration(event) {
    if (hasNavigated) {
        document.getElementById("results").innerText = "PASS: Saw iteration after navigation";
        testRunner.notifyDone();
    }
}

function startTest() {
    var animator = document.getElementById("animator");
    animator.addEventListener("webkitAnimationIteration", sawIteration, false);
    setTimeout(function() {
        hasNavigated = true;
        window.location.href = "resources/page-cache-helper.html";
    }, 200);
}

if (window.testRunner) {
    window.testRunner.dumpAsText();
    window.testRunner.waitUntilDone();
}

window.addEventListener("load", startTest, false);
</script>
<p>
    This tests that animations continue when restored from the page cache.
</p>

<div id="animator"></div>
<div id="results"></div>
