dedicated-worker-import-meta.html (2342B)
1 <!DOCTYPE html> 2 <title>DedicatedWorker: import.meta</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script> 6 7 promise_test(() => { 8 const script_url = 'resources/import-meta-url-worker.js'; 9 const worker = new Worker(script_url, { type: 'module' }); 10 return new Promise((resolve, reject) => { 11 worker.onmessage = resolve; 12 worker.onerror = error => { 13 const msg = error instanceof ErrorEvent ? error.message 14 : 'unknown error'; 15 reject(msg); 16 }; 17 }) 18 .then(msg_event => assert_true(msg_event.data.endsWith(script_url))); 19 }, 'Test import.meta.url on the top-level module script.'); 20 21 promise_test(() => { 22 const script_url = 'import-meta-url-export.js'; 23 const worker = new Worker('resources/dynamic-import-given-url-worker.js', 24 { type: 'module' }); 25 worker.postMessage('./' + script_url); 26 return new Promise((resolve, reject) => { 27 worker.onmessage = resolve; 28 worker.onerror = error => { 29 const msg = error instanceof ErrorEvent ? error.message 30 : 'unknown error'; 31 reject(msg); 32 }; 33 }) 34 .then(msg_event => assert_true(msg_event.data.endsWith(script_url))); 35 }, 'Test import.meta.url on the imported module script.'); 36 37 promise_test(() => { 38 const script_url = 'import-meta-url-export.js'; 39 const worker = new Worker('resources/dynamic-import-given-url-worker.js', 40 { type: 'module' }); 41 worker.postMessage('./' + script_url); 42 43 return new Promise((resolve, reject) => { 44 worker.onmessage = resolve; 45 worker.onerror = error => { 46 const msg = error instanceof ErrorEvent ? error.message 47 : 'unknown error'; 48 reject(msg); 49 }; 50 }) 51 .then(msg_event => assert_true(msg_event.data.endsWith(script_url))) 52 .then(() => { 53 worker.postMessage('./' + script_url + '#1'); 54 return new Promise(resolve => worker.onmessage = resolve); 55 }) 56 .then(msg_event => assert_true(msg_event.data.endsWith(script_url + "#1"))); 57 }, 'Test import.meta.url on the imported module script with a fragment.'); 58 59 </script>