File: report-same-origin-with-cookies.html

package info (click to toggle)
firefox-esr 140.4.0esr-1~deb13u1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 4,539,284 kB
  • sloc: cpp: 7,381,286; javascript: 6,388,710; ansic: 3,710,139; python: 1,393,780; xml: 628,165; asm: 426,916; java: 184,004; sh: 65,742; makefile: 19,302; objc: 13,059; perl: 12,912; yacc: 4,583; cs: 3,846; pascal: 3,352; lex: 1,720; ruby: 1,226; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (38 lines) | stat: -rw-r--r-- 1,745 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!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.
    // [1]: https://www.w3.org/TR/CSP3/#report-uri
    // [2]: https://www.w3.org/TR/CSP3/#report-violation
    // [3]: https://fetch.spec.whatwg.org/#request-keepalive-flag
    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>