| <!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> |