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.
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.
The interoperability/compatibility risks are low: WebKit has already implemented and shipped this feature. Implementing it in Blink would improve interoperability.
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.
N/A
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
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
None
N/A
No milestones specified