Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that expects 1 subtest issues.
- This WPT test may be referenced by the following Test IDs:
- /reporting/cross-origin-reports-isolated.https.sub.html - WPT Dashboard Interop Dashboard
<!DOCTYPE HTML>
<html>
<head>
<title>Test that reports from different origins are not sent together</title>
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<script src='resources/report-helper.js'></script>
</head>
<body>
<script>
const base_url = `${location.protocol}//${location.host}`;
const endpoint = `${base_url}/reporting/resources/report.py`;
const id = 'd0d517bf-891b-457a-b970-8b2b2c81a0bf';
promise_test(async t => {
// Attach a cross-origin iframe which should post back here immediately
// before generating a CSP error. That error should be reported to the
// same endpoint that this frame reports to.
await new Promise(resolve => {
const iframe = document.createElement('iframe');
iframe.src = "https://{{domains[www]}}:{{ports[https][0]}}/reporting/resources/csp-error.https.sub.html";
addEventListener('message', resolve);
document.body.appendChild(iframe);
});
// Trigger a CSP error and report in this frame as well.
await new Promise(resolve => {
const img = document.createElement('img');
img.src = "/reporting/resources/fail.png";
img.addEventListener('error', resolve);
document.body.appendChild(img);
});
// Wait for 2 reports to be received.
const reports = await pollReports(endpoint, id, 2);
assert_equals(reports.length, 2);
// Validate that reports were sent in separate requests.
const request_count = await pollNumResults(endpoint, id);
assert_equals(request_count, 2);
}, "Reports were sent in two requests.");
</script>
</body>
</html>