/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ // Test for bug 673467. In a new tab, load a page which inserts a new iframe // before the load and then sets its location during the load. This should // create just one SHEntry. var doc = "data:text/html," + "" + ""; function test() { waitForExplicitFinish(); let taskFinished; let tab = BrowserTestUtils.addTab(gBrowser, doc, {}, tab => { taskFinished = ContentTask.spawn(tab.linkedBrowser, null, () => { return new Promise(resolve => { addEventListener( "load", function () { // The main page has loaded. Now wait for the iframe to load. let iframe = content.document.getElementById("iframe"); iframe.addEventListener( "load", function listener(aEvent) { // Wait for the iframe to load the new document, not about:blank. if (!iframe.src) { return; } iframe.removeEventListener("load", listener, true); let shistory = content.docShell.QueryInterface( Ci.nsIWebNavigation ).sessionHistory; Assert.equal(shistory.count, 1, "shistory count should be 1."); resolve(); }, true ); }, true ); }); }); }); taskFinished.then(() => { gBrowser.removeTab(tab); finish(); }); }