<!-- webkit-test-runner [ enableBackForwardCache=true ] -->
<html>
<script>
window.finish = function()
{
    if (testRunner)
        testRunner.notifyDone();
}

window.log = function(message) {
     document.getElementById("result").innerHTML += message + "<br>";
}

window.failure = function(message) {
    log("FAIL: " + message);
    finish();
}

function test()
{
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
        testRunner.setCanOpenWindows();
    }
    log("open page with data urls");
    window.open("resources/cached-page-with-data-urls.html");
}
</script>

<body onload="test()">
<p>This tests that going back in history with page cache enabled is
not going to crash/ASSERT when the previous page has data:// URLs.</p>
<div id="result"></div>
</body>
</html>
