Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<!DOCTYPE html>
<html>
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<title>Cookies are sent on same origin violation reports</title>
<!-- CSP headers
Content-Security-Policy: script-src 'unsafe-inline' 'self'; img-src 'none'; report-uri /reporting/resources/report.py?op=put&reportID={{$id}}
-->
</head>
<body>
<script>
var test = async_test("Image should not load");
fetch(
"/cookies/resources/set-cookie.py?name=cspViolationReportCookie2&path=" + encodeURIComponent("/"),
{mode: 'no-cors', credentials: 'include'})
.then(() => {
// Loading `img` will generate a CSP violation report.
// As this test is for covering the behavior of the deprecated "report-uri" directive [1], the
// underlying report is backed by a browser-initiated fetch "keepalive" request [2]. Per
// keepalive spec [3], such request may outlive this entire document itself. Hence, the cookie
// this test wants to test, i.e. "cspViolationReportCookie2", must NOT be cleared before the
// browser entirely sending out the report request.
const img = new Image();
img.onerror = test.step_func_done();
img.onload = test.unreached_func("Should not have loaded the image");
img.src = "../support/fail.png";
document.body.appendChild(img);
});
</script>
<script async defer src='../support/checkReport.sub.js?reportField=violated-directive&reportValue=img-src%20%27none%27&cookiePresent=cspViolationReportCookie2'></script>
</body>
</html>