diff --git a/fetch.bs b/fetch.bs index de4606f2..9127c50c 100644 --- a/fetch.bs +++ b/fetch.bs @@ -2156,6 +2156,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. @@ -2197,6 +2202,15 @@ 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 a unique string automatically set when the request is created. + +

The [=request/WebDriver id=] is used by WebDriver-BiDi. It remains constant +across all requests resulting from a redirect 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 @@ -2273,7 +2287,9 @@ 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 a new unique string.

  3. If request's body is non-null, set newRequest's body to the result of cloning request's @@ -4829,6 +4845,11 @@ steps: URL, fetchParams's request's initiator type, global, cacheState, bodyInfo, and responseStatus. + +

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

  • @@ -5170,6 +5191,13 @@ these steps: filtered response; otherwise to response's internal response. +
  • Run the [=WebDriver BiDi response started=] steps with + request and response. + +

  • If one of the following is true @@ -5209,6 +5237,8 @@ these steps:

  • There is at least one item in the CORS-unsafe request-header names with request's header list for which there is no header-name cache entry match using request. + +
  • WebDriver BiDi cache behavior with request is "bypass".

    Then: @@ -5297,8 +5327,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. +

    @@ -5583,6 +5617,9 @@ run these steps: default `User-Agent` value) to httpRequest's header list. +
  • If WebDriver BiDi cache behavior with request is "bypass, then + set httpRequest's cache mode to "no-store". +

  • If httpRequest's cache mode is "default" and httpRequest's header list contains `If-Modified-Since`, @@ -5704,6 +5741,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. @@ -5799,6 +5840,8 @@ run these steps:

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

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

  • @@ -6062,6 +6105,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.

  • @@ -6454,8 +6500,9 @@ populates the CORS-preflight cache to minimize the number of these
  • If max-age is greater than an imposed limit on max-age, then set max-age to the imposed limit. -

  • If the user agent does not provide for a cache, then - return response. +

  • If the user agent does not provide for a cache, + or WebDriver BiDi cache behavior with request is "bypass", + then return response.

  • For each method in methods for which there is a method cache entry match using request, set matching entry's