@@ -2708,20 +2708,18 @@ not <a for=Document>fully active</a>. It has the following <a for=struct>items</
2708
2708
<dt> <dfn export for="deferred fetch record">request</dfn>
2709
2709
<dd> A <a for=/>request</a> .
2710
2710
2711
- <dt> <dfn export for="deferred fetch record">inactivity deferred delay</dfn> (default null)
2711
+ <dt> <dfn export for="deferred fetch record">inactivity delay</dfn> (default null)
2712
2712
<dd> Null or a <a>duration</a> .
2713
2713
2714
- <dt> <dfn export for="deferred fetch record">sent</dfn> (default false)
2715
- <dd> A boolean.
2716
-
2717
2714
<dt> <dfn export for="deferred fetch record">invoke state</dfn> (default "<code> deferred</code> ")
2718
2715
<dd>
2719
2716
<p> "<code> deferred</code> ", "<code> scheduled</code> ", "<code> terminated</code> ",
2720
- "<code> aborted</code> ", or "<code> sent </code> ".
2717
+ "<code> aborted</code> ", or "<code> activated </code> ".
2721
2718
2722
- <p class=note> This value can be modified <a>in parallel</a> . To set it safely, use atomic
2723
- operations, e.g. atomically exchange the value (set it to the new value and return the new value
2724
- in one operation).
2719
+ <p class=note> This value can be modified <a>in parallel</a> . There could be a race condition where
2720
+ the <code> Document</code> object's <a for=/>event loop</a> might change it to
2721
+ "<code> deferred</code> " at the same time that it is changed to "<code> activated</code> ". UAs can
2722
+ mitigate this race condition in an <a>implementation-defined</a> manner.
2725
2723
</dl>
2726
2724
2727
2725
@@ -2731,26 +2729,33 @@ not <a for=Document>fully active</a>. It has the following <a for=struct>items</
2731
2729
<dfn export for="fetch group" id=concept-fetch-group-terminate>terminated</dfn> :
2732
2730
2733
2731
<ol>
2734
- <li><p> For each <a for="fetch group">fetch record</a> <var> record</var> in <var> fetchGroup</var> 's
2735
- <a for="fetch group">fetch records</a> , if <var> record</var> 's <a for="fetch record">controller</a>
2736
- is non-null and <var> record</var> 's <a for="fetch record">request</a>' s <a>done flag</a> is unset
2737
- and <a for=request>keepalive</a> is false, <a for="fetch controller">terminate</a>
2738
- <var> record</var> 's <a for="fetch record">controller</a> .
2739
-
2740
- <li><p> <a for=list>For each</a> <a for="fetch group">deferred fetch record</a>
2741
- <var> deferredRecord</var> in <var> fetchGroup</var> 's
2742
- <a for="fetch group">deferred fetch records</a> : If the result of atomically exchanging the value
2743
- of <var> deferredRecord</var> 's <a for="deferred fetch record">invoke state</a> with
2744
- "<code> terminated</code> " is not "<code> sent</code> ", then the user agent should
2745
- <a for=/>fetch</a> <var> deferredRecord</var> 's <a for="deferred fetch record">request</a> . The
2746
- exact time in which the <a for=/>fetch</a> takes place is <a>implementation-defined</a> .
2732
+ <li><p> <a for=list>For each</a> <a for="fetch group">fetch record</a> <var> record</var> of
2733
+ <var> fetchGroup</var> 's <a for="fetch group">fetch records</a>, if <var>record</var>' s
2734
+ <a for="fetch record">controller</a> is non-null and <var> record</var> 's
2735
+ <a for="fetch record">request</a> 's <a>done flag</a> is unset and <a for=request>keepalive</a> is
2736
+ false, <a for="fetch controller">terminate</a> <var> record</var> 's
2737
+ <a for="fetch record">controller</a> .
2738
+
2739
+ <li>
2740
+ <p> <a for=list>For each</a> <a for="fetch group">deferred fetch record</a>
2741
+ <var> deferredRecord</var> of <var> fetchGroup</var> 's
2742
+ <a for="fetch group">deferred fetch records</a> :
2743
+
2744
+ <ol>
2745
+ <li><p> Set <var> deferredRecord</var> 's <a for="deferred fetch record">invoke state</a> to
2746
+ "<code> terminated</code> ".
2747
+
2748
+ <li><p> <a for=/>Fetch</a> <var> deferredRecord</var> 's
2749
+ <a for="deferred fetch record">request</a> .
2750
+ </ol>
2751
+ </li>
2747
2752
</ol>
2748
2753
2749
2754
<p> When a <a for=fetch>fetch group</a> <var> fetchGroup</var> is
2750
2755
<dfn export for="fetch group" id=concept-fetch-group-deactivate>deactivated</dfn> :
2751
- <a for=list>For each</a> <a>deferred fetch record</a> <var> deferredRecord</var> in
2756
+ <a for=list>For each</a> <a>deferred fetch record</a> <var> deferredRecord</var> of
2752
2757
<var> fetchGroup</var> 's <a for="fetch group">deferred fetch records</a> whose
2753
- <a for="deferred fetch record">inactivity deferred delay</a> is not null:
2758
+ <a for="deferred fetch record">inactivity delay</a> is not null:
2754
2759
2755
2760
<ol>
2756
2761
<li><p> Set <var> deferredRecord</var> 's <a for="deferred fetch record">invoke state</a> to
@@ -2761,28 +2766,20 @@ not <a for=Document>fully active</a>. It has the following <a for=struct>items</
2761
2766
2762
2767
<ol>
2763
2768
<li><p> The user agent should wait until <var> deferredRecord</var> 's
2764
- <a for="deferred fetch record">inactivity deferred delay</a> have passed or until
2769
+ <a for="deferred fetch record">inactivity delay</a> have passed or until
2765
2770
<var> deferredRecord</var> 's <a for="deferred fetch record">invoke state</a> is not
2766
2771
"<code> scheduled</code> ". The user agent may wait for a longer or shorter period time, e.g., to
2767
2772
optimize batching of deferred fetches.
2768
2773
2769
- <li><p> If the result of atomically exchanging the value of <var> deferredRecord</var> 's
2770
- <a for="deferred fetch record">invoke state</a> with "<code> sent</code> " is
2771
- "<code> scheduled</code> ", then <a for=/>fetch</a> <var> record</var> 's
2772
- <a for="fetch record">request</a> .
2774
+ <li><p> If <var> deferredRecord</var> 's is not "<code> scheduled</code> ", abort these steps.
2775
+
2776
+ <li><p> Set <var> deferredRecord</var> 's <a for="deferred fetch record">invoke state</a> to
2777
+ "<code> activated</code> ".
2778
+
2779
+ <li><p> <a for=/>Fetch</a> <var> record</var> 's <a for="fetch record">request</a> .
2773
2780
</ol>
2774
- </li>
2775
2781
</ol>
2776
2782
2777
- <p> When a <a for=fetch>fetch group</a> <var> fetchGroup</var> is
2778
- <dfn export for="fetch group" id=concept-fetch-group-reactivate>reactivated</dfn> :
2779
- <a for=list>For each</a> <a for=/>deferred fetch record</a> <var> deferredRecord</var> in
2780
- <var> fetchGroup</var> 's <a for="fetch group">deferred fetch records</a> : If the result of atomically
2781
- exchanging the value of <var> deferredRecord</var> 's <a for="deferred fetch record">invoke state</a>
2782
- with "<code> deferred</code> " is "<code> sent</code> ", then <a for=list>remove</a>
2783
- <var> deferredRecord</var> from <var> fetchGroup</var> 's
2784
- <a for="fetch group">deferred fetch records</a> and set <var> deferredRecord</var> 's
2785
- <a for="deferred fetch record">sent</a> to true.
2786
2783
2787
2784
2788
2785
<h3 id=resolving-domains>Resolving domains</h3>
@@ -6755,8 +6752,8 @@ is <a for="fetch group">deactivated</a>.
6755
6752
<li><p> Let <var> deferredRecord</var> be a new <a>deferred fetch record</a> whose
6756
6753
<a for="deferred fetch record">request</a> is <var> request</var> .
6757
6754
6758
- <li><p> Set <var> deferredRecord</var> 's <a for="deferred fetch record">inactivity deferred delay</a>
6759
- to <var> inactivityDeferredDelay</var> .
6755
+ <li><p> Set <var> deferredRecord</var> 's <a for="deferred fetch record">inactivity delay</a> to
6756
+ <var> inactivityDeferredDelay</var> .
6760
6757
6761
6758
<li><p> <a for=list>Append</a> <var> deferredRecord</var> to <var> request</var> 's
6762
6759
<a for=request>client</a> 's <a for=fetch>fetch group</a>' s
@@ -8630,7 +8627,7 @@ dictionary DeferredRequestInit : RequestInit {
8630
8627
};
8631
8628
8632
8629
interface FetchLaterResult {
8633
- readonly attribute boolean sent ;
8630
+ readonly attribute boolean activated ;
8634
8631
};
8635
8632
8636
8633
partial interface mixin WindowOrWorkerGlobalScope {
@@ -8642,8 +8639,9 @@ partial interface mixin WindowOrWorkerGlobalScope {
8642
8639
<dfn for=FetchLaterResult>deferred record</dfn> .
8643
8640
8644
8641
<div algorithm>
8645
- <p> The <dfn attribute for=FetchLaterResult><code>sent</code></dfn> getter steps are to return
8646
- <a>this</a> 's <a for=FetchLaterResult>deferred record</a>' s <a for="deferred fetch record">sent</a> .
8642
+ <p> The <dfn attribute for=FetchLaterResult><code>activated</code></dfn> getter steps are to return
8643
+ true if <a>this</a> 's <a for=FetchLaterResult>deferred record</a>' s
8644
+ <a for="deferred fetch record">invoke state</a> is "<code> activated</code> "; Otherwise false.
8647
8645
</div>
8648
8646
8649
8647
<div algorithm="dom-fetch-later">
0 commit comments