You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am still trying to create working stream-limit tests with all two webtransport enabled browsers.
I ran into another issue: I misused creating uni- and bidirectional streams as a matter of communication/synchronization in the tests. Chrome and Firefox behave quite differently.
If I create a unidirectional stream with
await transport.createUnidirectionalStream()
Chromium immediately sends out a frame indicating the stream's creation, but Firefox does not (at least for 5 seconds).
I had to push one byte into the unidirectional stream to let the server know about the stream.
So the question is, is the behavior within spec? If not, I would file a bug with Firefox, and if yes, I think this can lead to trouble...
The text was updated successfully, but these errors were encountered:
I think that I see what is happening. Firefox waits until you have something to send. That's pretty reasonable, in my view. No point in burning the resources until you need to use the stream.
In a protocol that uses QUIC directly, you don't see a stream creation at the receiving end until some data is sent.
Chrome is getting the sending out of the way, which might be better in some ways, even if that leads to more overhead.
I think that I see what is happening. Firefox waits until you have something to send.
That is also my conclusion. Only bidirectional streams are opened immediately, which makes sense but is different. I do not understand Firefox code entirely yet and did not identify where it is handled differently.
That's pretty reasonable, in my view. No point in burning the resources until you need to use the stream.
In a protocol that uses QUIC directly, you don't see a stream creation at the receiving end until some data is sent.
Chrome is getting the sending out of the way, which might be better in some ways, even if that leads to more overhead.
Both are entirely valid.
The question is, would it be desirable to have consistent behavior across browsers?
Ok, the test I am writing is a bit artificial, but in the case of the test that surfaced the different behavior, it took me a few days to find one cause the test is not running through (it runs without problems using my quiche-based client). However, I am debugging both sides of the C++ (or Rust) code with debuggers, debug printouts, etc. . If a developer-only with javascript knowledge on the UA side and some scripting language on the server side (either node.js or comparable) tries to find the differences, it may take considerable time.
I am still trying to create working stream-limit tests with all two webtransport enabled browsers.
I ran into another issue: I misused creating uni- and bidirectional streams as a matter of communication/synchronization in the tests. Chrome and Firefox behave quite differently.
If I create a unidirectional stream with
Chromium immediately sends out a frame indicating the stream's creation, but Firefox does not (at least for 5 seconds).
I had to push one byte into the unidirectional stream to let the server know about the stream.
So the question is, is the behavior within spec? If not, I would file a bug with Firefox, and if yes, I think this can lead to trouble...
The text was updated successfully, but these errors were encountered: