diff --git a/fetch.bs b/fetch.bs index 122efc771..dab7ed6ce 100755 --- a/fetch.bs +++ b/fetch.bs @@ -2225,6 +2225,11 @@ Unless stated otherwise, it is false.

This is for exclusive use by HTML's navigate algorithm. [[!HTML]] +

A request has an associated WebDriver navigation id +(null or a string). Unless stated otherwise, it is null. + +

This is for exclusive use by HTML's navigate algorithm. [[!HTML]] +

A request has an associated boolean render-blocking. Unless stated otherwise, it is false. @@ -2266,6 +2271,16 @@ otherwise, it is unset. done flag, and timing allow failed flag are used as bookkeeping details by the fetch algorithm. +

A request has an associated +WebDriver id +which is the result of generating a random UUID, set when the request is +created. [[WEBCRYPTO]] + +

The [=request/WebDriver id=] is used by WebDriver-BiDi. It remains constant +across redirects, authentication attempts, and CORS-preflight fetches of an initial request. +When a request is [=request/cloned=], the created request gets a unique +[=request/WebDriver id=]. [[!WEBDRIVER-BIDI]] +


A subresource request is a request @@ -2356,7 +2371,10 @@ is to return the result of serializing a request origin with request

  1. Let newRequest be a copy of request, except for its - body. + body and WebDriver id. + +

  2. Set newRequest's WebDriver id to the result of + generating a random UUID. [[WEBCRYPTO]]

  3. If request's body is non-null, set newRequest's body to the result of cloning request's @@ -4570,6 +4588,8 @@ the response. [[!HTTP-CACHING]] request's body to request's body as a body. +

  4. Run the WebDriver BiDi clone network request body steps with request. +

  5. If all of the following conditions are true: @@ -5164,6 +5184,11 @@ steps: network error; otherwise response's internal response. +

  6. If response is a network error, then run + the WebDriver BiDi fetch error steps with request. Otherwise, + run the WebDriver BiDi response completed steps with + request and response. +

  7. If internalResponse's body is null, then run processResponseEndOfBody. @@ -5586,6 +5611,13 @@ these steps: filtered response; otherwise to response's internal response. +

  8. Run the WebDriver BiDi response started steps with + request and response. + +

  9. If one of the following is true @@ -5713,8 +5745,12 @@ these steps:

    "follow"
    -
    1. Set response to the result of running HTTP-redirect fetch given - fetchParams and response.

    +
      +
    1. Run the WebDriver BiDi response completed steps with request and + response. +
    2. Set response to the result of running HTTP-redirect fetch given + fetchParams and response. +

@@ -6120,6 +6156,10 @@ run these steps:

This intentionally does not depend on httpRequest's credentials mode. + +

  • Run the WebDriver BiDi before request sent steps with request. +

  • Set httpCache to the result of determining the HTTP cache partition, given httpRequest. @@ -6215,6 +6255,8 @@ run these steps:

  • If aborted, then return the appropriate network error for fetchParams. +

  • If response is not null, then run the WebDriver BiDi response + started steps with request and response.

  • @@ -6478,6 +6520,9 @@ optional boolean forceNewConnection (default false), run these steps:
  • Wait until all the HTTP response headers are transmitted. +

  • Run the WebDriver BiDi response started steps with + request and response. +

  • Let status be the HTTP response's status code.

  • @@ -6650,6 +6695,8 @@ optional boolean forceNewConnection (default false), run these steps:
  • Set response's body to a new body whose stream is stream. +

  • Run the WebDriver BiDi clone network response body steps with request and response. +

  • If includeCredentials is true, then the user agent should parse and store response `Set-Cookie` headers given request and response. @@ -6790,8 +6837,9 @@ populates the CORS-preflight cache to minimize the number of these origin is request's origin, referrer is request's referrer, referrer policy is request's referrer policy, - mode is "cors", and - response tainting is "cors". + mode is "cors", + response tainting is "cors", and + WebDriver id is request's WebDriver id.

    The service-workers mode of preflight does not matter as this algorithm uses HTTP-network-or-cache fetch rather than HTTP fetch.