Contact emails
[email protected]

Explainer
https://github.com/w3c/webtransport/blob/main/explainer.md#11-handling-session-draining


Specification
https://w3c.github.io/webtransport/#dom-webtransport-draining


Design docs

https://github.com/w3c/webtransport/blob/main/explainer.md#11-handling-session-draining


Summary
WebTransport.draining is a promise that resolves when the server indicates that 
the WebTransport session will be gracefully retired. Applications can use this 
signal to establish a replacement session while existing streams and the 
current session remain usable.


Blink component
Blink>Network>WebTransport


Web Feature ID
webtransport


Motivation
A WebTransport server may need to retire a session for maintenance, load 
balancing, deployment, or connection-lifetime management. Without a draining 
signal, an application learns about this only when the session closes, which 
can cause an avoidable interruption while a replacement connection is 
established. The draining promise gives the application advance notice without 
changing the lifetime or usability of the current session.


Initial public proposal
No information provided


TAG review
This is a small incremental addition to an existing feature which is already 
standardized.


TAG review status
Not applicable


Goals for experimentation
None


Risks




Interoperability and Compatibility
Compatibility risk is low because this adds a new read-only promise attribute 
to WebTransport and does not change existing behavior. Code that does not read 
the attribute is unaffected. The promise resolves only after a server-side 
draining signal and does not close the session or alter existing stream 
semantics. Interoperability risk is low. The attribute is available in Firefox 
155 and Safari 26.4. Applications supporting older browsers should check for 
the attribute before using it.

Gecko: Shipped/Shipping (https://bugzilla.mozilla.org/show_bug.cgi?id=2007160) 
WebTransport.draining shipped in Firefox 155 - 
https://chromium.googlesource.com/external/github.com/mdn/browser-compat-data/%2B/HEAD/api/WebTransport.json#804

WebKit: Shipped/Shipping (https://bugs.webkit.org/show_bug.cgi?id=302762) 
WebTransport.draining is available in Safari 26.4 - 
https://chromium.googlesource.com/external/github.com/mdn/browser-compat-data/%2B/HEAD/api/WebTransport.json#811

Web developers: Positive 
(https://github.com/web-platform-tests/interop/issues/1121) The Interop 2026 
WebTransport proposal received 28 positive reactions. Developers also reported 
active WebTransport use and significant cross-engine differences.

Other signals:


Ergonomics
The API is a stable Promise<undefined> attribute, consistent with the existing 
WebTransport.ready and WebTransport.closed lifecycle promises. It can be 
observed before or after the connection becomes ready. The promise resolves at 
most once.


Activation
No special activation is required. A WebTransport server triggers the promise 
by sending the protocol-defined draining signal. Sites that do not use the new 
attribute are unaffected.


Security
This does not grant a new capability or expose application data. It exposes a 
server-originated lifecycle signal for an already established, secure-context 
WebTransport session. The information is controlled by the connected server and 
is closely related to connection state already observable by the application.


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. This is an additive read-only attribute and does not modify existing 
WebTransport behavior.



Debuggability
The promise and its state can be inspected from JavaScript. Existing DevTools 
Network tooling continues to expose the WebTransport connection and its 
streams. No new DevTools UI is required for the initial launch.


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?
Yes
https://wpt.fyi/results/webtransport/draining.https.any.html?label=experimental&label=master&aligned


Flag name on about://flags
enable-experimental-web-platform-features


Finch feature name
WebTransportDraining


Rollout plan
Will ship enabled for all users


Requires code in //chrome?
False


Tracking bug
https://issues.chromium.org/issues/564353368


Availability expectation
WebTransport is available across the major browser engines, and draining is 
part of the W3C WebTransport API. The feature is expected to remain available 
across browsers as implementations converge on the current specification.


Adoption expectation
Adoption is expected among applications that maintain long-lived WebTransport 
sessions and need to replace sessions gracefully during server maintenance, 
deployment, load balancing, or connection-lifetime management. Broader adoption 
will follow overall WebTransport usage.


Adoption plan
No dedicated outreach campaign is planned. Adoption is expected to occur 
organically through WebTransport documentation and client and server library 
support.


Non-OSS dependencies

Does the feature depend on any code or APIs outside the Chromium open source 
repository and its open-source dependencies to function?
No.


Estimated milestones


Shipping on desktop 158

DevTrial on desktop 153

Shipping on Android 158

DevTrial on Android 153

Shipping on WebView 158




Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop 
issues. Please list open issues (eg links to known github issues in the project 
for the feature specification) whose resolution may introduce web 
compat/interop risk (eg, changing to naming or structure of the API in a 
non-backward-compatible way).
None known for the draining promise semantics.


Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/6427766428925952?gate=4865096399585280


This intent message was generated by Chrome Platform Status.

-- 
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/6ad14a65.d597a17e.2fbf8.0100.GAE%40google.com.

Reply via email to