Using structuredClone(), developers can feature detect. See this demo
failing gracefully on Stable (but it should work on Canary):
https://tguilbert-google.github.io/RTCDataChannel/index.html

Source code:
https://github.com/tguilbert-google/tguilbert-google.github.io/blob/main/RTCDataChannel/index.html#L158

On Wed, Aug 14, 2024 at 8:49 AM Vladimir Levin <vmp...@chromium.org> wrote:

> Can this API be feature detected? IOW, do developers have an easy way to
> figure if RTCDataChannel can be transferred?
>
> Thanks,
> Vlad
>
> On Wed, Aug 14, 2024 at 11:47 AM Daniel Bratell <bratel...@gmail.com>
> wrote:
>
>> LGTM1
>>
>> /Daniel
>> On 2024-08-09 01:21, Thomas Guilbert wrote:
>>
>> Contact emails tguilb...@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 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.
>>
>>
>> Blink component Blink>WebRTC>DataChannel
>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EWebRTC%3EDataChannel>
>>
>> TAG review None
>>
>> TAG review status Not applicable
>>
>> Risks
>>
>>
>> Interoperability and Compatibility
>>
>> 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.
>>
>>
>> *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
>>
>>
>> Will this feature be supported on all six Blink platforms (Windows, Mac,
>> Linux, ChromeOS, Android, and Android WebView)? Yes
>>
>> Is this feature fully tested by web-platform-tests
>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>> ? Yes
>>
>> 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
>>
>>
>> Flag name on chrome://flags None
>>
>> Finch feature name TransferableRTCDataChannel
>>
>> Requires code in //chrome? False
>>
>> Sample links
>> https://tguilbert-google.github.io/RTCDataChannel/index.html
>>
>> Estimated milestones
>> Shipping on desktop 130
>> DevTrial on desktop 129
>> Shipping on Android 130
>> DevTrial on Android 129
>>
>> Anticipated spec changes
>>
>> 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).
>> None
>>
>> Link to entry on the Chrome Platform Status
>> https://chromestatus.com/feature/6612726584180736?gate=4885503741263872
>>
>> Links to previous Intent discussions Intent to Prototype:
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/dab53bcd-e51d-41bc-a312-4bd3e08322f0n%40chromium.org
>>
>>
>> This intent message was generated by Chrome Platform Status
>> <https://chromestatus.com/>.
>> --
>> 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+unsubscr...@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
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABrVPoba%2B6EuYDdfxKF8ZXn%3DXmzt6vd1tZ53yTS9-CEdUBXTzw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> 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+unsubscr...@chromium.org.
>> 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
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/b2d9e822-092f-4ad3-b595-7fa0044062cc%40gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABrVPoZ2u0%3DPQj0YxpmeN%2B%2BqctgyXEXTD5wiup4dOZF9jmL6gQ%40mail.gmail.com.

Reply via email to