LGTM3 On Tue, Mar 5, 2024 at 10:16 AM 'Thomas Steiner' via blink-dev < blink-dev@chromium.org> wrote:
> As an additional developer signal showing that developers want this, > there's a polyfill: https://github.com/CarterLi/websocketstream-polyfill. > > On Tue, Mar 5, 2024 at 10:10 AM Domenic Denicola <dome...@chromium.org> > wrote: > >> LGTM2. >> >> I appreciate Adam's careful attention to all portions of the process >> here, and also Alex's probing as to whether we're meeting the developer >> interest portion. Although this would be more of a slam-dunk if we were >> able to get that partner to comment publicly on their experience, I'm >> willing to take Adam's word on it about the private feedback. >> >> Combined with the general positive sentiment, e.g. from Deno (which is a >> server-side runtime, but I think we have a good amount of experience >> showing that people like writing the same code across server and browser), >> and in response to the 2020 article >> <https://twitter.com/search?q=url%3Ahttps%3A%2F%2Fweb.dev%2Fwebsocketstream%2F&src=typed_query&f=live>, >> and the repeated "when is this coming" comments in the tracking bug >> <https://issues.chromium.org/issues/41470216>... I think we have enough >> evidence that this will move the web forward in a positive way. >> >> With my API owner hat off, I'm also just happy about this API existing, >> as I think it's generally good for the platform when we go back and take >> older, but still popular technologies, and retrofit them with modern >> capabilities and APIs like backpressure-supporting streams. It makes the >> web feel more cohesive and well-designed. >> >> On Tuesday, March 5, 2024 at 8:46:59 AM UTC+9 Adam Rice wrote: >> >>> Thanks Alex, >>> >>> We have a partner who need backpressure to avoid jank in their app. I've >>> been waiting for them to comment, but it's taking a while. >>> >>> Adam >>> >>> On Thu, 22 Feb 2024 at 01:53, Alex Russell <slightly...@chromium.org> >>> wrote: >>> >>>> Hey Adam, >>>> >>>> Sorry for the slow follow up. Were there folks beyond the Deno >>>> ecosystem that expressed interest and/or satisfaction with the design? >>>> We're need to make a case in API OWNERS that there's enough developer >>>> interest to surmount the lack of other vendor interest. Are you able to >>>> share more? >>>> >>>> Thanks, >>>> >>>> Alex >>>> >>>> On Friday, February 16, 2024 at 12:10:50 AM UTC-8 Adam Rice wrote: >>>> >>>>> Any reason the PR for the spec hasn't landed yet? >>>>> >>>>> >>>>> We don't have interest from a second implementer yet. As far as I >>>>> know, Deno doesn't count for this purpose. >>>>> >>>>> On Fri, 16 Feb 2024 at 03:50, Chris Harrelson <chris...@chromium.org> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> Any reason the PR for the spec hasn't landed yet? >>>>>> >>>>>> On Thu, Feb 15, 2024 at 7:54 AM Mike Taylor <miketa...@chromium.org> >>>>>> wrote: >>>>>> >>>>>>> Thank you - LGTM1 >>>>>>> On 2/15/24 7:16 AM, Adam Rice wrote: >>>>>>> >>>>>>> Thanks Mike, >>>>>>> >>>>>>> I have requested the approvals. Sorry for the delay, I didn't >>>>>>> understand the interface. >>>>>>> >>>>>>> Adam >>>>>>> >>>>>>> On Thu, 15 Feb 2024 at 01:39, Mike Taylor <miketa...@chromium.org> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Adam, >>>>>>>> >>>>>>>> Would you mind requesting approvals in the chromestatus entry for >>>>>>>> the various review gates? >>>>>>>> On 2/8/24 1:30 AM, Adam Rice wrote: >>>>>>>> >>>>>>>> Unfortunately, no partners were ready when we did the OT, so there >>>>>>>> was no feedback at all. However, we have subsequently received private >>>>>>>> feedback that the API works well. >>>>>>>> >>>>>>>> On Thu, 8 Feb 2024 at 04:23, Alex Russell <slightly...@chromium.org> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> 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 emails ri...@chromium.org >>>>>>>>>> >>>>>>>>>> Explainer >>>>>>>>>> https://github.com/ricea/websocketstream-explainer/blob/master/README.md >>>>>>>>>> >>>>>>>>>> https://docs.google.com/document/d/1XuxEshh5VYBYm1qRVKordTamCOsR-uGQBCYFcHXP4L0/edit >>>>>>>>>> >>>>>>>>>> Specification https://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 component Blink>Network>WebSockets >>>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ENetwork%3EWebSockets> >>>>>>>>>> >>>>>>>>>> Search tags WebSocket >>>>>>>>>> <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 review https://github.com/w3ctag/design-reviews/issues/394 >>>>>>>>>> >>>>>>>>>> TAG review status Pending >>>>>>>>>> >>>>>>>>>> Chromium Trial Name WebSocketStream >>>>>>>>>> >>>>>>>>>> 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 name WebSocketStream >>>>>>>>>> >>>>>>>>>> Requires code in //chrome? False >>>>>>>>>> >>>>>>>>>> Tracking bug >>>>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=983030 >>>>>>>>>> >>>>>>>>>> Measurement Use counter: >>>>>>>>>> https://chromestatus.com/metrics/feature/timeline/popularity/3018 >>>>>>>>>> >>>>>>>>>> Availability expectation The feature is relatively >>>>>>>>>> straightforward to implement, so I would expect it to be available >>>>>>>>>> in other >>>>>>>>>> browsers within 12 months. >>>>>>>>>> >>>>>>>>>> Adoption expectation We 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 discussions Intent 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/CAC_ixdwX4dnvpwsOJ7nm%2BW6UYs%2BNwQ_gHZJD7yvzTcawD2Rw8w%40mail.gmail.com >>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAC_ixdwX4dnvpwsOJ7nm%2BW6UYs%2BNwQ_gHZJD7yvzTcawD2Rw8w%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/61e1ef29-5c9b-42de-83f6-d3ca931662bf%40chromium.org >>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/61e1ef29-5c9b-42de-83f6-d3ca931662bf%40chromium.org?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/51712f36-d16a-4b6e-baf9-da35b4785f04n%40chromium.org >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/51712f36-d16a-4b6e-baf9-da35b4785f04n%40chromium.org?utm_medium=email&utm_source=footer> >> . >> > > > -- > Thomas Steiner, PhD—Developer Relations Engineer (blog.tomayac.com, > toot.cafe/@tomayac) > > Google Germany GmbH, ABC-Str. 19, 20354 Hamburg, Germany > Geschäftsführer: Paul Manicle, Liana Sebastian > Registergericht und -nummer: Hamburg, HRB 86891 > > ----- BEGIN PGP SIGNATURE ----- > Version: GnuPG v2.4.3 (GNU/Linux) > > iFy0uwAntT0bE3xtRa5AfeCheCkthAtTh3reSabiGbl0ck > 0fjumBl3DCharaCTersAttH3b0ttom.xKcd.cOm/1181. > ----- END PGP SIGNATURE ----- > > -- > 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/CALgRrLmPi%2BfdcLZ6UfCF3BRN0sdoGs8eOu9Y87%3DLikE94Qr%3D%3Dw%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALgRrLmPi%2BfdcLZ6UfCF3BRN0sdoGs8eOu9Y87%3DLikE94Qr%3D%3Dw%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/CAOmohS%2Bgb-6TmFZJj4J30j37om8ZHx54SWWiFK_2N6CB75Pnxg%40mail.gmail.com.