File: report-only-in-meta.sub.html

package info (click to toggle)
firefox 143.0.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,617,328 kB
  • sloc: cpp: 7,478,492; javascript: 6,417,157; ansic: 3,720,058; python: 1,396,372; xml: 627,523; asm: 438,677; java: 186,156; sh: 63,477; makefile: 19,171; objc: 13,059; perl: 12,983; yacc: 4,583; cs: 3,846; pascal: 3,405; lex: 1,720; ruby: 1,003; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 53; csh: 10
file content (46 lines) | stat: -rw-r--r-- 1,880 bytes parent folder | download | duplicates (22)
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
39
40
41
42
43
44
45
46
<!DOCTYPE html>
<html>
<head>
    <title>Report-only policy not allowed in meta tag</title>
    <meta name="timeout" content="long">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <!-- CSP headers
         Content-Security-Policy: script-src 'unsafe-inline' 'self'
         -->
    <!-- since we try to set the report-uri in the meta tag, we have to set the cookie with the reportID in here instead of in the headers file -->
    <meta http-equiv="Content-Security-Policy-Report-Only" content="img-src 'none'; report-uri /reporting/resources/report.py?op=put&reportID={{$id:uuid()}}">
</head>
<body>
  <script>
    var test = async_test("Image should load");

    <!-- Set cookie for checking if the report exists
      -->
    fetch(
      "support/set-cookie.py?name=report-only-in-meta&value={{$id}}&path=" + encodeURIComponent("/content-security-policy/reporting/"),
      {mode: 'no-cors', credentials: 'include'})
    .then(() => {
      const img = new Image();
      img.onload = test.step_func_done();
      img.onerror = test.unreached_func("Should have loaded the image");

      img.src = "../support/pass.png";
      document.body.appendChild(img);

      <!-- this needs to be done after setting the cookie so we do it here -->
      const script = document.createElement('script');
      script.async = true;
      script.defer = true;
      script.src = '../support/checkReport.sub.js?reportExists=false'
      document.body.appendChild(script);

      // Immediately declare a test so that the harness does not infer
      // completion if the image loads before the script.
      var checkReportTest = async_test("checkReport tests loaded");
      script.onload = checkReportTest.step_func_done();
      script.onerror = checkReportTest.unreached_func();
    });
  </script>
</body>
</html>