Source code

Revision control

Copy as Markdown

Other Tools

<!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>