From 22e7b0f585fb3715ef1894b2c26a0e3cbbd43e9e Mon Sep 17 00:00:00 2001 From: Luca Casonato Date: Sat, 26 Jun 2021 11:17:05 +0200 Subject: fix: MessagePort in message for postMessage transfers (#11103) --- extensions/web/13_message_port.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'extensions') diff --git a/extensions/web/13_message_port.js b/extensions/web/13_message_port.js index 50d3f5d04..1928409f2 100644 --- a/extensions/web/13_message_port.js +++ b/extensions/web/13_message_port.js @@ -60,7 +60,9 @@ * @returns {MessagePort} */ function createMessagePort(id) { - const port = webidl.createBranded(MessagePort); + const port = core.createHostObject(); + Object.setPrototypeOf(port, MessagePort.prototype); + port[webidl.brand] = webidl.brand; setEventTargetData(port); port[_id] = id; return port; @@ -187,7 +189,9 @@ } } - const data = core.deserialize(messageData.data); + const data = core.deserialize(messageData.data, { + hostObjects: transferables, + }); return [data, transferables]; } @@ -200,7 +204,7 @@ function serializeJsMessageData(data, tranferables) { let serializedData; try { - serializedData = core.serialize(data); + serializedData = core.serialize(data, { hostObjects: tranferables }); } catch (err) { throw new DOMException(err.message, "DataCloneError"); } -- cgit v1.2.3