CLOSED TREE: TraceMonkey merge head. (a=blockers)
[mozilla-central.git] / docshell / test / browser / browser_bug388121-2.js
blob6c050d971a39a7bf83c98ada9f7e7f8385e02229
1 function test() {
2 waitForExplicitFinish();
4 var w;
5 const secMan = Cc["@mozilla.org/scriptsecuritymanager;1"].getService(Ci.nsIScriptSecurityManager);
6 var iteration = 1;
7 const uris = ["", "about:blank"];
8 var uri;
9 var origDoc;
11 function testLoad() {
12 if (w.document == origDoc) {
13 // Go back to polling
14 setTimeout(testLoad, 10);
15 return;
17 var prin = w.document.nodePrincipal;
18 isnot(prin, null, "Loaded principal must not be null when adding " + uri);
19 isnot(prin, undefined, "Loaded principal must not be undefined when loading " + uri);
20 is(secMan.isSystemPrincipal(prin), false,
21 "Loaded principal must not be system when loading " + uri);
22 w.close();
24 if (iteration == uris.length) {
25 finish();
26 } else {
27 ++iteration;
28 doTest();
32 function doTest() {
33 uri = uris[iteration - 1];
34 w = window.open(uri, "_blank", "width=10,height=10");
35 var prin = w.document.nodePrincipal;
36 if (!uri) {
37 uri = undefined;
39 isnot(prin, null, "Forced principal must not be null when loading " + uri);
40 isnot(prin, undefined,
41 "Forced principal must not be undefined when loading " + uri);
42 is(secMan.isSystemPrincipal(prin), false,
43 "Forced principal must not be system when loading " + uri);
44 if (uri == undefined) {
45 // No actual load here, so just move along.
46 w.close();
47 ++iteration;
48 doTest();
49 } else {
50 origDoc = w.document;
51 // Need to poll, because load listeners on the content window won't
52 // survive the load.
53 setTimeout(testLoad, 10);
57 doTest();