shared-worker-import-meta.html (1951B)
1 <!DOCTYPE html> 2 <title>SharedWorker: 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 SharedWorker(script_url, { type: 'module' }); 10 return new Promise((resolve, reject) => { 11 worker.port.onmessage = resolve; 12 worker.onerror = (error) => reject(error && error.message); 13 }) 14 .then(msg_event => assert_true(msg_event.data.endsWith(script_url))); 15 }, 'Test import.meta.url on the top-level module script.'); 16 17 promise_test(() => { 18 const script_url = 'import-meta-url-export.js'; 19 const worker = new SharedWorker( 20 'resources/dynamic-import-given-url-worker.js', 21 { type: 'module' }); 22 worker.port.postMessage('./' + script_url); 23 return new Promise((resolve, reject) => { 24 worker.port.onmessage = resolve; 25 worker.onerror = (error) => reject(error && error.message); 26 }) 27 .then(msg_event => assert_true(msg_event.data.endsWith(script_url))); 28 }, 'Test import.meta.url on the imported module script.'); 29 30 promise_test(() => { 31 const script_url = 'import-meta-url-export.js'; 32 const worker = new SharedWorker( 33 'resources/dynamic-import-given-url-worker.js', 34 { type: 'module' }); 35 worker.port.postMessage('./' + script_url); 36 37 return new Promise((resolve, reject) => { 38 worker.port.onmessage = resolve; 39 worker.onerror = (error) => reject(error && error.message); 40 }) 41 .then(msg_event => assert_true(msg_event.data.endsWith(script_url))) 42 .then(() => { 43 worker.port.postMessage('./' + script_url + '#1'); 44 return new Promise(resolve => worker.port.onmessage = resolve); 45 }) 46 .then(msg_event => assert_true(msg_event.data.endsWith(script_url + "#1"))); 47 }, 'Test import.meta.url on the imported module script with a fragment.'); 48 49 </script>