Hey Adam,

Glad to see this moving forward! Has there been a summary somewhere of the 
OT feedback? Also, we noted that the other reviews were marked as unstarted 
in chromestatus; we will likely hold off voting until those are in flight.

Thanks!

On Tuesday, February 6, 2024 at 1:43:46 PM UTC-8 Adam Rice wrote:

> Contact emailsri...@chromium.org
>
> Explainer
> https://github.com/ricea/websocketstream-explainer/blob/master/README.md
>
> https://docs.google.com/document/d/1XuxEshh5VYBYm1qRVKordTamCOsR-uGQBCYFcHXP4L0/edit
>
> Specificationhttps://github.com/whatwg/websockets/pull/48
>
> Design docs
> https://web.dev/websocketstream/
>
> Summary
>
> The WebSocket API provides a JavaScript interface to the RFC6455 WebSocket 
> protocol. While it has served well, it is awkward from an ergonomics 
> perspective and is missing the important feature of backpressure. The 
> intent of the WebSocketStream API is to resolve these deficiencies by 
> integrating WHATWG Streams with the WebSocket API.
>
>
> Blink componentBlink>Network>WebSockets 
> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ENetwork%3EWebSockets>
>
> Search tagsWebSocket <https://chromestatus.com/features#tags:WebSocket>, 
> Streams <https://chromestatus.com/features#tags:Streams>, ReadableStream 
> <https://chromestatus.com/features#tags:ReadableStream>, WritableStream 
> <https://chromestatus.com/features#tags:WritableStream>
>
> TAG reviewhttps://github.com/w3ctag/design-reviews/issues/394
>
> TAG review statusPending
>
> Chromium Trial NameWebSocketStream
>
> Link to origin trial feedback summary
> https://github.com/ricea/websocketstream-explainer/issues
>
> Origin Trial documentation link
> https://github.com/ricea/websocketstream-explainer/blob/master/README.md
>
> Risks
>
>
> Interoperability and Compatibility
>
> The main risk is that it fails to become an interoperable part of the web 
> platform if other browsers do not implement it.
>
>
> *Gecko*: No signal (
> https://github.com/mozilla/standards-positions/issues/970)
>
> *WebKit*: No signal (
> https://github.com/WebKit/standards-positions/issues/315)
>
> *Web developers*: No signals
>
> *Other signals*: The Deno runtime has implemented the API: 
> https://github.com/denoland/deno/issues/8831
>
> Ergonomics
>
> A major focus of the new API is improving ergonomics over the existing 
> WebSocket API.
>
>
> Activation
>
> Everything except for correct backpressure behaviour can be polyfilled. 
> Developers who are sensitive to backpressure may prefer to feature-detect 
> and fall back to application-level backpressure if the feature is not 
> available.
>
>
> Security
>
> Security posture is the same as the existing WebSocket API. The WebSocket 
> mojo IPC layer was designed to support backpressure and didn't need changes 
> to support the new API.
>
>
> 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?
>
> No specific risk.
>
>
> Debuggability
>
> The necessary probes are included in the code so that existing WebSocket 
> debugging facilities work as-is.
>
>
> Will this feature be supported on all six Blink platforms (Windows, Mac, 
> Linux, ChromeOS, Android, and Android WebView)?Yes
>
> The feature is easy to support everywhere existing Blink WebSocket support 
> exists. Blink WebSockets are supported on every Blink platform.
>
>
> 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/websockets/stream/tentative
>
>
> Flag name on chrome://flags
> about://flags/#enable-experimental-web-platform-features
>
> Finch feature nameWebSocketStream
>
> Requires code in //chrome?False
>
> Tracking bughttps://bugs.chromium.org/p/chromium/issues/detail?id=983030
>
> MeasurementUse counter: 
> https://chromestatus.com/metrics/feature/timeline/popularity/3018
>
> Availability expectationThe feature is relatively straightforward to 
> implement, so I would expect it to be available in other browsers within 12 
> months.
>
> Adoption expectationWe have a partner who is ready to adopt this as soon 
> as it's available as the backpressure feature is critical for them.
>
> 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.
>
> Sample links
> https://github.com/ricea/websocketstream-explainer/blob/master/README.md
>
> Estimated milestones
> OriginTrial desktop last 80
> OriginTrial desktop first 78
> DevTrial on desktop 78
> DevTrial on Android 78
>
> 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).
> In future it is likely that an option to use byte streams will be added, 
> to allow efficient use of BYOB readers. The second parameter to the 
> constructor is an option bag, permitting easy extensions. 
> https://github.com/ricea/websocketstream-explainer/issues/15 is about an 
> interesting case where a clean close is not possible when there is too much 
> unread data. A fix for this will not break existing users. Support for 
> ping/pong frames, and sending custom request headers with the handshake are 
> popular requests for both the WebSocket and WebSocketStream APIs. These can 
> be implemented without incompatible changes to the API (though on the 
> server side they will cause much trouble). There are other open issues at 
> https://github.com/ricea/websocketstream-explainer/issues but nothing 
> that needs to be addressed urgently.
>
> Link to entry on the Chrome Platform Status
> https://chromestatus.com/feature/5189728691290112
>
> Links to previous Intent discussionsIntent to prototype: 
> https://groups.google.com/a/chromium.org/g/blink-dev/c/X7rWpAkMCyg/m/j6K7mEEwAgAJ
>  Intent 
> to Experiment: 
> https://groups.google.com/a/chromium.org/d/msg/blink-dev/SUaSJzLQ1Yc/jmk7A-maAAAJ
>
>
> 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/5667a732-20f7-4af5-9614-40df3c0e17a8n%40chromium.org.

Reply via email to