Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WebTransport review request #669

Closed
wilaw opened this issue Aug 19, 2021 · 6 comments
Closed

WebTransport review request #669

wilaw opened this issue Aug 19, 2021 · 6 comments
Assignees
Labels
chromium-high-priority Something that the Chromium team would like the TAG to prioritise Resolution: satisfied The TAG is satisfied with this design Venue: Web Transport WG

Comments

@wilaw
Copy link

wilaw commented Aug 19, 2021

Ciao TAG!

I'm requesting a review of the WebTransport API Specification.

WebTransport is an API that allows web applications to establish interactive, bidirectional, multiplexed network connections
It fills gaps in the web platform, such as lack of UDP-like networking API and lack of WebSocket-like API without head-of-line blocking, by proving a web accessible interface to the WebTransport protocol being developed by the IETF WebTransport Working Group. It provides:

  • Reliable streams
  • Unreliable datagrams
  • Encryption and congestion control
  • An origin-based security model
  • Multiplexing with existing HTTP/3 connections

It's great for sending or receiving high-frequency, small messages that don't need to be reliable (like game state), sending or receiving low-latency media and transferring files.

Further details:

We'd prefer the TAG provide feedback as (please delete all but the desired option):

🐛 open issues in our GitHub repo for each point of feedback. Please prefix the title with [TAG] and we will triage appropriately.

@yutakahirano
Copy link

I'm planning to send an intent to ship to blink-dev in mid September, and it'd be great if it's reviewed by then.

@chrishtr chrishtr added the chromium-high-priority Something that the Chromium team would like the TAG to prioritise label Sep 8, 2021
@plinss plinss added this to the 2021-10-11-week milestone Sep 29, 2021
@jan-ivar
Copy link

@torgo
Copy link
Member

torgo commented Nov 17, 2021

Just noting that we seem to have completed a review in 2020. Sorry for the late reply here but can you clarify what has changed so we can try to expedite this and get it done at our upcoming virtual f2f.

@torgo torgo modified the milestones: 2021-11-15-week, 2021-12-06-F2F-Madripoor Nov 17, 2021
@jan-ivar
Copy link

jan-ivar commented Nov 18, 2021

Sure thing, and thanks. Major changes since July 2020:

  1. The spec is now in the W3C, not WICG
  2. Removed the multiple-transport abstraction. HTTP/3 is now the sole transport, simplifying the model significantly
  3. Integrates with the fetch spec to obtain a connection; may be pooled but this has no implementations yet, so JS gets a dedicated server connection by default
  4. Connection URLs now use the “https" scheme, and must include the port
  5. SecureContext only, exposed on Window and DedicatedWorker
  6. WHATWG streams are used throughout, even for datagrams (where they provide local back-pressure sender-side)
  7. Fleshed out streams algorithms with underlying queues, back pressure, and error handling
  8. Removed custom network (QUIC) abort APIs and integrated with WHATWG stream abort semantics instead:
    stream.abort(new WebTransportError({streamErrorCode})) // aborts stream with same code on client & server
  9. Operates on BufferSource data, with (streams) semantics lower-level than WebSocket (message) semantics:
    • Use single stream for data you need to arrive in order (but BYO framing)
    • Use separate streams for data that should arrive in parallel but can arrive out of order
  10. Close code and message from server (not an error): const {closeCode, reason} = await wt.closed
  11. CSP

Unfortunately, the explainer is a bit outdated. I hope to get to that soon in w3c/webtransport#319.

@yutakahirano
Copy link

Chrome shipped the API in 97.

@atanassov
Copy link

@plinss and I had a chance to review this during our Madripoor TAG f2f. Thank you for summarizing all changes since last review and updating the security questionnaire. Given most changes are about simplifications and feature completion, moving the capability into a most stable state, we are happy to sign off.

Thank you for your patience and working with us. Best of luck finishing the work at the WebTransportWG.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chromium-high-priority Something that the Chromium team would like the TAG to prioritise Resolution: satisfied The TAG is satisfied with this design Venue: Web Transport WG
Projects
None yet
Development

No branches or pull requests

7 participants