diff options
Diffstat (limited to 'docshell/test/chrome/test_private_hidden_window.html')
-rw-r--r-- | docshell/test/chrome/test_private_hidden_window.html | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/docshell/test/chrome/test_private_hidden_window.html b/docshell/test/chrome/test_private_hidden_window.html new file mode 100644 index 000000000..3907e5de8 --- /dev/null +++ b/docshell/test/chrome/test_private_hidden_window.html @@ -0,0 +1,56 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=829383 +--> +<head> + <title>Test for Bug 829383</title> + <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" /> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=829383">Mozilla Bug 829383</a> +<p id="display"></p> +<div id="content" style="display: none"> + <iframe name="target"></iframe> +</div> +<pre id="test"> +<script class="testbody" type="text/javascript"> + +SimpleTest.waitForExplicitFinish(); +const Ci = Components.interfaces; +var mainWindow = window.QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsIWebNavigation) + .QueryInterface(Ci.nsIDocShellTreeItem) + .rootTreeItem + .QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsIDOMWindow); + +// We need to wait for the hidden window to load, but can't access +// an event target for a regular event listener. +var hidden = mainWindow.Services.appShell.hiddenPrivateDOMWindow; +mainWindow.PrivateBrowsingUtils.whenHiddenPrivateWindowReady(function(hidden) { + var iframe = hidden.document.createElement('iframe'); + iframe.src = 'generic.html'; + hidden.document.body.appendChild(iframe); + + var win = mainWindow.OpenBrowserWindow({private: true}); + win.addEventListener("load", function onLoad() { + win.removeEventListener("load", onLoad, false); + win.close(); + win = null; + }, false); +}); + +function observer(aSubject, aTopic, aData) { + is(aTopic, "last-pb-context-exited", "Unexpected observer topic"); + mainWindow.Services.obs.removeObserver(observer, "last-pb-context-exited"); + SimpleTest.finish(); +} +mainWindow.Services.obs.addObserver(observer, "last-pb-context-exited", false); + +</script> +</pre> +</body> +</html> + |