incumbent.html (1178B)
1 <!DOCTYPE html> 2 <title>Incumbent page used as a test helper</title> 3 <button id="focus-opener-button" onclick="opener.focus()">Focus opener</button> 4 <script> 5 'use strict'; 6 7 function pageDone(expectedMessage) { 8 return new Promise(resolve => { 9 window.addEventListener('message', e => { 10 if (e.data === expectedMessage) { 11 resolve(); 12 } 13 }); 14 }); 15 } 16 17 onload = async () => { 18 await opener.test_driver.bless("open current popup", null, window); 19 const currentDone = pageDone("current page"); 20 const currentWin = window.open("current.html", "_blank"); 21 await currentDone; 22 await opener.test_driver.bless("open relevant popup", null, window); 23 const relevantDone = pageDone("relevant page"); 24 const relevantWin = window.open("relevant.html", "_blank"); 25 await relevantDone; 26 window.openTestPopup = function() { 27 // This is the multi-global incarnation 28 return currentWin.open.call(relevantWin, "/resources/blank.html", "_blank"); 29 }; 30 opener.currentWin = currentWin; 31 opener.relevantWin = relevantWin; 32 await opener.test_driver.click(document.getElementById("focus-opener-button")); 33 opener.postMessage("incumbent page", "*"); 34 }; 35 </script>