<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<p id="description"></p>
<pre id="console"></pre>
<script>
var jsTestIsAsync = true;
description('Tests that appending iframe with with no URL and setting its URL later (including hash part) does not overwrite current history entry.');
if (window.testRunner)
testRunner.clearBackForwardList();
onload = beginTest;
function beginTest() {
// The frame must be appened both on initial load and after navigating
// back. On first load we must set the same SRC as after navigating away.
var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
if (location.hash.indexOf('wentBack') == -1) {
// Run else code path after going back.
location.hash = 'wentBack';
setFrameSrc();
// Navigate forward and back to create forward navigation entry.
// Must be done outside the load handler to generate history entry.
window.setTimeout(function() {
location.href = 'resources/back-on-load.html';
}, 0);
} else {
window.setTimeout(setFrameSrcAndfinishTest, 100);
}
}
function setFrameSrc() {
document.querySelector('iframe').src = 'about:blank/#identifier';
}
function setFrameSrcAndfinishTest() {
document.querySelector('iframe').src = 'about:blank/#identifier';
testRunner.dumpBackForwardList();
finishJSTest();
}
</script>
</body>
</html>