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.

Reply via email to