| <!DOCTYPE html> |
| <meta charset="utf-8" /> |
| <title>Resource timing entries present for uuid-in-package resources</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="../resources/test-helpers.js"></script> |
| <body> |
| <script> |
| setup(() => { |
| assert_true(HTMLScriptElement.supports("webbundle")); |
| }); |
| |
| promise_test(async (t) => { |
| const script_id = "uuid-in-package:020111b3-437a-4c5c-ae07-adb6bbffb720"; |
| const element = createWebBundleElement( |
| "../resources/wbn/uuid-in-package.wbn", |
| /*resources=*/ [script_id] |
| ); |
| document.body.appendChild(element); |
| let script_entries = 0; |
| // Declare the report_result function as outputting into stderr |
| // because it is used in the WebBundle script to report the script load. |
| window.report_result = console.error; |
| const promise = new Promise((resolve) => { |
| new PerformanceObserver( |
| t.step_func((entryList) => { |
| let entries = entryList.getEntriesByType("resource"); |
| for (let i = 0; i < entries.length; ++i) { |
| // Ignore any entries for the test harness files if present. |
| if (/testharness(report)?\.js/.test(entries[i].name)) { |
| continue; |
| } |
| |
| if (entries[i].name === script_id) ++script_entries; |
| } |
| if (script_entries == 1) { |
| resolve(); |
| } |
| }) |
| ).observe({ entryTypes: ["resource"] }); |
| }); |
| // Add the script so we get the ResourceTiming |
| const script = document.createElement("script"); |
| script.src = script_id; |
| document.body.appendChild(script); |
| return promise; |
| }, "Each uuid-in-package resource should have exactly 1 ResourceTiming entry."); |
| </script> |
| </body> |