blob: 2f5ff463d0fb3fbb639cf61014aa3a2b4a1cb98e [file] [log] [blame]
<head>
<script>
if (window.testRunner && window.internals) {
testRunner.dumpAsText();
testRunner.dumpChildFramesAsText();
internals.settings.setHyperlinkAuditingEnabled(true);
testRunner.waitUntilDone();
}
function loadLinkWithPing() {
var iframe = document.getElementById("link_frame");
var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
iframeDoc.write('' +
'<img src="resources/delete-ping.py?test=contentextensions-block-ping-resource-type-ping" ' +
'onerror="parent.clickOnLinkWithPing();">' +
'<a id="a" ' +
'href="resources/check-ping.html" ' + // check-ping.html calls showPingResult()
'ping="resources/save-ping.py?test=contentextensions-block-ping-resource-type-ping"> ' +
'Link with ping' +
'</a>'
);
}
function clickOnLinkWithPing() {
var iframe = document.getElementById("link_frame");
var iframeDoc = iframe.contentDocument;
if (window.eventSender) {
var a = iframeDoc.getElementById("a");
var x = iframe.offsetLeft + a.offsetLeft + 2;
var y = iframe.offsetTop + a.offsetTop + 2;
eventSender.mouseMoveTo(x, y);
eventSender.mouseDown();
eventSender.mouseUp();
}
}
function showPingResult() {
var iframe = document.getElementById("result_frame");
iframe.onload = function() {
fetch("resources/save-ping.py?test=contentextensions-block-ping-resource-type-ping").then(()=>{
fetch("resources/delete-ping.py?test=contentextensions-block-ping-resource-type-ping").then(()=>{
alert("PASS: successfully loaded ping url with fetch");
if (window.testRunner) { testRunner.notifyDone(); }
})
}).catch(error => { alert("FAIL:" + error); if (window.testRunner) { testRunner.notifyDone(); } });
}
iframe.src = "resources/get-ping-data.py?test=contentextensions-block-ping-resource-type-ping&timeout_ms=1000";
// Why timeout_ms=1000:
// To pass the test, the ping shouldn't arrive, so we need to
// timeout at some point. We don't have to wait too long because
// the console message can tell us whether the ping was blocked.
}
</script>
</head>
<body onload="loadLinkWithPing();">
This test follows a link with a ping attribute where the ping URL matches a 'block' rule.
<iframe id="link_frame" name="link_frame"><!-- Will contain link with ping --></iframe>
<iframe id="result_frame" name="result_frame"><!-- Will contain ping data received by server --></iframe>
</body>