Blame docshell/test/navigation/test_triggeringprincipal_parent_iframe_window_open.html

Packit f0b94e
Packit f0b94e
<html>
Packit f0b94e
<head>
Packit f0b94e
  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>        
Packit f0b94e
  <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
Packit f0b94e
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
Packit f0b94e
  <script type="text/javascript" src="NavigationUtils.js"></script>        
Packit f0b94e
</head>
Packit f0b94e
<body>
Packit f0b94e
Packit f0b94e
<iframe name="testframe" id="testframe" src="file_triggeringprincipal_iframe_iframe_window_open_base.html"></iframe>
Packit f0b94e
Packit f0b94e
<script type="text/javascript">
Packit f0b94e
Packit f0b94e
/* We load an iframe which then gets navigated by the iframe's parent by calling
Packit f0b94e
 *  window.open("http://", iframe) later in the test. We then verify the
Packit f0b94e
 * TriggeringPrincipal and LoadingPrincipal of the navigated iframe.
Packit f0b94e
 *
Packit f0b94e
 * +------------------------------------------+
Packit f0b94e
 * |                                          | 
Packit f0b94e
 * |  +------------------+                    |
Packit f0b94e
 * |  | testframe        |                    | 
Packit f0b94e
 * |  +------------------+                    |
Packit f0b94e
 * |                                          | 
Packit f0b94e
 * | window.open("http://", "testframe");     |
Packit f0b94e
 * |                                          | 
Packit f0b94e
 * +------------------------------------------+
Packit f0b94e
 */
Packit f0b94e
Packit f0b94e
const TRIGGERING_PRINCIPAL_URI =
Packit f0b94e
  "http://mochi.test:8888/tests/docshell/test/navigation/test_triggeringprincipal_parent_iframe_window_open.html";
Packit f0b94e
Packit f0b94e
const LOADING_PRINCIPAL_URI = TRIGGERING_PRINCIPAL_URI;
Packit f0b94e
Packit f0b94e
var testframe = document.getElementById("testframe");
Packit f0b94e
Packit f0b94e
function checkResults() {
Packit f0b94e
  testframe.removeEventListener('load', checkResults);
Packit f0b94e
Packit f0b94e
  var channel = SpecialPowers.wrap(testframe.contentDocument).docShell.currentDocumentChannel;
Packit f0b94e
  var triggeringPrincipal = channel.loadInfo.triggeringPrincipal.URI.asciiSpec;
Packit f0b94e
  var loadingPrincipal = channel.loadInfo.loadingPrincipal.URI.asciiSpec;
Packit f0b94e
Packit f0b94e
  is(triggeringPrincipal, TRIGGERING_PRINCIPAL_URI,
Packit f0b94e
    "TriggeringPrincipal for targeted window.open() should be the principal of the document");
Packit f0b94e
Packit f0b94e
  is(testframe.contentDocument.referrer, TRIGGERING_PRINCIPAL_URI,
Packit f0b94e
    "Referrer for targeted window.open() should be the principal of the document");
Packit f0b94e
Packit f0b94e
  is(loadingPrincipal, LOADING_PRINCIPAL_URI,
Packit f0b94e
    "LoadingPrincipal for targeted window.open() should be the <iframe>.ownerDocument");
Packit f0b94e
 
Packit f0b94e
  SimpleTest.finish();
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
function performNavigation() {
Packit f0b94e
  testframe.removeEventListener('load', performNavigation);
Packit f0b94e
  testframe.addEventListener('load', checkResults);
Packit f0b94e
  win = window.open("file_triggeringprincipal_parent_iframe_window_open_nav.html", "testframe");
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
// start the test
Packit f0b94e
SimpleTest.waitForExplicitFinish();
Packit f0b94e
Packit f0b94e
testframe.addEventListener('load', performNavigation);
Packit f0b94e
Packit f0b94e
</script>
Packit f0b94e
Packit f0b94e
</body>
Packit f0b94e
</html>