blob: b0f7103053ba8e8ae938be3831de9b785d78047c [file] [log] [blame]
<!DOCTYPE html>
<title>SXG reporting test of sxg.failed for prefetch (zero success fraction)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="/network-error-logging/support/nel.sub.js"></script>
<script src="../resources/sxg-util.js"></script>
<body>
<script>
const alt_origin = get_host_info().HTTPS_NOTSAMESITE_ORIGIN;
const test_origin = get_host_info().HTTPS_ORIGIN;
nel_test(async t => {
await fetchResourceWithZeroSuccessFractionPolicy();
const sxg_url =
alt_origin + '/signed-exchange/resources/sxg/sxg-cert-not-found.sxg?prefetch';
const cert_url =
test_origin + '/signed-exchange/resources/not_found_certfile.cbor';
addPrefetch(sxg_url);
assert_true(await reportExists(
{
url: sxg_url,
user_agent: navigator.userAgent,
type: "network-error",
body: {
phase: "sxg",
// The origin of this SXG's certURL is different from the reporting
// origin. So the report must be downgraded.
type: "sxg.failed",
elapsed_time: 0,
status_code: 200,
referrer: location.href,
sxg: {
outer_url: sxg_url,
inner_url:
innerURLOrigin() + '/signed-exchange/resources/inner-url.html',
cert_url: [cert_url]
}
},
metadata: {
content_type: "application/reports+json",
},
},
), 'SXG error reporting must be downgraded when the cert URL is different ' +
'from the reporting origin');
assert_false(await reportExists(
{
url: sxg_url,
user_agent: navigator.userAgent,
type: "network-error",
body: {
phase: "application",
type: "ok",
status_code: 200,
referrer: location.href,
},
metadata: {
content_type: "application/reports+json",
},
}
), 'Succeeded normal NEL report should not be sent when success fraction ' +
'is zero.');
}, 'SXG error report must be downgraded when the cert URL is different from ' +
'the reporting origin. And succeeded normal NEL report should not be sent ' +
' when success fraction is zero.');
</script>
</body>