| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8" /> |
| <title>Resource Timing Entry Sequence of Events for Scripts</title> |
| <link rel="help" href="https://w3c.github.io/resource-timing/"/> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <script> |
| async_test(t => { |
| const script = document.createElement("script"); |
| const url = new URL('resources/empty.js', location.href).toString(); |
| script.addEventListener('load', t.step_func(() => { |
| assert_equals(performance.getEntriesByName(url).length, 1); |
| t.done(); |
| })); |
| script.src = url; |
| document.body.appendChild(script); |
| t.add_cleanup(() => script.remove()); |
| }, "The RT entry for script should be available when the script 'load' event fires"); |
| |
| async_test(t => { |
| const script = document.createElement("script"); |
| const url = new URL('resources/non-existent.js', location.href).toString(); |
| script.addEventListener('error', t.step_func(() => { |
| assert_equals(performance.getEntriesByName(url).length, 1); |
| t.done(); |
| })); |
| script.src = url; |
| document.body.appendChild(script); |
| t.add_cleanup(() => script.remove()); |
| }, "The RT entry for a non-existent script should be available when the script 'error' event fires"); |
| </script> |
| </body> |
| </html> |