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 dedicated workers, and allowing the transfer of RTCDataChannels to them workers. This will help reduce main thread contention and lead to smoother and more reliable WebRTC applications.
There is an interoperability risk when it comes to which types of workers are supported by which browser. - Safari/WebKit supports transfers to DedicatedWorkers and to ServiceWorkers. - Chromium is only looking to add transfers to DedicatedWorkers; supporting transfers to ServiceWorkers would require significant architectural changes (across processes, rather than across threads) and might never be supported. - Firefox/Gecko supports neither, but might support transfers to both DedicatedWorkers and ServiceWorkers, if/when they choose to support this feature. Regardless of whether or not Chromium supports transfers to ServiceWorkers, enabling transfers to DedicatedWorkers addresses current developer needs, and improves 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
DedicatedWorkers: https://wpt.fyi/results/webrtc-extensions/transfer-datachannel.html?label=experimental&label=master&aligned ServiceWorkers (out of scope for this feature): https://wpt.fyi/results/webrtc-extensions/transfer-datachannel-service-worker.https.html?label=experimental&label=master&aligned
Shipping on desktop | 130 |
DevTrial on desktop | 129 |
Shipping on Android | 130 |
DevTrial on Android | 129 |
Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).
NoneLGTM1
/Daniel
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABrVPoba%2B6EuYDdfxKF8ZXn%3DXmzt6vd1tZ53yTS9-CEdUBXTzw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/b2d9e822-092f-4ad3-b595-7fa0044062cc%40gmail.com.
Contact emails
tgui...@chromium.orgExplainer
NoneSpecification
https://w3c.github.io/webrtc-extensions/#rtcdatachannel-transferable
--
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra_MUXCsrpODkCarYj%3DY7%2BDipq0mX_dcY44auGzV-QZ7Qw%40mail.gmail.com.