summaryrefslogtreecommitdiffstats
path: root/docshell/test/chrome/test_private_hidden_window.html
diff options
context:
space:
mode:
Diffstat (limited to 'docshell/test/chrome/test_private_hidden_window.html')
-rw-r--r--docshell/test/chrome/test_private_hidden_window.html56
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>
+