diff options
author | Luca Casonato <hello@lcas.dev> | 2021-06-26 11:17:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-26 11:17:05 +0200 |
commit | 22e7b0f585fb3715ef1894b2c26a0e3cbbd43e9e (patch) | |
tree | 164afa9ed31212b5df8d0d79a6929dde5eb8302e /extensions/web | |
parent | 1f4cdc067a4e26921ee53d58751bb60279d3cab2 (diff) |
fix: MessagePort in message for postMessage transfers (#11103)
Diffstat (limited to 'extensions/web')
-rw-r--r-- | extensions/web/13_message_port.js | 10 |
1 files changed, 7 insertions, 3 deletions
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"); } |