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>