tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

link-header-modulepreload.html (1278B)


      1 <!DOCTYPE html>
      2 <meta charset=utf-8>
      3 <title>Makes sure that Link headers support modulepreload</title>
      4 <meta name="timeout" content="long">
      5 <script src="/common/utils.js"></script>
      6 <script src="/resources/testharness.js"></script>
      7 <script src="/resources/testharnessreport.js"></script>
      8 <script src="/preload/resources/preload_helper.js"></script>
      9 <body>
     10 <script>
     11    promise_test(async t => {
     12        const id = token();
     13        const moduleLink = getAbsoluteURL('./resources/module1.js');
     14        const params = new URLSearchParams();
     15        params.set('link', `<${moduleLink}>;rel=modulepreload`);
     16        params.set('type', 'text/html');
     17        params.set('file', 'modulepreload-iframe.html')
     18        const docURL = getAbsoluteURL(`./resources/echo-preload-header.py?${params.toString()}`);
     19        const iframe = document.createElement('iframe');
     20        t.add_cleanup(() => iframe.remove());
     21        iframe.src = docURL;
     22        const messageReceived = new Promise(resolve => window.addEventListener('message', m => {
     23            resolve(m.data);
     24        }))
     25        document.body.appendChild(iframe);
     26        const result = await messageReceived;
     27        assert_equals(result, 1);
     28    }, 'test that a header-preloaded module is loaded and consumed');
     29 </script>
     30 </body>