-
Notifications
You must be signed in to change notification settings - Fork 50
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
Merge QuicTransport and Http3Transport into a single class? #129
Comments
How might protocol agility and support be managed? Without a 1:1 mapping of class to protocol, should this change also include a static method that can expose which schemes are available for a given implementation? |
What will the relationship between WebTransport and RTCQuicTransport be? |
I expect RTCQuicTransport to implement the same set of mixins, but have different class, since any RTC version would be unlikely to be constructible from a URL.
A static method is an option, though since various transports can be made unavailable for various reasons (lack of support in browser, enterprise policy, network firewall, etc), I believe the best approach would be trying to connect to a given URL to see what happens. To quote TAG design principles:
|
What should |
@yutakahirano I assume that RTCQuicTransport will inherit from However, because there is no URI in the constructor I'm assuming that only the |
Having the additional agility of this scheme seems nice. Though I think the dynamically dispatching constructor is an unusual pattern that isn't really seen in other API's. Maybe a (static) method like |
Expose WebTransport interface so that we can use the interface for various protocols such as QUIC and HTTP/3. We keep QuicTransport for some time to make the transition easier. w3c/webtransport#129 Bug: 1123413 Change-Id: I8a6cc835fa0ae44804b5cb21bf6e5553c371334a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2386692 Commit-Queue: Yutaka Hirano <[email protected]> Reviewed-by: Victor Vasiliev <[email protected]> Reviewed-by: Adam Rice <[email protected]> Cr-Commit-Position: refs/heads/master@{#807410}
Expose WebTransport interface so that we can use the interface for various protocols such as QUIC and HTTP/3. We keep QuicTransport for some time to make the transition easier. w3c/webtransport#129 Bug: 1123413 Change-Id: I8a6cc835fa0ae44804b5cb21bf6e5553c371334a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2386692 Commit-Queue: Yutaka Hirano <[email protected]> Reviewed-by: Victor Vasiliev <[email protected]> Reviewed-by: Adam Rice <[email protected]> Cr-Commit-Position: refs/heads/master@{#807410} GitOrigin-RevId: c81edd9d28ec0116464af497c2b202eff5ea61de
Currently we have two separate constructors for QuicTransport and Http3Transport:
Notice that the transport information is redundantly encoded twice: once in the class name, and once in the scheme.
I propose that we merge those into a single constructor that dispatches based on the scheme:
This has a nice property of increasing transport agility (since URLs are typically data, transport can be changed with no code changes involved), and will probably simplify client implementation too (by reducing code duplication).
The text was updated successfully, but these errors were encountered: