michael@0: function test() { michael@0: waitForExplicitFinish(); michael@0: michael@0: var newTab; michael@0: var newBrowser; michael@0: const secMan = Cc["@mozilla.org/scriptsecuritymanager;1"].getService(Ci.nsIScriptSecurityManager); michael@0: var iteration = 1; michael@0: const uris = [undefined, "about:blank"]; michael@0: var uri; michael@0: michael@0: function testLoad(event) { michael@0: newBrowser.removeEventListener("load", testLoad, true); michael@0: is (event.target, newBrowser.contentDocument, "Unexpected target"); michael@0: var prin = newBrowser.contentDocument.nodePrincipal; michael@0: isnot(prin, null, "Loaded principal must not be null when adding " + uri); michael@0: isnot(prin, undefined, "Loaded principal must not be undefined when loading " + uri); michael@0: is(secMan.isSystemPrincipal(prin), false, michael@0: "Loaded principal must not be system when loading " + uri); michael@0: gBrowser.removeTab(newTab); michael@0: michael@0: if (iteration == uris.length) { michael@0: finish(); michael@0: } else { michael@0: ++iteration; michael@0: doTest(); michael@0: } michael@0: } michael@0: michael@0: function doTest() { michael@0: uri = uris[iteration - 1]; michael@0: newTab = gBrowser.addTab(uri); michael@0: newBrowser = gBrowser.getBrowserForTab(newTab); michael@0: newBrowser.addEventListener("load", testLoad, true); michael@0: var prin = newBrowser.contentDocument.nodePrincipal; michael@0: isnot(prin, null, "Forced principal must not be null when loading " + uri); michael@0: isnot(prin, undefined, michael@0: "Forced principal must not be undefined when loading " + uri); michael@0: is(secMan.isSystemPrincipal(prin), false, michael@0: "Forced principal must not be system when loading " + uri); michael@0: } michael@0: michael@0: doTest(); michael@0: } michael@0: