Intent to Prototype: Transferable RTCDataChannel to workers

17 views
Skip to first unread message

Thomas Guilbert

unread,
5:41 PM (3 hours ago) 5:41 PM
to blink-dev

Contact emails

tgui...@chromium.org

Explainer

None

Specification

https://w3c.github.io/webrtc-extensions/#rtcdatachannel-transferable

Summary

The RTCDataChannel interface is part of the WebRTC standard, and represents a network channel which can be used for bidirectional peer-to-peer transfers of arbitrary data. This feature tracks exposing RTCDataChannel in workers, and allowing the transfer of RTCDataChannels to workers. This will help reduce main thread contention and lead to smoother and more reliable WebRTC applications.



Blink component

Blink>WebRTC>DataChannel

Motivation

Enabling RTCDataChannel transfers to workers will improve the performance of WebRTC applications, by offloading network send/receive operations from the main thread to a worker thread. A secondary benefit is improving the ergonomics and design of WebRTC applications, to leverage other worker-exposed APIs. For example, developers can combine an RTCDataChannel in workers with WebCodecs and OffscreenCanvas, to decode and render directly from a worker.



Initial public proposal

None

TAG review

None

TAG review status

Not applicable

Risks



Interoperability and Compatibility

The interoperability/compatibility risks are low: WebKit has already implemented and shipped this feature. Implementing it in Blink would improve interoperability.



Gecko: No signal (https://bugzilla.mozilla.org/show_bug.cgi?id=1209163) Mozilla is aware of the issue, but has not allocated resources to it as of yet.

WebKit: Shipped/Shipping (https://bugs.webkit.org/show_bug.cgi?id=222965)

Web developers: Positive This has been a longstanding request from developers. E.g: https://bugzilla.mozilla.org/show_bug.cgi?id=1209163#c4 https://issues.chromium.org/issues/40787712#comment21

Other signals:

Ergonomics

This feature improves the ergonomics of existing Worker exposed APIs. For example, it allows developers to use WebCodecs and Offscreen canvas from workers, without having to repeatedly transfer data from the main thread.



Activation

N/A



Security

This feature should not introduce any new security risks. Existing risks can be found in the WebRTC API specification: https://w3c.github.io/webrtc-pc/#privacy-and-security-considerations



WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

None



Debuggability

N/A



Is this feature fully tested by web-platform-tests?

Yes

https://wpt.fyi/results/webrtc-extensions/transfer-datachannel.html?label=experimental&label=master&aligned



Flag name on chrome://flags

None

Finch feature name

None

Non-finch justification

None

Requires code in //chrome?

False

Estimated milestones

No milestones specified



Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/6612726584180736?gate=5216022848864256

This intent message was generated by Chrome Platform Status.
Reply all
Reply to author
Forward
0 new messages