Test principal inheriting
");
document.documentElement.appendChild(gFrame);
},
function testInheritFromCurrent_system(cb) {
loadListener(gFrame, function () {
is(window.inheritedSystem, undefined, "load in type=content iframe shouldn't inherit system principal from current document");
cb();
}, true);
gFrame.setAttribute("src", "data:text/html,");
},
function testInheritFromCreated(cb) {
// Open a new chrome window with a type="content" iframe, so that it has no
// same-type parent.
// Load a javascript: URI in it to ensure that GetInheritedPrincipal will
// force creation of a content viewer.
let xulWinURL = 'data:application/vnd.mozilla.xul+xml,' +
'';
let newWin = window.openDialog(xulWinURL, "chrome_window", "chrome");
loadListener(newWin, function () {
let frame = newWin.document.createElement("iframe");
frame.setAttribute("type", "content");
frame.setAttribute("src", "javascript:'1';");
loadListener(frame, function () {
is(frame.contentWindow.document.body.textContent, "1", "content viewer was created");
SimpleTest.executeSoon(function () {
newWin.close();
cb();
})
});
newWin.document.documentElement.appendChild(frame);
});
}
];
addLoadEvent(function onLoad() {
ok(Components.stack, "this test must be run with the system principal");
SimpleTest.executeSoon(nextTest);
});
function loadListener(target, func) {
target.addEventListener("load", function lis() {
target.removeEventListener("load", lis, true);
func();
}, true);
}
function nextTest() {
if (tests.length) {
let test = tests.shift();
SimpleTest.executeSoon(function () {
info("running " + test.name);
test(nextTest);
});
} else
SimpleTest.executeSoon(SimpleTest.finish);
}
]]>