wake-lock.https.html (1366B)
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-wake-lock.https.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 loadInitiatorPage(); 17 } else { 18 const prerenderEventCollector = new PrerenderEventCollector(); 19 const promise = new Promise((resolve, reject) => { 20 navigator.wakeLock.request('screen') 21 .then(() => { 22 reject('unexpected success'); 23 }) 24 .catch((e) => { 25 prerenderEventCollector.addEvent('navigator.wakeLock.request failed'); 26 }); 27 28 document.addEventListener('prerenderingchange', () => { 29 prerenderEventCollector.addEvent( 30 'requesting navigator.wakeLock.request on prerendering change'); 31 navigator.wakeLock.request('screen') 32 .then(function() { 33 lock => lock.release(); resolve(); 34 }); 35 }); 36 }); 37 prerenderEventCollector.start(promise, 'navigator.wakeLock.request test'); 38 } 39 40 </script>