<!DOCTYPE html>
<body>
<script>
    if (window.testRunner) {
        testRunner.waitUntilDone();
        testRunner.dumpAsText();
        testRunner.setCanOpenWindows();
    }
    onmessage = (event) => {
        document.body.innerHTML = !event.data ? "PASS": "FAIL";
        if (window.testRunner)
            testRunner.notifyDone();
    };
    setTimeout(() => {
        document.body.innerHTML = "TIMEOUT";
        if (window.testRunner)
            testRunner.notifyDone();
    }, 10000);
</script>
<iframe src="data:text/html,<script>console.log('data URL frame loaded'); const blob = new Blob(['<'+ 'script>console.log(\'blob popup loaded\'); window.opener.postMessage(window.isSecureContext, \'*\'); console.log(\'blob popup message posted\'); <' + '/script>'], {type: 'text/html'}); const popup = window.open(URL.createObjectURL(blob)); onmessage = (event) => { parent.postMessage(event.data, '*'); popup.close(); }; console.log('blob popup opened'); </script>"></iframe>
</body>
