resource-timing.https.tentative.html (1864B)
1 <!DOCTYPE html> 2 <meta charset="utf-8" /> 3 <title>Resource timing entries present for uuid-in-package resources</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script src="../resources/test-helpers.js"></script> 7 <body> 8 <script> 9 setup(() => { 10 assert_true(HTMLScriptElement.supports("webbundle")); 11 }); 12 13 promise_test(async (t) => { 14 const script_id = "uuid-in-package:020111b3-437a-4c5c-ae07-adb6bbffb720"; 15 const element = createWebBundleElement( 16 "../resources/wbn/uuid-in-package.wbn", 17 /*resources=*/ [script_id] 18 ); 19 document.body.appendChild(element); 20 let script_entries = 0; 21 // Declare the report_result function as outputting into stderr 22 // because it is used in the WebBundle script to report the script load. 23 window.report_result = console.error; 24 const promise = new Promise((resolve) => { 25 new PerformanceObserver( 26 t.step_func((entryList) => { 27 let entries = entryList.getEntriesByType("resource"); 28 for (let i = 0; i < entries.length; ++i) { 29 // Ignore any entries for the test harness files if present. 30 if (/testharness(report)?\.js/.test(entries[i].name)) { 31 continue; 32 } 33 34 if (entries[i].name === script_id) ++script_entries; 35 } 36 if (script_entries == 1) { 37 resolve(); 38 } 39 }) 40 ).observe({ entryTypes: ["resource"] }); 41 }); 42 // Add the script so we get the ResourceTiming 43 const script = document.createElement("script"); 44 script.src = script_id; 45 document.body.appendChild(script); 46 return promise; 47 }, "Each uuid-in-package resource should have exactly 1 ResourceTiming entry."); 48 </script> 49 </body>