| <!DOCTYPE html> |
| <meta charset=utf-8> |
| <title>Makes sure that Link headers support modulepreload</title> |
| <meta name="timeout" content="long"> |
| <script src="/common/utils.js"></script> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/preload/resources/preload_helper.js"></script> |
| <body> |
| <script> |
| promise_test(async t => { |
| const id = token(); |
| const moduleLink = getAbsoluteURL('./resources/module1.js'); |
| const params = new URLSearchParams(); |
| params.set('link', `<${moduleLink}>;rel=modulepreload`); |
| params.set('type', 'text/html'); |
| params.set('file', 'modulepreload-iframe.html') |
| const docURL = getAbsoluteURL(`./resources/echo-preload-header.py?${params.toString()}`); |
| const iframe = document.createElement('iframe'); |
| t.add_cleanup(() => iframe.remove()); |
| iframe.src = docURL; |
| const messageReceived = new Promise(resolve => window.addEventListener('message', m => { |
| resolve(m.data); |
| })) |
| document.body.appendChild(iframe); |
| const result = await messageReceived; |
| assert_equals(result, 1); |
| }, 'test that a header-preloaded module is loaded and consumed'); |
| </script> |
| </body> |