quic-go/webtransport-go

Firefox cannot dial webtransport-go server

Closed this issue · 3 comments

serverCertificateHashes landed in Firefox nightly recently, hooray! But the browser still doesn't seem to be able to dial webtransport-go.

Here's a simple echo server (skip the Node.js bit of the README and just look at the Browsers section).

The go code is largely taken from here.

$ git clone https://github.com/achingbrain/webtransport-dial-go-server.git
$ cd webtransport-dial-go-server
$ npm i
$ npm run browser

> webtransport-dial-go-server@1.0.0 browser
> node browser.js

Paste the following code into https://codepen.io or similar:

(async function main ()  {
  console.info('CLIENT create session')
// ...more code here

Running the code in Chrome almost* yields the expected result:

"CLIENT create session"
"CLIENT wait for session"
"CLIENT session ready"
"CLIENT create bidi stream"
"CLIENT get writer"
"CLIENT wait for writer"
"CLIENT write"
"CLIENT close writer"
"CLIENT read from stream"
"CLIENT got from stream" // [object Object] 
{
  "done": false,
  "value": {
    "0": 0,
    "1": 1,
    "2": 2,
    "3": 3
  }
}
"CLIENT read from stream"

When running in Firefox Nightly (125.0a1 (2024-03-05) (64-bit)), the session never becomes ready:

"CLIENT create session"
"CLIENT wait for session"

* = no CLIENT read stream finished message is printed in Chrome so the read stream does not end

Some WebTransport-related patches to FF were only merged this morning so they may not have made it into nightly yet - I'm going to re-validate this at the end of the week.

I had the wrong nightly. Last night's nightly has the patches. All good!

Thanks for checking!