web-nfc.https.html (1347B)
1 <!DOCTYPE html> 2 <script src="/resources/testharness.js"></script> 3 <script src="/resources/testharnessreport.js"></script> 4 <script src="/speculation-rules/prerender/resources/utils.js"></script> 5 <script src="/speculation-rules/prerender/resources/deferred-promise-utils.js"></script> 6 <script> 7 8 const params = new URLSearchParams(location.search); 9 10 // The main test page (restriction-web-nfc.https.html) loads the initiator page, 11 // then the initiator page will prerender itself with the `prerendering` 12 // parameter. 13 const isPrerendering = params.has('prerendering'); 14 15 if (!isPrerendering) { 16 loadInitiatorPage(); 17 } else { 18 const prerenderEventCollector = new PrerenderEventCollector(); 19 const promise = new Promise(async (resolve) => { 20 // We expect an error from NDEFReader.write() and scan() since we don't 21 // enable NFC HW. 22 const ndef = new NDEFReader(); 23 const result1 = await ndef.write("Test") 24 .then(() => 'ndef.write() unexpectedly succeeded') 25 .catch(e => 'ndef.write() failed'); 26 prerenderEventCollector.addEvent(result1); 27 const result2 = await ndef.scan() 28 .then(() => 'ndef.scan() unexpectedly succeeded') 29 .catch(e => 'ndef.scan() failed'); 30 prerenderEventCollector.addEvent(result2); 31 resolve(); 32 }); 33 prerenderEventCollector.start(promise, 'NDEFReader.[write|scan]'); 34 } 35 36 </script>