From ae15bd9bed80a50540c900dc6fb9ba2afb4cf101 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal To abort a fetch controller
@@ -235,6 +239,24 @@ lt="authentication entry">authentication entries (for HTTP authentication).
controller, set controller's state to
" To conclude a fetch controller
+controller, perform the following steps given a string
+initiatorType, an optional " Assert: this's conclude steps is not null.
+
+ Invoke this's conclude steps with
+ initiatorType and global.
+
+ Set controller's state to
+ " A fetch params fetchParams is aborted if
its controller's state is
" Let timingInfo be fetchParams's
+ timing info. Set response's timing info to timingInfo. Set fetchParams's controller's
+ state to " If response is a network error, then:
+ Set fetchParams's controller's
+ conclude steps to the following steps given a string
+ initiatorType, a " If global is " If finalResponse is " If finalResponse is an aborted network error, then return.
+
+ If request's URL's scheme is not an
+ HTTP(S) scheme, then return.
+
+ Let timingInfo be fetchParams's
+ timing info.
+
+ Let cacheState be response's cache state.
+
Set response's URL list to « fetchParams's
- request's URL list[0] ».
+ If finalResponse's timing allow passed flag is not set,
+ then set timingInfo to a the result of creating an opaque timing info for
+ timingInfo and set cacheState to the empty string.
- This is needed as after cloning fetchParams's
- request's URL list earlier, response
- might have been set to a network error. This covers the case of finalResponse being a network error.
Set response's timing info to the result of
- creating an opaque timing info for fetchParams's
- timing info. Set timingInfo's end time to the
+ coarsened shared current time given global's
+ relevant settings object's
+ cross-origin isolated capability.
+
+ Mark resource timing for timingInfo, request's
+ URL initiatorType, global, and cacheState.
Let handleFetchDone given response response be to
- finalize and report timing with response, globalObject, and
- " Let handleFetchDone be to
+ conclude controller given " Set controller to the result of calling fetch given
From 1e62dffb42432172f0a534ba7bdfa675c8c2b263 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal Assert: this's conclude steps is not null.
@@ -4330,8 +4332,8 @@ steps:
If finalResponse is an aborted network error, then return.
- If request's URL's scheme is not an
- HTTP(S) scheme, then return.
+ If fetchParams's request's URL's
+ scheme is not an HTTP(S) scheme, then return.
Let timingInfo be fetchParams's
timing info.
From eb83a2482317153170b65a3b01af90fb0526102b Mon Sep 17 00:00:00 2001
From: Noam Rosenthal To conclude a fetch controller
-controller, perform the following steps given a string
+ To conclude a
+fetch controller controller, perform the following steps given a string
initiatorType, an optional " To conclude a
-fetch controller controller, perform the following steps given a string
-initiatorType, an optional " If this's state is " A fetch resource info is a struct used to maintain
+information needed by Resource Timing and Navigation Timing. It has the
+following items: [[RESOURCE-TIMING]] [[NAVIGATION-TIMING]]
+
+ To
create an opaque timing info,
given a fetch timing info timingInfo, return a new
@@ -300,22 +310,6 @@ given a fetch timing info timingInfo, return a new
post-redirect start time are timingInfo's
start time.
- To update timing info from stored response, given a
-connection timing info timingInfo and a response
-response, perform the following steps:
-
- Let storedTimingInfo be response's timing info.
-
- If storedTimingInfo is null, then return.
-
- Set timingInfo's encoded body size to
- storedTimingInfo's encoded body size.
-
- Set timingInfo's decoded body size to
- storedTimingInfo's decoded body size.
- To queue a fetch task, given an algorithm algorithm, a
global object or a parallel queue taskDestination, run these
steps:
@@ -2111,6 +2105,11 @@ message as HTTP/2 does not support them.
" A response has an associated
+resource info
+(a fetch resource info). Unlesss stated otherwise, it is a new
+fetch resource info.
+
This is intended for usage by Service Workers and
Resource Timing. [[SW]] [[RESOURCE-TIMING]]
Set response's timing info to timingInfo.
-
- Attaching the timing info to a response is what makes it exposed to the web as a
- Resource Timing entry later. This step is done here, as resource-timing entries are available only
- for HTTP fetches, including ones that are handled by service-workers or HTTP cache, and not for,
- e.g., Return response. Typically
actualResponse's body's
@@ -5315,9 +5262,6 @@ steps. They return a response.
Set response to storedResponse.
Set response's cache state to " Update timing info from stored response given fetchParams's
- timing info and response.
If forwardResponse is a network error, this effectively caches
the network error, which is sometimes known as "negative caching".
-
- The associated timing info is stored in the cache
- alongside the response.
@@ -5748,8 +5689,9 @@ optional boolean forceNewConnection (default false), run these steps:
Let codings be the result of extracting header list values given
` Increase timingInfo's encoded body size
- by bytes's length.
+ Increase response's resource info's
+ encoded body size by bytes's
+ length.
Set bytes to the result of handling content
@@ -5758,7 +5700,8 @@ optional boolean forceNewConnection (default false), run these steps:
This makes the ` Increase timingInfo's decoded body size by
+ Increase response's resource info's
+ decoded body size by
bytes's length.
If bytes is failure, then terminate
From 6ba027a7473e4b2b486750004a86f022b9401fac Mon Sep 17 00:00:00 2001
From: Noam Rosenthal To conclude a
fetch controller controller, perform the following steps given an optional
string initiatorType (default "
-
ongoing
")
- ongoing
", "terminated
", or "aborted
"
+ requesting
")
+ requesting
", "responding
", "concluded
",
+ "terminated
", or "aborted
"
+
+ terminated
".
+client
" or global object
+global (default "client
"), and an optional "original
" or
+response finalResponse (default "original
"):
+
+
concluded
".
+aborted
".
@@ -4283,22 +4305,54 @@ steps:
fetchParams and a response response, run these steps:
+
- responding
".
+
client
" or global object
+ global, and an "original
" or response
+ finalResponse:
+
client
", then set global to
+ fetchParams's request's client's
+ global object.
+
+ original
", then set finalResponse
+ to response.
+
+ fetch
".
+ fetch
".
original
"):
+
terminated
".
-client
" or global object
global (default "client
"), and an optional "original
" or
response finalResponse (default "original
"):pending
", or a response.
@@ -227,6 +227,9 @@ lt="authentication entry">authentication entries (for HTTP authentication).
requesting
", "responding
", "concluded
",
"terminated
", or "aborted
"
+ terminated
".
client
" or global object
-global (default "client
"), and an optional "original
" or
-response finalResponse (default "original
"):other
"), an optional "client
" or
+global object global (default "client
"), and an optional
+"original
" or response finalResponse (default
+"original
"):
-
- aborted
", then return.
@@ -282,10 +286,6 @@ following items: [[RESOURCE-TIMING]] [[NAVIGATION-TIMING]]
+
+
-
-
local
", or "validated
"). Unlesss stated otherwise, it is the empty
string.
+data:
, blob:
URL fetches, and are only available after all the
- relevant security checks have succeeded.
+ validated
".
-
- Content-Encoding
` and response's header list.
- Content-Length
` header
unreliable to the extent that it was reliable to begin with.
- other
"), an optional "client
" or
-global object global (default "client
"), and an optional
+global object global (default "client
"), an optional
"original
" or response finalResponse (default
-"original
"):original
"), and an optional "now
" or {{DOMHighResTimeStamp}}
+unsafeResponseEndTime:
If this's state is " Assert: this's conclude steps is not null.
+ If unsafeResponseEndTime is " Invoke this's conclude steps with
- initiatorType and global.
+ initiatorType, global, finalResponse, and
+ unsafeResponseEndTime.
Set controller's state to
" Set fetchParams's controller's
conclude steps to the following steps given a string
initiatorType, a " If global is " This covers the case of finalResponse being a network error.
Set timingInfo's end time to the
- coarsened shared current time given global's
+ Set timingInfo's end time to the result of
+ coarsening unsafeResponseEndTime given global's
relevant settings object's
cross-origin isolated capability.
From a4b1ca41ba746837107824237466a01b59a04e50 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal aborted
", then return.
@@ -256,8 +257,12 @@ string initiatorType (default "other
"), an optional "now
", then set
+ unsafeResponseEndTime to the unsafe shared current time.
+
concluded
".
@@ -4316,8 +4321,8 @@ steps:
client
" or global object
- global, and an "original
" or response
- finalResponse:
+ global, an "original
" or response
+ finalResponse, and a {{DOMHighResTimeStamp}} unsafeResponseEndTime:
client
", then set global to
@@ -4348,8 +4353,8 @@ steps:
-
requesting
")
- requesting
", "responding
", "concluded
",
+ fetching
")
+ fetching
", "transmitting
", "concluded
",
"terminated
", or "aborted
"
other
"), an optional "client
"), an optional
"original
" or response finalResponse (default
"original
"), and an optional "now
" or {{DOMHighResTimeStamp}}
-unsafeResponseEndTime:now
"):
Assert: this's conclude steps is not null. @@ -298,13 +298,15 @@ following items: [[RESOURCE-TIMING]] [[NAVIGATION-TIMING]]
A fetch resource info is a struct used to maintain +
A response body info is a struct used to maintain information needed by Resource Timing and Navigation Timing. It has the following items: [[RESOURCE-TIMING]] [[NAVIGATION-TIMING]]
A response has an associated
cache state (the empty string,
-"local
", or "validated
"). Unlesss stated otherwise, it is the empty
+"local
", or "validated
"). Unless stated otherwise, it is the empty
string.
-
A response has an associated -resource info -(a fetch resource info). Unlesss stated otherwise, it is a new -fetch resource info. -
This is intended for usage by Service Workers and Resource Timing. [[SW]] [[RESOURCE-TIMING]] +
A response has an associated +body info +(a response body info). Unless stated otherwise, it is a new +response body info. +
A response has an associated CORS-exposed header-name list (a list of zero or more header @@ -4312,10 +4314,10 @@ steps:
Let timingInfo be fetchParams's - timing info.
Set fetchParams's controller's
- state to "responding
".
+ state to "transmitting
".
Set fetchParams's controller's @@ -4342,12 +4344,12 @@ steps:
Let cacheState be response's cache state. -
Let resourceInfo be response's resource info. +
Let bodyInfo be response's body info.
If finalResponse's timing allow passed flag is not set, then set timingInfo to a the result of creating an opaque timing info for - timingInfo, set resourceInfo to a new fetch resource info and + timingInfo, set bodyInfo to a new response body info and set cacheState to the empty string.
This covers the case of finalResponse being a network error. @@ -4360,7 +4362,7 @@ steps:
Mark resource timing for timingInfo, request's URL initiatorType, global, cacheState, - and resourceInfo. + and bodyInfo.
Let codings be the result of extracting header list values given
`Content-Encoding
` and response's header list.
-
Increase response's resource info's - encoded body size by bytes's +
Increase response's body info's + encoded body size by bytes's length.
This makes the `Content-Length
` header
unreliable to the extent that it was reliable to begin with.
-
Increase response's resource info's - decoded body size by +
Increase response's body info's + decoded body size by bytes's length.
If bytes is failure, then terminate
From ee02a161752499a325d9a23653e209ebdbcd5b9c Mon Sep 17 00:00:00 2001
From: Noam Rosenthal Set fetchParams's controller's
state to " Let timingInfo be fetchParams's
+ timing info.
+
Set fetchParams's controller's
conclude steps to the following steps given a string
@@ -4339,9 +4342,6 @@ steps:
If fetchParams's request's URL's
scheme is not an HTTP(S) scheme, then return.
- Let timingInfo be fetchParams's
- timing info.
-
Let cacheState be response's cache state.
Let bodyInfo be response's body info.
@@ -4367,8 +4367,8 @@ steps:
Otherwise, if fetchParams's request's
- client is a secure context, set response's
- timing info's server-timing headers to the
+ client is a secure context, set timingInfo's
+ server-timing headers to the
result of getting, decoding, and splitting ` If forwardResponse is a network error, this effectively caches
the network error, which is sometimes known as "negative caching".
+
+ forwardResponse's body info should be stored
+ as part of the response.
transmitting
".
+ Server-Timing
`
from response's header list.
From e570139f840b997579a9ccb066c8561f82832818 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
If forwardResponse is a network error, this effectively caches the network error, which is sometimes known as "negative caching". -
forwardResponse's body info should be stored +
The user agent should store forwardResponse's body info
as part of the response.
From a1e3592af6cf29e5a18130df8261dbb4afd05d00 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal If forwardResponse is a network error, this effectively caches
the network error, which is sometimes known as "negative caching".
- The user agent should store forwardResponse's body info
+ The user agent should store forwardResponse's body info
as part of the response.
From 47d2a5c64dc31af71ad8ced6f8fdd14964656313 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal The states of the fetch controller
+ only make sense in the context of half-duplex HTTP fetches (where the request is
+ complete before the response starts). Using them in other contexts should be handled
+ with care. Assert: this's conclude steps is not null.
@@ -4317,7 +4323,7 @@ steps:
timing info.
Set fetchParams's controller's
- state to " Let timingInfo be fetchParams's
timing info.
@@ -4742,7 +4748,6 @@ these steps:
Return response. Typically
actualResponse's body's
From e11d3379bc2258da458ec5b04aec837ed66bc73c Mon Sep 17 00:00:00 2001
From: Noam Rosenthal The states of the fetch controller
only make sense in the context of half-duplex HTTP fetches (where the request is
- complete before the response starts). Using them in other contexts should be handled
- with care. To abort a fetch controller
@@ -4367,7 +4367,7 @@ steps:
cross-origin isolated capability.
Mark resource timing for timingInfo, request's
- URL initiatorType, global, cacheState,
+ URL, initiatorType, global, cacheState,
and bodyInfo.
From dc1f604f16005cc4be0dbbcb5b01eb18c9565514 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal The states of the fetch controller
- only make sense in the context of half-duplex HTTP fetches (where the request is
- complete before the response starts). Handle with care when using them in other
- contexts. To abort a fetch controller
@@ -259,8 +252,6 @@ string initiatorType (default " Assert: this's conclude steps is not null.
If unsafeResponseEndTime is " Invoke this's conclude steps with
initiatorType, global, finalResponse, and
unsafeResponseEndTime.
-
- Set controller's state to
- " A fetch params fetchParams is aborted if
@@ -4322,57 +4310,11 @@ steps:
Let timingInfo be fetchParams's
timing info.
- Set fetchParams's controller's
- state to " Let timingInfo be fetchParams's
timing info.
Set fetchParams's controller's
- conclude steps to the following steps given a string
- initiatorType, a " If global is " If finalResponse is " If finalResponse is an aborted network error, then return.
-
- If fetchParams's request's URL's
- scheme is not an HTTP(S) scheme, then return.
-
- Let cacheState be response's cache state.
-
- Let bodyInfo be response's body info.
-
- If finalResponse's timing allow passed flag is not set,
- then set timingInfo to a the result of creating an opaque timing info for
- timingInfo, set bodyInfo to a new response body info and
- set cacheState to the empty string.
-
- This covers the case of finalResponse being a network error.
- Set timingInfo's end time to the result of
- coarsening unsafeResponseEndTime given global's
- relevant settings object's
- cross-origin isolated capability.
-
- Mark resource timing for timingInfo, request's
- URL, initiatorType, global, cacheState,
- and bodyInfo.
- Otherwise, if fetchParams's request's
+ If fetchParams's request's
client is a secure context, set timingInfo's
server-timing headers to the
result of getting, decoding, and splitting ` Set fetchParams's controller's
+ conclude steps to the following steps given a string
+ initiatorType, a " If global is " If finalResponse is " If finalResponse is an aborted network error, then return.
+
+ Assert: finalResponse is response or a network error.
+
+ If fetchParams's request's URL's
+ scheme is not an HTTP(S) scheme, then return.
+
+ Let cacheState be response's cache state.
+
+ Let bodyInfo be response's body info.
+
+ If finalResponse's timing allow passed flag is not set,
+ then set timingInfo to a the result of creating an opaque timing info for
+ timingInfo, set bodyInfo to a new response body info and
+ set cacheState to the empty string.
+
+ This covers the case of finalResponse being a network error.
+ Set timingInfo's end time to the result of
+ coarsening unsafeResponseEndTime given global's
+ relevant settings object's
+ cross-origin isolated capability.
+
+ Mark resource timing for timingInfo, request's
+ URL, initiatorType, global, cacheState,
+ and bodyInfo.
+ If fetchParams's process response end-of-body is not
null, then queue a fetch task to run fetchParams's
process response end-of-body given response with
From 2b17c8f6633212ba812a29c80ae6df862f873042 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal Let timingInfo be fetchParams's
timing info.
- Let timingInfo be fetchParams's
- timing info.
-
If fetchParams's request's
- client is a secure context, set timingInfo's
- server-timing headers to the
+ If response is not a network error and fetchParams's
+ request's client is a secure context, then set
+ timingInfo's server-timing headers to the
result of getting, decoding, and splitting ` To conclude a
+ To report timing for a
fetch controller controller, perform the following steps given an optional
string initiatorType (default " Assert: this's conclude steps is not null.
+ Assert: this's report timing steps is not null.
If unsafeResponseEndTime is " Invoke this's conclude steps with
+ Invoke this's report timing steps with
initiatorType, global, finalResponse, and
unsafeResponseEndTime.
@@ -3855,9 +3852,6 @@ the request.
post-redirect start time are the
coarsened shared current time given crossOriginIsolatedCapability.
- Let controller be a new fetch controller whose
- timing info is timingInfo.
-
Let fetchParams be a new fetch params whose
request is request,
timing info is timingInfo,
@@ -4329,47 +4323,47 @@ steps:
Set fetchParams's controller's
- conclude steps to the following steps given a string
+ report timing steps to the following steps given a string
initiatorType, a " If global is " If finalResponse is " If global is " If finalResponse is an aborted network error, then return.
+ If finalResponse is " Assert: finalResponse is response or a network error.
+ If finalResponse is an aborted network error, then return.
- If fetchParams's request's URL's
- scheme is not an HTTP(S) scheme, then return.
+ Assert: finalResponse is response or a network error.
- Let cacheState be response's cache state.
+ If fetchParams's request's URL's
+ scheme is not an HTTP(S) scheme, then return.
- Let bodyInfo be response's body info.
+ Let cacheState be response's cache state.
- If finalResponse's timing allow passed flag is not set,
- then set timingInfo to a the result of creating an opaque timing info for
- timingInfo, set bodyInfo to a new response body info and
- set cacheState to the empty string.
+ Let bodyInfo be response's body info.
- This covers the case of finalResponse being a network error.
- Set timingInfo's end time to the result of
- coarsening unsafeResponseEndTime given global's
- relevant settings object's
- cross-origin isolated capability.
-
- Mark resource timing for timingInfo, request's
- URL, initiatorType, global, cacheState,
- and bodyInfo.
+ If finalResponse's timing allow passed flag is not set,
+ then set timingInfo to a the result of creating an opaque timing info for
+ timingInfo, set bodyInfo to a new response body info and
+ set cacheState to the empty string.
+
+ This covers the case of finalResponse being a network error.
+ Set timingInfo's end time to the result of
+ coarsening unsafeResponseEndTime given global's
+ relevant settings object's
+ cross-origin isolated capability.
+
+ Mark resource timing for timingInfo, request's
+ URL, initiatorType, global, cacheState,
+ and bodyInfo.
Let handleFetchDone be to
- conclude controller given " Set controller to the result of calling fetch given
From 4f4bc768c1acf08951d5e87838a185aa51e71d60 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal To abort a fetch controller
@@ -238,27 +241,6 @@ lt="authentication entry">authentication entries (for HTTP authentication).
controller, set controller's state to
" To report timing for a
-fetch controller controller, perform the following steps given an optional
-string initiatorType (default " Assert: this's report timing steps is not null.
-
- If unsafeResponseEndTime is " Invoke this's report timing steps with
- initiatorType, global, finalResponse, and
- unsafeResponseEndTime.
- A fetch params fetchParams is aborted if
its controller's state is
" The user agent may be asked to
suspend the ongoing fetch.
@@ -3842,6 +3827,10 @@ the request.
If useParallelQueue is true, then set taskDestination to the result of
starting a new parallel queue.
+ If timingGlobal is " If timingGlobal is " Let timingInfo be a new fetch timing info whose
start time and
post-redirect start time are the
@@ -4313,11 +4337,15 @@ steps:
Let global be fetchParams's timing global.
-
If global is not null, then queue a fetch task given
- global to run the following steps:
+ If fetchParams's request's
+ destination is " Set fetchParams's controller's report timing steps to the following steps given a global object global:
If fetchParams's request's URL's
@@ -4340,10 +4368,22 @@ steps:
This covers the case of response being a network error.
Mark resource timing for timingInfo, request's
+ If fetchParams's initiator type is not null, then
+ mark resource timing for timingInfo, request's
URL, fetchParams's initiator type,
global, cacheState, and bodyInfo.
Let global be fetchParams's timing global.
+
+ If fetchParams's initiator type is not null and
+ fetchParams's timing global is not null, then
+ queue a fetch task to run fetchParams's controller's
+ report timing steps given fetchParams's
+ timing global and fetchParams's
+ initiator type, withfetchParams's
+ timing global.
If fetchParams's process response end-of-body is not
@@ -8183,8 +8223,8 @@ in a parallel queue if useParallelQueue is
as arguments will be invoked. Hopefully most standards will not need this.
Takes a string that defaults to " Takes null or a string, to indicate the {{PerformanceResourceTiming/initiatorType}} for
+ Resource Timing. If not given, the entry is not reported. [[RESOURCE-TIMING]]
Takes " Call this's report timing steps with global.
- To extract full timing info given a
-fetch controller controller:
+ To extract full timing info
+given a fetch controller controller:
Assert: this's full timing info is not null.
From f35a7bce3b686459d7be3e3748b9abba3077dc0d Mon Sep 17 00:00:00 2001
From: Noam Rosenthal Set crossOriginIsolatedCapability to request's
client's
cross-origin isolated capability.
+
+ Set timingGlobal to request's client's
+ global object.
Assert: timingGlobal is null or a global object.
+
If useParallelQueue is true, then set taskDestination to the result of
starting a new parallel queue.
@@ -3855,10 +3860,6 @@ the request.
wanting to do a ping without request body might do so as well, but if you do have a request
body you definitely need this as otherwise transmit-request-body loop breaks down. -->
- If timingGlobal is " Let timingInfo be a new fetch timing info whose
start time and
post-redirect start time are the
@@ -4343,9 +4344,9 @@ steps:
controller's full timing info to
fetchParams's timing info.
- Set fetchParams's controller's report timing steps to the following steps given a global object global:
+ Set fetchParams's controller's
+ report timing steps to the following steps given a
+ global object global:
If fetchParams's request's URL's
From 37e09f6da76fdbd5a38806160a397d7296e0f152 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal If fetchParams's request's
- destination is " If fetchParams's request's
+ destination is " Set fetchParams's controller's
report timing steps to the following steps given a
global object global:
From 6af3b82e100d2c7ab3fd7d738ee5b54c02674006 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal Assert: timingGlobal is null or a global object.
+ Assert: timingGlobal is " If useParallelQueue is true, then set taskDestination to the result of
starting a new parallel queue.
@@ -4354,7 +4354,7 @@ steps:
Set timingInfo's end time to the
relative high resolution time given unsafeEndTime and
- global. Let cacheState be response's cache state.
@@ -4367,7 +4367,6 @@ steps:
set cacheState to the empty string.
This covers the case of response being a network error.
- If fetchParams's initiator type is not null, then
mark resource timing for timingInfo, request's
@@ -4379,10 +4378,10 @@ steps:
If fetchParams's initiator type is not null and
- fetchParams's timing global is not null, then
- queue a fetch task to run fetchParams's controller's
- report timing steps given fetchParams's
- timing global and fetchParams's
+ fetchParams's timing global is not " Increase response's body info's
- encoded body size by bytes's
+ encoded size by bytes's
length.
Increase response's body info's
- decoded body size by
+ decoded size by
bytes's length.
If bytes is failure, then terminate
From 43be574b0224ea00b103b6394397a45258608a6c Mon Sep 17 00:00:00 2001
From: Noam Rosenthal A request has an associated service-workers mode, that
is " A request has an associated null or string
+initiator type. Unless stated otherwise it is null.
+[[RESOURCE-TIMING]]
+
This determines which service workers will receive a {{fetch!!event}} event for this fetch.
@@ -2114,11 +2112,6 @@ string.
- A response has an associated
-body info
-(a response body info). Unless stated otherwise, it is a new
-response body info.
-
A response has an associated
CORS-exposed header-name list
(a list of zero or more header
@@ -2149,6 +2142,11 @@ allowed on the resource fetched by looking at the flag of the response returned.
the response of a redirect has to be set if it was set for previous responses in the redirect chain,
this is also tracked internally using the request's timing allow failed flag.
+ A response has an associated
+body info
+(a response body info). Unless stated otherwise, it is a new
+response body info.
+
A response has an associated
service worker timing info (null or a
service worker timing info), which is initially null.
@@ -3799,17 +3797,15 @@ an optional algorithm processEarlyHintsResponse
algorithm processResponse, an optional
algorithm processResponseEndOfBody, an optional algorithm
processResponseConsumeBody,
-an optional boolean useParallelQueue (default false), an
-optional null or string initiatorType (default null),
-and an optional " The user agent may be asked to
suspend the ongoing fetch.
@@ -3845,13 +3841,8 @@ the request.
Set crossOriginIsolatedCapability to request's
client's
cross-origin isolated capability.
-
- Set timingGlobal to request's client's
- global object.
- Assert: timingGlobal is " If useParallelQueue is true, then set taskDestination to the result of
starting a new parallel queue.
@@ -3869,8 +3860,6 @@ the request.
request is request,
timing info is timingInfo,
controller is controller,
- initiator type is initiatorType,
- timing global is timingGlobal,
process request body chunk length is
processRequestBodyChunkLength,
process request end-of-body is processRequestEndOfBody,
@@ -4368,23 +4357,24 @@ steps:
This covers the case of response being a network error.
- If fetchParams's initiator type is not null, then
- mark resource timing for timingInfo, request's
- URL, fetchParams's initiator type,
- global, cacheState, and bodyInfo.
+ If fetchParams's request's
+ initiator type is not null, then
+ mark resource timing given timingInfo, request's
+ URL, request's
+ initiator type, global, cacheState, and
+ bodyInfo.
- Let global be fetchParams's timing global.
+ If fetchParams's initiator type is not null and
- fetchParams's timing global is not " If fetchParams's request's
+ initiator type is not null and client is not null, then
+ queue a fetch task to run fetchParams's controller's
+ report timing steps given client's
+ global object and request's
+ initiator type, with client's
+ global object.
If fetchParams's process response end-of-body is not
null, then queue a fetch task to run fetchParams's
@@ -7084,6 +7074,9 @@ constructor steps are:
Set controller to the result of calling fetch given
- request, with initiatorType set to " If locallyAborted is true, terminate these substeps.
@@ -8221,16 +8214,6 @@ in a parallel queue if useParallelQueue is
Takes a boolean that defaults to false. Indicates where the algorithms passed
as arguments will be invoked. Hopefully most standards will not need this.
-
- Takes null or a string, to indicate the {{PerformanceResourceTiming/initiatorType}} for
- Resource Timing. If not given, the entry is not reported. [[RESOURCE-TIMING]]
-
- Takes " When invoked, the fetch operation returns a fetch controller. The
From 448f3ae666776bb72de64cb7016b01bf60237e34 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal A request has an associated service-workers mode, that
is " A request has an associated null or string
-initiator type. Unless stated otherwise it is null.
-[[RESOURCE-TIMING]]
+ A request has an associated
+initiator type, which is null,
+" This determines which service workers will receive a {{fetch!!event}} event for this fetch.
From 53f81ca3f1db764c42f4f35a54573146bd8b5734 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal If forwardResponse is a network error, this effectively caches
the network error, which is sometimes known as "negative caching".
- The user agent should store forwardResponse's body info
- as part of the response.
+ The associated body info is stored in the cache
+ alongside the response.
From c5614debf15d979a27a22371afb192bb58c29fb1 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal Let unsafeEndTime be the unsafe shared current time.
- If fetchParams's request's
destination is " Let processResponseEndOfBodyTask be the following steps:
- If fetchParams's request's
- initiator type is not null and client is not null, then
- queue a fetch task to run fetchParams's controller's
- report timing steps given client's
- global object and request's
- initiator type, with client's
- global object.
+ If fetchParams's process response end-of-body is
+ not null, then call fetchParams's
+ process response end-of-body given response.
+
+ If fetchParams's request's
+ initiator type is not null and fetchParams's
+ request's client is not null, then
+ run fetchParams's controller's
+ report timing steps given fetchParams's
+ request's client's
+ global object and request's
+ initiator type.
+
+ If fetchParams's process response end-of-body is not
- null, then queue a fetch task to run fetchParams's
- process response end-of-body given response with
+ Queue a fetch task to run processResponseEndOfBodyTask with
fetchParams's task destination.
Assert: this's report timing steps is not null.
+ Assert: this's report timing steps is not
+ null.
Call this's report timing steps with global.
Assert: this's full timing info is not null.
+ Assert: this's full timing info is not
+ null.
Return this's full timing info.
This determines which service workers will receive a {{fetch!!event}} event for this fetch.
@@ -4369,7 +4373,7 @@ steps:
If response's timing allow passed flag is not set,
then set timingInfo to a the result of creating an opaque timing info for
- timingInfo, set bodyInfo to a new response body info and
+ timingInfo, set bodyInfo to a new response body info, and
set cacheState to the empty string.
This covers the case of response being a network error.
@@ -4386,21 +4390,21 @@ steps:
Let processResponseEndOfBodyTask be the following steps:
If fetchParams's process response end-of-body is
- not null, then call fetchParams's
+ non-null, then run fetchParams's
process response end-of-body given response.
If fetchParams's request's
- initiator type is not null and fetchParams's
- request's client is not null, then
- run fetchParams's controller's
+ initiator type is non-null and fetchParams's
+ request's client is non-null, then run
+ fetchParams's controller's
report timing steps given fetchParams's
request's client's
global object and request's
initiator type.
-
- Queue a fetch task to run processResponseEndOfBodyTask with
From 622c6046cab375acd7bef791dc7354a1570e6075 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal Queue a fetch task to run processResponseEndOfBodyTask with
From 9f0745ab2d82b65071778acaaf24196681031396 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal If fetchParams's request's
initiator type is non-null and fetchParams's
- request's client is non-null, then run
- fetchParams's controller's
- report timing steps given fetchParams's
request's client's
+ global object is fetchParams's
+ task destination, then run fetchParams's
+ controller's report timing steps given
+ fetchParams's request's client's
global object.
-
-
fetching
")
- fetching
", "transmitting
", "concluded
",
- "terminated
", or "aborted
"
+ requesting
")
+ requesting
", "responding
", "concluded
",
+ "terminated
", or "aborted
"
+
+ other
"), an optional "transmitting
".
+ state to "responding
".
pending
", or a response.
@@ -234,10 +234,10 @@ lt="authentication entry">authentication entries (for HTTP authentication).
contexts.
-
requesting
")
- requesting
", "responding
", "concluded
",
- "terminated
", or "aborted
"
-
- ongoing
")
+ ongoing
", "terminated
", or "aborted
"
other
"), an optional "now
", then set
@@ -269,9 +260,6 @@ string initiatorType (default "other
"), an optional "concluded
".
responding
".
-
client
" or global object
- global, an "original
" or response
- finalResponse, and a {{DOMHighResTimeStamp}} unsafeResponseEndTime:
-
-
-
-
- client
", then set global to
- fetchParams's request's client's
- global object.
-
- original
", then set finalResponse
- to response.
-
- Server-Timing
`
@@ -4388,6 +4330,52 @@ steps:
client
" or global object
+ global, an "original
" or response
+ finalResponse, and a {{DOMHighResTimeStamp}} unsafeResponseEndTime:
+
+
+
+ client
", then set global to
+ fetchParams's request's client's
+ global object.
+
+ original
", then set finalResponse
+ to response.
+
+ Server-Timing
`
from response's header list.
From e8395c0afc45c6c23fb2277262f0712373bb2192 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal ongoing
")
ongoing
", "terminated
", or "aborted
"
- terminated
".
-other
"), an optional "client
" or
global object global (default "client
"), an optional
@@ -252,12 +249,12 @@ string initiatorType (default "other
"), an optional "now
", then set
unsafeResponseEndTime to the unsafe shared current time.
- client
" or global object
global, an "original
" or response
finalResponse, and a {{DOMHighResTimeStamp}} unsafeResponseEndTime:
-
client
", then set global to
- fetchParams's request's client's
- global object.
-
- original
", then set finalResponse
- to response.
+ client
", then set global to
+ fetchParams's request's client's
+ global object.
- original
", then set finalResponse
+ to response.
- fetch
".
+ report timing for controller given "fetch
".
other
")
+
ongoing
")
ongoing
", "terminated
", or "aborted
"
-
- terminated
".
-other
"), an optional "client
" or
-global object global (default "client
"), an optional
-"original
" or response finalResponse (default
-"original
"), and an optional "now
" or {{DOMHighResTimeStamp}}
-unsafeResponseEndTime (default "now
"):
-
-
now
", then set
- unsafeResponseEndTime to the unsafe shared current time.
-
- aborted
".
@@ -3793,15 +3775,18 @@ an optional algorithm processEarlyHintsResponse
algorithm processResponse, an optional
algorithm processResponseEndOfBody, an optional algorithm
processResponseConsumeBody,
-and an optional boolean useParallelQueue (default false), run
-the steps below. If given, processRequestBodyChunkLength must be an algorithm accepting
-an integer representing the number of bytes transmitted. If given,
-processRequestEndOfBody must be an algorithm accepting no arguments. If given,
-processEarlyHintsResponse must be an algorithm accepting a response. If
-given, processResponse must be an algorithm accepting a response. If given,
-processResponseEndOfBody must be an algorithm accepting a response. If
-given, processResponseConsumeBody must be an algorithm accepting a response
-and null, failure, or a byte sequence.
+an optional boolean useParallelQueue (default false), an
+optional string initiatorType (default "other
"),
+and an optional "client
", "none
" or a global object
+timingGlobal (default "client
"), run the steps
+below. If given, processRequestBodyChunkLength must be an algorithm acceptin an integer
+representing the number of bytes transmitted. If given processRequestEndOfBody must be an
+algorithm accepting no arguments. If given, processEarlyHintsResponse must be an
+algorithm accepting a response. If given, processResponse must be an
+algorithm accepting a response. If given, processResponseEndOfBody must be
+an algorithm accepting a response. If given, processResponseConsumeBody must
+be an algorithm accepting a response and null, failure, or a
+byte sequence.
client
", then set timingGlobal
+ to request's client's
+ global object.
+
+ client
", then set timingGlobal to
+ request's client's global object.
+
document
", then set fetchParams's
+ controller's full timing info to
+ fetchParams's timing info.
+
+
+
+ other
", to indicate the
- {{PerformanceResourceTiming/initiatorType}} for Resource Timing. [[RESOURCE-TIMING]]
+ client
", "none
" or a global object (default
From 9a9b6cceb41eb89a460c21442d154a272d9aae60 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal
+ client
" or a global object
timingGlobal (default "client
"), run the steps
-below. If given, processRequestBodyChunkLength must be an algorithm acceptin an integer
-representing the number of bytes transmitted. If given processRequestEndOfBody must be an
+below. If given, processRequestBodyChunkLength must be an algorithm accepting an integer
+representing the number of bytes transmitted. If given, processRequestEndOfBody must be an
algorithm accepting no arguments. If given, processEarlyHintsResponse must be an
algorithm accepting a response. If given, processResponse must be an
algorithm accepting a response. If given, processResponseEndOfBody must be
From 4bd90b1cf57c32d5aa38ae96d0b3737393a80776 Mon Sep 17 00:00:00 2001
From: Noam Rosenthal client
", then set timingGlobal to
- request's client's global object.
-
- document
", then set fetchParams's
- controller's full timing info to
- fetchParams's timing info.
+ document
", then set fetchParams's
+ controller's full timing info to
+ fetchParams's timing info.
+
-
@@ -3801,7 +3801,7 @@ algorithm processResponseEndOfBody, an op
processResponseConsumeBody,
an optional boolean useParallelQueue (default false), an
optional null or string initiatorType (default null),
-and an optional "client
" or a global object
+and an optional "client
", "none
", or a global object
timingGlobal (default "client
"), run the steps
below. If given, processRequestBodyChunkLength must be an algorithm accepting an integer
representing the number of bytes transmitted. If given, processRequestEndOfBody must be an
@@ -3850,7 +3850,7 @@ the request.
global object.
none
" or a global object.
none
",
+ then queue a fetch task to run fetchParams's
+ controller's report timing steps given
+ fetchParams's timing global and fetchParams's
initiator type, withfetchParams's
timing global.
Content-Encoding
` and response's header list.
all
" or "none
". Unless stated otherwise it is "all
".
+client
", "none
", or a global object
-timingGlobal (default "client
"), run the steps
-below. If given, processRequestBodyChunkLength must be an algorithm accepting an integer
-representing the number of bytes transmitted. If given, processRequestEndOfBody must be an
-algorithm accepting no arguments. If given, processEarlyHintsResponse must be an
-algorithm accepting a response. If given, processResponse must be an
-algorithm accepting a response. If given, processResponseEndOfBody must be
-an algorithm accepting a response. If given, processResponseConsumeBody must
-be an algorithm accepting a response and null, failure, or a byte sequence.
+and an optional boolean useParallelQueue (default false), run
+the steps below. If given, processRequestBodyChunkLength must be an algorithm accepting
+an integer representing the number of bytes transmitted. If given,
+processRequestEndOfBody must be an algorithm accepting no arguments. If given,
+processEarlyHintsResponse must be an algorithm accepting a response. If
+given, processResponse must be an algorithm accepting a response. If given,
+processResponseEndOfBody must be an algorithm accepting a response. If
+given, processResponseConsumeBody must be an algorithm accepting a response
+and null, failure, or a byte sequence.
none
" or a global object.
-
none
",
- then queue a fetch task to run fetchParams's
- controller's report timing steps given
- fetchParams's timing global and fetchParams's
- initiator type, withfetchParams's
- timing global.
- fetch
".
fetch
, and
- processResponse given response being these substeps:
+ request and processResponse given response being
+ these substeps:
client
", "none
" or a global object (default
- "client
"). Indicates which global object is used for enqueuing the
- {{PerformanceResourceTiming}} entry. If "none
" is passed, the entry is not reported.
- [[RESOURCE-TIMING]]
all
" or "none
". Unless stated otherwise it is "all
".
-audio
",
+"beacon
",
+"body
",
+"css
",
+"early-hint
",
+"embed
",
+"fetch
",
+"font
",
+"frame
",
+"iframe
",
+"image
",
+"img
",
+"input
",
+"link
",
+"object
",
+"ping
",
+"script
",
+"track
",
+"video
",
+"xmlhttprequest
", or
+"other
". Unless stated otherwise it is null. [[RESOURCE-TIMING]]
- document
", then set fetchParams's
controller's full timing info to
@@ -4385,20 +4382,28 @@ steps:
bodyInfo.
+
-
-
@@ -246,7 +247,8 @@ lt="authentication entry">authentication entries (for HTTP authentication).
given a fetch controller controller:
-
@@ -1443,6 +1445,8 @@ is "all
" or "none
". Unless stated otherwise it is "xmlhttprequest
", or
"other
". Unless stated otherwise it is null. [[RESOURCE-TIMING]]
+
+