LibWeb: Implement DedicatedWorkerGlobalScope postMessage(msg, transfer)

Unfortunately the added test (which passes locally) is skipped as it is
based off other Worker tests which are also skipped due to being flakey
in CI.
This commit is contained in:
Shannon Booth 2024-10-28 20:14:18 +13:00 committed by Andreas Kling
commit 755b63132b
Notes: github-actions[bot] 2024-10-28 22:33:18 +00:00
6 changed files with 43 additions and 2 deletions

View file

@ -0,0 +1,29 @@
<script src="../include.js"></script>
<script>
asyncTest((done) => {
const workerScript = `
self.onmessage = function(evt) {
const receivedBuffer = evt.data;
self.postMessage(receivedBuffer, [receivedBuffer]);
};
`;
const blob = new Blob([workerScript], { type: 'application/javascript' });
const workerScriptURL = URL.createObjectURL(blob);
const worker = new Worker(workerScriptURL);
worker.onmessage = function(evt) {
const bufTransferredBackFromWorker = evt.data;
const decoder = new TextDecoder();
println('Message received from worker: ' + decoder.decode(bufTransferredBackFromWorker));
done();
};
const encoder = new TextEncoder();
const message = encoder.encode("Hello, world");
const myBuf = message.buffer;
worker.postMessage(myBuf, [myBuf]);
});
</script>