Is there an upper bound for potential breakage? Do we have metrics for
total use of datagram readable streams w/ BYOB behaviours?
On Wednesday, October 28, 2026 at 7:35:15 AM UTC-7 Monica Chintala wrote:
> We don’t have a metric for this exact usage pattern. The affected case is
> limited to applications requesting a BYOB reader without opting into
> "bytes".
>
> Default readers continue to work unchanged. Applications using BYOB can
> preserve the existing Chromium behavior by adding: {datagramsReadableType:
> "bytes"}
>
> This option can be added before rollout and works with both the old and
> new behavior. Firefox and Safari stable already use the new default. The
> rollout is Finch-controlled, so we can restore the previous default without
> a new release if compatibility problems are reported.
>
> On Tuesday, October 27, 2026 at 12:02:26 PM UTC-7 Alex Russell wrote:
>
>> What's the potential for breakage, given that we're changing default
>> behavior? Do our histograms tell us the fraction of pageloads that would be
>> affected?
>>
>> Best,
>>
>> Alex
>>
>> On Wednesday, October 21, 2026 at 1:52:53 PM UTC-7 Chromestatus wrote:
>>
> *Contact emails*
>>> [email protected], [email protected]
>>
>>
>>>
>>> *Explainer*
>>> https://github.com/w3c/webtransport/blob/main/explainer.md
>>>
>>> *Specification*
>>>
>>> https://www.w3.org/TR/webtransport/#dom-webtransportoptions-datagramsreadabletype
>>>
>>>
>>> *Summary*
>>> Adds the WebTransportOptions.datagramsReadableType constructor option.
>>> By default, incoming WebTransport Datagrams are exposed through a default
>>> ReadableStream . Applications that require BYOB reading can request a
>>> readable byte stream by setting datagramsReadableType: "bytes" .
>>>
>>> *Blink component*
>>> Blink>Network>WebTransport
>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ENetwork%3EWebTransport%22>
>>>
>>> *Web Feature ID*
>>> webtransport <https://webstatus.dev/features/webtransport>
>>>
>>> *Motivation*
>>> WebTransport Datagrams are discrete messages rather than an
>>> undifferentiated byte sequence. A readable byte stream can lose empty
>>> Datagrams and can lose message boundaries when BYOB reads use a minimum
>>> byte count spanning multiple Datagrams. Making a default ReadableStream
>>> the default preserves Datagram boundaries and empty Datagrams. Applications
>>> that benefit from BYOB allocation control can explicitly opt into the
>>> byte-stream behavior.
>>>
>>> *Initial public proposal*
>>> *No information provided*
>>>
>>> *TAG review*
>>> Not applicable — this is a small incremental addition within the
>>> existing WebTransport specification.
>>>
>>> *TAG review status*
>>> Not applicable
>>>
>>> *Goals for experimentation*
>>> None
>>>
>>> *Risks*
>>>
>>>
>>> *Interoperability and Compatibility*
>>> Interoperability risk is low to medium. The API and default-stream
>>> behavior are defined in the WebTransport specification and covered by WPT.
>>> Firefox already uses a default non-byte stream when the option is omitted,
>>> but does not yet support the explicit "bytes" mode in current public test
>>> runs. Compatibility risk is mitigated by runtime gating. Chromium
>>> historically exposed the Datagram readable as a byte stream, so enabling
>>> the feature changes the default behavior: existing applications using a
>>> BYOB reader without specifying datagramsReadableType: "bytes" would fail.
>>> Applications using ordinary readers continue to receive Uint8Array chunks
>>>
>>> *Gecko*: Positive (https://bugzilla.mozilla.org/show_bug.cgi?id=2007755)
>>> Firefox
>>> is implementing datagramsReadableType: "bytes" and BYOB Datagram reads
>>>
>>> *WebKit*: In development (https://bugs.webkit.org/show_bug.cgi?id=319830)
>>> WebKit
>>> main implements the standardized datagramsReadableType option
>>>
>>> *Web developers*: Positive (
>>> https://github.com/web-platform-tests/interop/issues/1121) The Interop
>>> 2026 WebTransport proposal received 28 👍 reactions. Developers also
>>> reported active WebTransport use and significant cross-engine differences.
>>>
>>> *Other signals*:
>>>
>>> *Ergonomics*
>>> Low. The default stream better matches Datagram message semantics.
>>> Applications needing BYOB allocation control must explicitly opt into
>>> "bytes" , making the semantic tradeoff visible in application code.
>>>
>>> *Activation*
>>> The main activation risk is existing Chromium-specific code assuming
>>> that transport.datagrams.readable always supports BYOB readers. Such
>>> applications must explicitly request datagramsReadableType: "bytes" . The
>>> feature remains experimentally gated while compatibility and
>>> interoperability are evaluated.
>>>
>>> *Security*
>>> Low. The option changes only the JavaScript stream adapter used to
>>> expose already-received Datagrams. It does not provide additional network
>>> access, expose new information, or alter WebTransport’s secure-context and
>>> connection security requirements.
>>>
>>> *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?
>>> Low. The implementation is cross-platform Blink code and requires no
>>> WebView-specific integration. The primary compatibility consideration is
>>> the same as Chrome: applications using a BYOB reader must explicitly
>>> request datagramsReadableType: "bytes" .
>>>
>>>
>>> *Debuggability*
>>> No feature-specific DevTools UI is required. Applications can inspect
>>> whether datagrams.readable supports BYOB by attempting to acquire a BYOB
>>> reader. Existing WebTransport logging, NetLog, and DevTools network
>>> diagnostics remain available for connection and Datagram issues.
>>>
>>> *Will this feature be supported on all six Blink platforms (Windows,
>>> Mac, Linux, ChromeOS, Android, and Android WebView)?*
>>> Yes
>>> Yes. Implemented in cross-platform Blink code without platform-specific
>>> dependencies.
>>>
>>> *Is this feature fully tested by web-platform-tests
>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?*
>>> Yes
>>>
>>> https://wpt.fyi/results/webtransport/datagrams.https.any.html?label=experimental&label=master&aligned
>>>
>>> *Flag name on about://flags*
>>> chrome://flags/#enable-experimental-web-platform-features
>>>
>>> *Finch feature name*
>>> WebTransportDatagramsReadableType
>>>
>>> *Rollout plan*
>>> Will ship enabled for all users
>>>
>>> *Requires code in //chrome?*
>>> False
>>>
>>> *Tracking bug*
>>> https://issues.chromium.org/issues/547572475
>>>
>>> *Availability expectation*
>>> WebKit has implemented the option and corresponding default-stream
>>> behavior in its main branch. Firefox implements the default non-byte stream
>>> behavior, although explicit "bytes" /BYOB mode does not yet pass current
>>> public WPT runs. Broad availability is expected as implementations converge
>>> on the WebTransport specification.
>>>
>>> *Adoption expectation*
>>> Adoption is expected mainly among WebTransport applications that use
>>> BYOB readers or need reliable preservation of Datagram message boundaries.
>>> Most applications using ordinary readers require no code changes.
>>>
>>> *Adoption plan*
>>> Adoption is expected through WebTransport documentation and Interop 2026
>>> visibility. Existing Chromium applications using BYOB readers will need to
>>> explicitly set datagramsReadableType: "bytes" when the feature is enabled.
>>>
>>> *Estimated milestones*
>>> Shipping on desktop 159
>>> DevTrial on desktop 155
>>> Shipping on Android 159
>>> DevTrial on Android 155
>>> Shipping on WebView 159
>>>
>>> *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 currently anticipated. The option and default-stream behavior are
>>> already defined in the WebTransport specification.
>>>
>>> *Link to entry on the Chrome Platform Status*
>>> https://chromestatus.com/feature/5148774971342848?gate=5517621058469888
>>>
>>> *Links to previous Intent discussions*
>>> Intent to Prototype:
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6aa86417.edf999b6.71d4e.0a07.GAE%40google.com
>>>
>>>
>>> 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 [email protected].
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/12578de0-1040-499d-ac09-f9da444eaf32n%40chromium.org.