[webrtc-pc] Avoid losing data channel events during transfer (#3058)

jan-ivar has just created a new issue for https://github.com/w3c/webrtc-pc:

== Avoid losing data channel events during transfer ==
Depending on when a `RTCDataChannel` is created, its [underlying data transport](https://w3c.github.io/webrtc-pc/#dfn-data-transport) might queue a task with `open`, `message`, or `close` events at any time. If this happens during transfer to a worker, the events might get lost. We need to specify it so this doesn't happen.

A precedent to follow here seems to be `MessagePort`.

It defines [transfer steps](https://html.spec.whatwg.org/#message-ports:transfer-steps) to [ship](https://html.spec.whatwg.org/#has-been-shipped) its [port message queue](https://html.spec.whatwg.org/#port-message-queue) over `dataHolder.[[PortMessageQueue]] `, as well as a default virtual [unshipped port message queue](https://html.spec.whatwg.org/#unshipped-port-message-queue) ahead of transfer.

We should be able to cargo-cult something similar for `RTCDataChannel`.

Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/3058 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Thursday, 3 July 2025 22:56:30 UTC