blob: 27819d61b2b321db6f9bf5c5d0b297824c34f85d [file] [log] [blame]
var EXPECT_BLOCK = true;
var EXPECT_LOAD = false;
window.jsTestIsAsync = true;
window.wasPostTestScriptParsed = true;
var iframe;
function injectFrame(url, shouldBlock) {
window.onload = function () {
iframe = document.createElement('iframe');
iframe.onload = iframeLoaded(shouldBlock);
iframe.src = url;
document.body.appendChild(iframe);
};
}
function iframeLoaded(expectBlock) {
return function(ev) {
var failed = true;
try {
console.log("IFrame load event fired: the IFrame's location is '" + ev.target.contentWindow.location.href + "'.");
if (expectBlock) {
testFailed("The IFrame should have been blocked (or cross-origin). It wasn't.");
failed = true;
} else {
testPassed("The IFrame should not have been blocked. It wasn't.");
failed = false;
}
} catch (ex) {
debug("IFrame load event fired: the IFrame is cross-origin (or was blocked).");
if (expectBlock) {
testPassed("The IFrame should have been blocked (or cross-origin). It was.");
failed = false;
} else {
testFailed("The IFrame should not have been blocked. It was.");
failed = true;
}
}
finishJSTest();
};
}
function injectFrameRedirectingTo(url, shouldBlock) {
injectFrame("/security/contentSecurityPolicy/resources/redir.php?url=" + url, shouldBlock);
}
function injectWorker(url, expectBlock) {
window.onload = function() {
if (expectBlock == EXPECT_BLOCK)
shouldThrow("var w = new Worker('" + url + "');");
else
shouldNotThrow("var w = new Worker('" + url + "');");
finishJSTest();
};
}