1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
<html>
<body>
<iframe id="target" srcdoc="
<ul id='results'></ul>
<script>
window.addEventListener('message', (event) => {
if (event.data && event.data.obj)
window.webkit.messageHandlers.testHandler.postMessage(event.data.name + ': ' + event.data.obj.constructor.name);
else
window.webkit.messageHandlers.testHandler.postMessage(event.data.name + ': FAIL');
}, false);
</script>
"></iframe>
<script>
const target = document.getElementById("target");
setTimeout(() => {
target.contentWindow.postMessage(
{
name: "Object",
obj: { }
},
"*",
[]
);
const buf = new ArrayBuffer(8);
target.contentWindow.postMessage(
{
name: "ArrayBuffer",
obj: buf
},
"*",
[buf]
);
const canvas = new OffscreenCanvas(10, 10);
target.contentWindow.postMessage(
{
name: "OffscreenCanvas",
obj: canvas
},
"*",
[canvas]
);
const channel = new MessageChannel();
target.contentWindow.postMessage(
{
name: "MessagePort",
obj: channel.port2
},
"*",
[channel.port2]
);
}, 1000);
</script>
</body>
</html>
|