<
html><
head>
<
title>Bug 426646, Using location.replace breaks
iframe history</
title>
<
script type=
"text/javascript">
var BASE_URI =
"http://mochi.test:8888/tests/dom/base/test/";
var url1 = BASE_URI +
"iframe1_bug426646.html";
var win0 = null;
function soon(f) {
return function() { setTimeout(f, 0); };
}
function doe() {
document.
body.innerHTML =
"";
document.
body.innerHTML +=
"";
win0 = window.frames[0];
win0.frameElement.onload = soon(doe2);
win0.location.replace(url1);
}
function doe2() {
// Add some iframes/docshells. Session history should still work.
var ifr1 = document.createElement(
"iframe");
document.
body.insertBefore(ifr1, document.
body.firstChild);
ifr1.onload = soon(doe3);
var ifr2 = document.createElement(
"iframe");
document.
body.insertBefore(ifr2, document.
body.firstChild);
ifr2.onload = soon(doe3);
var ifr3 = document.createElement(
"iframe");
document.
body.insertBefore(ifr3, document.
body.firstChild);
ifr3.onload = soon(doe3);
}
var doe3_count = 0;
function doe3() {
// Wait until all three iframes have loaded about:blank before navigating
// win0.
doe3_count++;
if (doe3_count < 3) {
return;
}
if (doe3_count > 3) {
ok(false,
'Unexpected ' + doe3_count +
'th call to doe3.');
return;
}
win0.frameElement.onload = soon(doe4);
win0.location = BASE_URI +
'iframe2_bug426646.html';
}
function doe4() {
win0.frameElement.onload = soon(doe5);
history.go(-1);
}
function doe5() {
opener.is(String(win0.location), url1,
"History.go(-1) didn't work?");
close();
}
</
script>
</
head>
<
body onload=
"setTimeout(doe, 0);" onunload=
"opener.nextTest();">
</
body></
html>