| <!doctype html> | |
| <html> | |
| <meta charset="utf-8"> | |
| <script src="/common/utils.js"></script> | |
| <script src="/common/get-host-info.sub.js"></script> | |
| <script> | |
| const TOKEN = token(); | |
| const { | |
| HTTP_NOTSAMESITE_ORIGIN, | |
| HTTP_REMOTE_ORIGIN, | |
| HTTP_REMOTE_ORIGIN_WITH_DIFFERENT_PORT | |
| } = get_host_info(); | |
| const REDIRECT_DESTINATION = | |
| `${HTTP_REMOTE_ORIGIN_WITH_DIFFERENT_PORT}/fetch/api/resources/stash-put.py` + | |
| `?key=${TOKEN}&value=on`; | |
| const URL = | |
| `${HTTP_REMOTE_ORIGIN}/fetch/api/resources/redirect.py?` + | |
| `delay=500&` + | |
| `allow_headers=foo&` + | |
| `location=${encodeURIComponent(REDIRECT_DESTINATION)}`; | |
| addEventListener('load', () => { | |
| const iframe = document.createElement('iframe'); | |
| document.body.appendChild(iframe); | |
| iframe.contentWindow.addEventListener('unload', () => { | |
| iframe.contentWindow.fetch(URL, {keepalive: true, headers: {foo: 'bar'}}); | |
| }); | |
| window.opener.postMessage(TOKEN, '*'); | |
| // Do NOT remove `iframe` here. We want to check the case where the nested | |
| // frame is implicitly closed by window closure. | |
| }); | |
| </script> | |
| </html> |