diff options
Diffstat (limited to 'dom/xul/test/file_bug1271240.xul')
-rw-r--r-- | dom/xul/test/file_bug1271240.xul | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/dom/xul/test/file_bug1271240.xul b/dom/xul/test/file_bug1271240.xul new file mode 100644 index 000000000..2edd5a1b4 --- /dev/null +++ b/dom/xul/test/file_bug1271240.xul @@ -0,0 +1,82 @@ +<?xml version="1.0"?> +<?xml-stylesheet type="text/css" href="chrome://global/skin"?> +<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" + type="text/css"?> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=1271240 +--> +<window title="Mozilla Bug 1271240" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload="run();"> + + <!-- test code goes here --> + <script type="application/javascript"> + <![CDATA[ + + function ok(cond, msg) { + opener.wrappedJSObject.ok(cond, msg); + } + + function is(actual, expected, msg) { + opener.wrappedJSObject.is(actual, expected, msg); + } + + /** Test for Bug 1271240 **/ + function run() { + // test non-remote, non-prerendered browser + createBrowser(false, false) + .then(browser => verifyBrowser(browser, false, false)) + + // test non-remote, prerendered browser + .then(() => createBrowser(true, false)) + .then(browser => verifyBrowser(browser, true, false)) + .then(browser => makePrerenderedBrowserActive(browser)) + .then(browser => verifyBrowser(browser, false, false)) + + // test remote, non-prerendered browser + .then(() => createBrowser(false, true)) + .then(browser => verifyBrowser(browser, false, true)) + + // test remote, prerendered browser + .then(() => createBrowser(true, true)) + .then(browser => verifyBrowser(browser, true, true)) + .then(browser => makePrerenderedBrowserActive(browser)) + .then(browser => verifyBrowser(browser, false, true)) + + // finish test + .then(() => { + opener.postMessage('finish', '*'); + window.close(); + }); + } + + function createBrowser(prerendered, remote) { + return new Promise(resolve => { + var browser = document.createElement('browser'); + browser.setAttribute('type', 'content'); + browser.setAttribute('prerendered', prerendered); + browser.setAttribute('remote', remote); + document.documentElement.appendChild(browser); + browser.loadURI('example.com'); + resolve(browser); + }); + } + + function verifyBrowser(browser, prerendered, remote) { + var docShellOrTabParent = remote ? + browser.frameLoader.tabParent : browser.frameLoader.docShell; + ok(docShellOrTabParent, 'docShellOrTabParent should not be null'); + is(docShellOrTabParent.isPrerendered, prerendered, + 'isPrerendered should be ' + prerendered); + return browser; + } + + function makePrerenderedBrowserActive(browser) { + browser.makePrerenderedBrowserActive(); + return browser; + } + + ]]> + </script> + <!-- <browser type="content-primary" flex="1" id="content" /> + <browser type="content-primary" flex="1" id="content-remote" remote="true" /> --> +</window> |