fune/docshell/test/browser/browser_bug673467.js
Andreea Pavel 89531e8dc3 Backed out 9 changesets (bug 1412456) for crashing talos g2 and unexpected network connections in browser-chrome's browser_searchEngine_behaviors.js r=backout a=backout on a CLOSED TREE
Backed out changeset 0c01a98f4fd5 (bug 1412456)
Backed out changeset 27077db47231 (bug 1412456)
Backed out changeset f35ec2a884f8 (bug 1412456)
Backed out changeset 602b30ac3c69 (bug 1412456)
Backed out changeset b1ff1050c589 (bug 1412456)
Backed out changeset f100d953f9eb (bug 1412456)
Backed out changeset d85af60fe259 (bug 1412456)
Backed out changeset 736f38486832 (bug 1412456)
Backed out changeset 13a637602dc2 (bug 1412456)
2017-12-07 12:20:21 +02:00

51 lines
1.7 KiB
JavaScript

/* 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,<html><body onload='load()'>" +
"<script>" +
" var iframe = document.createElement('iframe');" +
" iframe.id = 'iframe';" +
" document.documentElement.appendChild(iframe);" +
" function load() {" +
" iframe.src = 'data:text/html,Hello!';" +
" }" +
"</script>" +
"</body></html>"
function test() {
waitForExplicitFinish();
let tab = BrowserTestUtils.addTab(gBrowser, doc);
let tabBrowser = tab.linkedBrowser;
BrowserTestUtils.browserLoaded(tab.linkedBrowser).then(() => {
return ContentTask.spawn(tab.linkedBrowser, null, () => {
return new Promise(resolve => {
// 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
.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIWebNavigation)
.sessionHistory;
Assert.equal(shistory.count, 1, "shistory count should be 1.");
resolve();
}, true);
});
});
}).then(() => {
gBrowser.removeTab(tab);
finish();
});
}