| <!DOCTYPE html> |
| <title>Service Worker: 3P window for partitioned service workers</title> |
| <script src="./test-helpers.sub.js"></script> |
| <script src="/common/get-host-info.sub.js"></script> |
| |
| |
| <body> |
| This page should be opened as a third-party window. It then loads an iframe |
| specified by the query parameter. Finally it forwards the postMessage from the |
| iframe up to the opener (the test). |
| |
| <script> |
| |
| async function onLoad() { |
| const message_promise = new Promise(resolve => { |
| self.addEventListener('message', evt => { |
| resolve(evt.data); |
| }); |
| }); |
| |
| const search_param = new URLSearchParams(window.location.search); |
| const iframe_url = search_param.get('target'); |
| |
| var frame = document.createElement('iframe'); |
| frame.src = iframe_url; |
| frame.style.position = 'absolute'; |
| document.body.appendChild(frame); |
| |
| |
| await message_promise.then(data => { |
| // We're done, forward the message and clean up. |
| window.opener.postMessage(data, '*'); |
| |
| frame.remove(); |
| }); |
| } |
| |
| self.addEventListener('load', onLoad); |
| |
| </script> |
| </body> |