media-autoplay-attribute.html (1496B)
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 <audio id="audio" autoplay loop></audio> 7 <video id="video" autoplay type="video/mp4"></video> 8 <script> 9 const params = new URLSearchParams(location.search); 10 // The main test page (restriction-media-auto-play-attribute.html) loads the 11 // initiator page, then the initiator page will prerender itself with the 12 // `prerendering` parameter. 13 const isPrerendering = params.has('prerendering'); 14 15 if (!isPrerendering) { 16 const rule_extras = {'target_hint': getTargetHint()}; 17 loadInitiatorPage(rule_extras); 18 } else { 19 const mediaType = params.get('type'); 20 const media = document.getElementById(mediaType); 21 media.src = "./bear-av1-opus.mp4"; 22 23 const prerenderEventCollector = new PrerenderEventCollector(); 24 const promise = new Promise((resolve, reject) => { 25 media.onloadedmetadata = () => { 26 prerenderEventCollector.addEvent( 27 'fired loadedmetadata event after prerendering is activated'); 28 resolve(); 29 }; 30 media.onloadstart = () => { 31 // Wait some time to give the test a chance to load the data and fail the 32 // test. 33 setTimeout(() => { 34 prerenderEventCollector.start(promise, 'Autoplay'); 35 }, 100); 36 }; 37 media.onerror = reject; 38 }); 39 40 } 41 </script>