diff --git a/fetch.bs b/fetch.bs index a46852e0a..800a7ceb7 100755 --- a/fetch.bs +++ b/fetch.bs @@ -2248,6 +2248,19 @@ Unless stated otherwise, it is false.
This flag is for exclusive use by HTML's render-blocking mechanism. [[!HTML]] +
A request has an associated WebTransport-hash list (a +WebTransport-hash list). Unless stated otherwise it is « ». + +
A WebTransport-hash list is a list of zero or more +WebTransport-hashes. + +
A WebTransport-hash is a tuple +consisting of an algorithm (a string) and a +value (a byte sequence). + +
This list is for exclusive use by {{WebTransport/WebTransport(url, options)}} when +options contains {{WebTransportOptions/serverCertificateHashes}}. +
A request has an associated @@ -3003,16 +3016,19 @@ steps:
To obtain a connection, given a
network partition key key, URL url, boolean
credentials, an optional new connection setting new (default
-"no"), and an optional boolean
-requireUnreliable (default false), run these
-steps:
-
+"no"), an optional boolean
+requireUnreliable (default false), and an
+optional WebTransport-hash list
+webTransportHashes (default « »):
+
If new is "no", then:
+
If new is "no":
Let connections be a set of connections in the user agent's connection pool whose key is key, origin is url's origin, and @@ -3060,10 +3076,11 @@ steps:
Let connection be the result of running this step: run create a connection given key, url's origin, credentials, proxy, an implementation-defined host from hosts, - timingInfo, and requireUnreliable an implementation-defined number - of times, in parallel from each other, and wait for at least 1 to return a value. In an - implementation-defined manner, select a value to return from the returned values and - return it. Any other returned values that are connections may be closed. + timingInfo, requireUnreliable, and webTransportHashes an + implementation-defined number of times, in parallel from each other, and wait for + at least 1 to return a value. In an implementation-defined manner, select a value to + return from the returned values and return it. Any other returned values that are + connections may be closed.
Essentially this allows an implementation to pick one or more IP addresses from the return value of resolve an origin (assuming @@ -3094,8 +3111,9 @@ reused across connections whose credentials are fal
To create a connection, given a network partition key key, origin origin, boolean credentials, string proxy, -host host, connection timing info timingInfo, and -boolean requireUnreliable, run these steps: +host host, connection timing info timingInfo, +boolean requireUnreliable, and a WebTransport-hash list +webTransportHashes:
Set timingInfo's connection start time to the @@ -3122,6 +3140,12 @@ boolean requireUnreliable, run these steps:
If credentials is false, then do not send a TLS client certificate. +
If webTransportHashes [=list/is not empty=], instead of using the default + certificate verification algorithm, consider the server certificate valid if it meets the + [=custom certificate requirements=] and if + [=verify a certificate hash|verifying the certificate hash=] against |webTransportHashes| returns + true. If either condition is not met, then return failure. +
If establishing a connection does not succeed (e.g., a UDP, TCP, or TLS error), then return failure.