tor-browser

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

fetch-blob.https.html (1359B)


      1 <!DOCTYPE html>
      2 <title>Same-origin prerendering can access blobs</title>
      3 <meta name="variant" content="?target_hint=_self">
      4 <meta name="variant" content="?target_hint=_blank">
      5 <meta name="timeout" content="long">
      6 <script src="/resources/testharness.js"></script>
      7 <script src="/resources/testharnessreport.js"></script>
      8 <script src="/common/utils.js"></script>
      9 <script src="/common/dispatcher/dispatcher.js"></script>
     10 <script src="../resources/utils.js"></script>
     11 <script src="resources/utils.js"></script>
     12 
     13 <body>
     14 <script>
     15 setup(() => assertSpeculationRulesIsSupported());
     16 
     17 promise_test(async t => {
     18  const rule_extras = {'target_hint': getTargetHint()};
     19  const {exec} = await create_prerendered_page(
     20      t, undefined, undefined, rule_extras);
     21  const result = await exec(async () => {
     22    const blob = await (await fetch('cache.txt')).blob();
     23    const reader = new FileReader();
     24    reader.readAsText(blob);
     25    return new Promise(function(resolve, reject) {
     26      reader.onload = () => resolve(reader.result);
     27      reader.onerror = () => reject(reader.error);
     28    });
     29  });
     30  const expected = "Hello, Prerender API!";
     31 
     32  // Start prerendering a page that attempts to access the blob.
     33  assert_equals(
     34    result, expected,
     35    'prerendering page should be able to read from blobs.');
     36 }, 'prerendering page should be able to access blobs');
     37 </script>