summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/content-security-policy/reporting/report-only-in-meta.sub.html
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--testing/web-platform/tests/content-security-policy/reporting/report-only-in-meta.sub.html46
-rw-r--r--testing/web-platform/tests/content-security-policy/reporting/report-only-in-meta.sub.html.sub.headers5
2 files changed, 51 insertions, 0 deletions
diff --git a/testing/web-platform/tests/content-security-policy/reporting/report-only-in-meta.sub.html b/testing/web-platform/tests/content-security-policy/reporting/report-only-in-meta.sub.html
new file mode 100644
index 0000000000..4df9865d2c
--- /dev/null
+++ b/testing/web-platform/tests/content-security-policy/reporting/report-only-in-meta.sub.html
@@ -0,0 +1,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>
diff --git a/testing/web-platform/tests/content-security-policy/reporting/report-only-in-meta.sub.html.sub.headers b/testing/web-platform/tests/content-security-policy/reporting/report-only-in-meta.sub.html.sub.headers
new file mode 100644
index 0000000000..b56292b470
--- /dev/null
+++ b/testing/web-platform/tests/content-security-policy/reporting/report-only-in-meta.sub.html.sub.headers
@@ -0,0 +1,5 @@
+Expires: Mon, 26 Jul 1997 05:00:00 GMT
+Cache-Control: no-store, no-cache, must-revalidate
+Cache-Control: post-check=0, pre-check=0, false
+Pragma: no-cache
+Content-Security-Policy: script-src 'unsafe-inline' 'self'