| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <title> |
| Test that NEL reports are sent for cache validation requests |
| </title> |
| <script src='/resources/testharness.js'></script> |
| <script src='/resources/testharnessreport.js'></script> |
| <script src='./support/nel.sub.js'></script> |
| </head> |
| <body> |
| <script> |
| nel_test(async t => { |
| // Fetch a resource that can be cached, but whose response requires |
| // validation. Do this *before* fetching the NEL policy for this origin, |
| // to ensure that we don't generate any report about this request. |
| await fetchValidatedCachedResource(); |
| // Fetch the NEL policy for this origin. |
| await fetchResourceWithBasicPolicy(); |
| // Fetch the now-cached resource again. Because the response requires |
| // validation, this will result in a network request. |
| await fetchValidatedCachedResource(); |
| // We should receive a report about the cache validation request. |
| assert_true(await reportExists({ |
| url: getURLForValidatedCachedResource(), |
| user_agent: navigator.userAgent, |
| type: "network-error", |
| body: { |
| method: "GET", |
| sampling_fraction: 1.0, |
| status_code: 304, |
| phase: "application", |
| type: "ok", |
| }, |
| metadata: { |
| content_type: "application/reports+json", |
| }, |
| })); |
| }); |
| </script> |
| </body> |
| </html> |