haikuwebkit/LayoutTests/contentfiltering/resources/contentfiltering.js

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);
}