<!-- webkit-test-runner [ enableBackForwardCache=true ] -->
<style>
.outer { position: fixed; }
.inner { position: absolute; }
</style>
<div class=outer>-<div class=inner></div></div>
Test passes if it doesn't crash.
<script>
if (window.testRunner) {
    window.testRunner.dumpAsText();
    window.testRunner.waitUntilDone();
}

window.addEventListener("pageshow", function(event) {
    if (event.persisted)
        testRunner.notifyDone();
}, false);

window.addEventListener("load", function() {
    setTimeout(function() {
        // Navigate to a helper page that will immediately navigate back here after loading.
        window.location.href = "resources/go-back.html";
    }, 0);
});
</script>
