64 lines
2.2 KiB
JavaScript
64 lines
2.2 KiB
JavaScript
function _doTest(decisionPoint, decision, decideAfterUnblockRequest)
|
|
{
|
|
var settings = window.internals.mockContentFilterSettings;
|
|
settings.enabled = true;
|
|
settings.decisionPoint = decisionPoint;
|
|
settings.decision = (decideAfterUnblockRequest ? "block" : decision);
|
|
|
|
var blockedStringText;
|
|
if (decisionPoint === "never" || decision === "allow")
|
|
blockedStringText = "FAIL";
|
|
else
|
|
blockedStringText = "PASS";
|
|
|
|
if (decideAfterUnblockRequest) {
|
|
settings.unblockRequestDecision = decision;
|
|
settings.blockedString = "<!DOCTYPE html><script>function unblockRequestDenied() { window.top.postMessage('unblockrequestdenied', '*'); }</script><body>" + blockedStringText;
|
|
} else
|
|
settings.blockedString = "<!DOCTYPE html><body>" + blockedStringText;
|
|
|
|
var isUnblocking = false;
|
|
var iframe = document.createElement("iframe");
|
|
document.body.appendChild(iframe);
|
|
iframe.addEventListener("load", function(event) {
|
|
if (isUnblocking || !decideAfterUnblockRequest) {
|
|
window.testRunner.notifyDone();
|
|
return;
|
|
}
|
|
|
|
isUnblocking = true;
|
|
window.addEventListener("message", function(event) {
|
|
if (event.data === "unblockrequestdenied")
|
|
window.testRunner.notifyDone();
|
|
}, false);
|
|
iframe.contentDocument.location = settings.unblockRequestURL;
|
|
}, false);
|
|
|
|
if (blockedStringText === "FAIL")
|
|
iframe.src = "resources/pass.html";
|
|
else
|
|
iframe.src = "resources/fail.html";
|
|
}
|
|
|
|
function testContentFiltering(decisionPoint, decision, decideAfterUnblockRequest)
|
|
{
|
|
if (!window.internals) {
|
|
console.log("This test requires window.internals");
|
|
return;
|
|
}
|
|
|
|
if (!window.testRunner) {
|
|
console.log("This test requires window.testRunner");
|
|
return;
|
|
}
|
|
|
|
window.testRunner.waitUntilDone();
|
|
window.testRunner.dumpAsText();
|
|
window.testRunner.dumpChildFramesAsText();
|
|
window.testRunner.dumpBackForwardList();
|
|
window.testRunner.dumpFrameLoadCallbacks();
|
|
window.addEventListener("load", function(event) {
|
|
_doTest(decisionPoint, decision, decideAfterUnblockRequest);
|
|
}, false);
|
|
}
|