From 5f4965e7a040a450f361474c59bc1ca11aa7f088 Mon Sep 17 00:00:00 2001 From: Jan-Ivar Bruaroey Date: Fri, 29 May 2026 20:34:28 -0400 Subject: [PATCH 1/4] Set :protocol to webtransport-h3 for WebTransport over HTTP/3 --- fetch.bs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fetch.bs b/fetch.bs index 7872b8067..b42163059 100755 --- a/fetch.bs +++ b/fetch.bs @@ -6656,6 +6656,13 @@ optional boolean forceNewConnection (default false), run these steps: to the coarsened shared current time given fetchParams's cross-origin isolated capability. +
  • +

    If request's mode is "webtransport", + connection is an HTTP/3 connection, and the ":protocol" + pseudo-header associated with request's method is + "webtransport", then set the ":protocol" pseudo-header to + "webtransport-h3". [[!WEBTRANSPORT-HTTP3]] +

  • Set response to the result of making an HTTP request over connection using request with the following caveats: From 3fff39eb369cbb302bd09a0c20cacd80ecf8e503 Mon Sep 17 00:00:00 2001 From: Jan-Ivar Bruaroey Date: Mon, 1 Jun 2026 11:57:08 -0400 Subject: [PATCH 2/4] Note "webtransport" is for H2, "webtransport-h3" for H3 --- fetch.bs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/fetch.bs b/fetch.bs index b42163059..3e94aa776 100755 --- a/fetch.bs +++ b/fetch.bs @@ -126,6 +126,12 @@ urlPrefix:https://www.rfc-editor.org/rfc/rfc6454;type:dfn;spec:RFC6454 "publisher": "IETF", "title": "WebTransport over HTTP/3" }, + "WEBTRANSPORT-HTTP2": { + "authors": ["E. Kinnear"], + "href": "https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http2", + "publisher": "IETF", + "title": "WebTransport over HTTP/2" + }, "SVCB": { "aliasOf": "RFC9460" } @@ -6658,11 +6664,17 @@ optional boolean forceNewConnection (default false), run these steps:

  • If request's mode is "webtransport", + request's method is `CONNECT`, connection is an HTTP/3 connection, and the ":protocol" - pseudo-header associated with request's method is + pseudo-header associated with request is "webtransport", then set the ":protocol" pseudo-header to "webtransport-h3". [[!WEBTRANSPORT-HTTP3]] +

    + "webtransport" remains the correct value for WebTransport over an HTTP/2 + connection. [[WEBTRANSPORT-HTTP2]] +
    +
  • Set response to the result of making an HTTP request over connection using request with the following caveats: From 6459f4193df1a826749a5b4da996921b23032c49 Mon Sep 17 00:00:00 2001 From: Jan-Ivar Bruaroey Date: Mon, 1 Jun 2026 12:18:44 -0400 Subject: [PATCH 3/4] Assert method and pseudo-header --- fetch.bs | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/fetch.bs b/fetch.bs index 3e94aa776..df9da632a 100755 --- a/fetch.bs +++ b/fetch.bs @@ -6663,17 +6663,24 @@ optional boolean forceNewConnection (default false), run these steps: cross-origin isolated capability.

  • -

    If request's mode is "webtransport", - request's method is `CONNECT`, - connection is an HTTP/3 connection, and the ":protocol" - pseudo-header associated with request is - "webtransport", then set the ":protocol" pseudo-header to - "webtransport-h3". [[!WEBTRANSPORT-HTTP3]] +

    If request's mode is "webtransport", then: -

    - "webtransport" remains the correct value for WebTransport over an HTTP/2 - connection. [[WEBTRANSPORT-HTTP2]] -
    +
      +
    1. Assert: request's method is + `CONNECT`. + +

    2. Assert: the ":protocol" pseudo-header associated with + request is "webtransport". + +

    3. If connection is an HTTP/3 connection, then set the + ":protocol" pseudo-header to "webtransport-h3". + [[!WEBTRANSPORT-HTTP3]] + +

      + "webtransport" remains the correct value for WebTransport over an HTTP/2 + connection. [[WEBTRANSPORT-HTTP2]] +
      +
  • Set response to the result of making an HTTP request over connection From eb06c09bdc2c7b706911c40bbcc8b8f80e8ded49 Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Fri, 26 Jun 2026 14:18:20 +0200 Subject: [PATCH 4/4] nits --- fetch.bs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/fetch.bs b/fetch.bs index df9da632a..822c859c5 100755 --- a/fetch.bs +++ b/fetch.bs @@ -6663,7 +6663,7 @@ optional boolean forceNewConnection (default false), run these steps: cross-origin isolated capability.

  • -

    If request's mode is "webtransport", then: +

    If request's mode is "webtransport":

    1. Assert: request's method is @@ -6672,14 +6672,12 @@ optional boolean forceNewConnection (default false), run these steps:

    2. Assert: the ":protocol" pseudo-header associated with request is "webtransport". -

    3. If connection is an HTTP/3 connection, then set the - ":protocol" pseudo-header to "webtransport-h3". - [[!WEBTRANSPORT-HTTP3]] +

    4. +

      If connection is an HTTP/3 connection, then set the ":protocol" + pseudo-header to "webtransport-h3". [[!WEBTRANSPORT-HTTP3]] -

      - "webtransport" remains the correct value for WebTransport over an HTTP/2 - connection. [[WEBTRANSPORT-HTTP2]] -
      +

      "webtransport" remains the correct value for WebTransport over an + HTTP/2 connection. [[WEBTRANSPORT-HTTP2]]