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