tor-browser

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

preload-xhr.html (1776B)


      1 <script src="/resources/testharness.js"></script>
      2 <script src="/resources/testharnessreport.js"></script>
      3 <script src="/common/utils.js"></script>
      4 <script src="/preload/resources/preload_helper.js"></script>
      5 <script>
      6 
      7 const dummyContent = '<?xml version="1.0" encoding="utf-8"?>\n<root>Text.me</root>\n';
      8 promise_test(async (t) => {
      9  const url = `resources/dummy.xml?token=${token()}`;
     10  const link = document.createElement('link');
     11  link.rel = 'preload';
     12  link.as = 'fetch';
     13  link.href = url;
     14  link.crossOrigin = 'anonymous';
     15 
     16  document.head.appendChild(link);
     17 
     18  const xhr = new XMLHttpRequest();
     19  await new Promise((resolve, reject) => {
     20    xhr.onloadend = resolve;
     21    xhr.onloaderror = reject;
     22    xhr.open('GET', url);
     23    xhr.send();
     24  });
     25  verifyNumberOfResourceTimingEntries(url, 1);
     26  assert_equals(xhr.status, 200);
     27  assert_equals(xhr.responseText, dummyContent);
     28 
     29 }, 'Make an XHR request immediately after creating link rel=preload.');
     30 
     31 promise_test(async (t) => {
     32  const url = `resources/dummy.xml?token=${token()}`;
     33  const link = document.createElement('link');
     34  link.rel = 'preload';
     35  link.as = 'fetch';
     36  link.href = url;
     37  link.crossOrigin = 'anonymous';
     38 
     39  await new Promise((resolve, reject) => {
     40    link.addEventListener('load', resolve, {once: true});
     41    link.addEventListener('error', reject, {once: true});
     42    document.head.appendChild(link);
     43  });
     44 
     45  const xhr = new XMLHttpRequest();
     46  await new Promise((resolve, reject) => {
     47    xhr.onloadend = resolve;
     48    xhr.onloaderror = reject;
     49    xhr.open('GET', url);
     50    xhr.send();
     51  });
     52  verifyNumberOfResourceTimingEntries(url, 1);
     53  assert_equals(xhr.status, 200);
     54  assert_equals(xhr.responseText, dummyContent);
     55 }, 'Make an XHR request after loading link rel=preload.');
     56 
     57 </script>