@@ -80199,10 +80199,9 @@ interface <dfn interface>VisibilityStateEntry</dfn> : <span>PerformanceEntry</sp
80199
80199
activated), or negative infinity (indicating that the activation has been <span data-x="consume
80200
80200
user activation">consumed</span>). Initially positive infinity.</p></li>
80201
80201
80202
- <li><p>A <dfn>last history-action activation timestamp</dfn>, which is either a
80203
- <code>DOMHighResTimeStamp</code> or positive infinity, initially positive infinity.</p></li>
80202
+ <li><p>A <dfn>has history-action activation</dfn> boolean, initially false.</p></li>
80204
80203
80205
- <li><p>A <dfn>sticky activation override </dfn>, a boolean, initially false.</p></li>
80204
+ <li><p>A <dfn>has sticky activation</dfn> boolean, initially false.</p></li>
80206
80205
</ul>
80207
80206
80208
80207
<p>A user agent also defines a <dfn>transient activation duration</dfn>, which is a constant
@@ -80218,10 +80217,8 @@ interface <dfn interface>VisibilityStateEntry</dfn> : <span>PerformanceEntry</sp
80218
80217
<dl>
80219
80218
<dt><dfn export>Sticky activation</dfn></dt>
80220
80219
<dd>
80221
- <p>When the <span>current high resolution time</span> given <var>W</var> is greater than or
80222
- equal to the <span>last activation timestamp</span> in <var>W</var>, or <var>W</var>'s
80223
- <span>sticky activation override</span> is true, <var>W</var> is said to have <span>sticky
80224
- activation</span>.</p>
80220
+ <p>When <var>W</var>'s <span>has sticky activation</span> is true, <var>W</var> is said to have
80221
+ <span>sticky activation</span>.</p>
80225
80222
80226
80223
<p>This is <var>W</var>'s historical activation state, indicating whether the user has ever
80227
80224
interacted in <var>W</var>. It starts false, then changes to true (and never changes back to
@@ -80249,9 +80246,8 @@ interface <dfn interface>VisibilityStateEntry</dfn> : <span>PerformanceEntry</sp
80249
80246
80250
80247
<dt><dfn>History-action activation</dfn></dt>
80251
80248
<dd>
80252
- <p>When the <span>last history-action activation timestamp</span> of <var>W</var> is not equal
80253
- to the <span>last activation timestamp</span> of <var>W</var>, then <var>W</var> is said to have
80254
- <span>history-action activation</span>.</p>
80249
+ <p>When <var>W</var>'s <span>has history-action activation</span> is true, then <var>W</var> is
80250
+ said to have <span>history-action activation</span>.</p>
80255
80251
80256
80252
<p>This is a special variant of user activation, used to allow access to certain session history
80257
80253
APIs which, if used too frequently, would make it harder for the user to traverse back using <a
@@ -80264,16 +80260,15 @@ interface <dfn interface>VisibilityStateEntry</dfn> : <span>PerformanceEntry</sp
80264
80260
</dd>
80265
80261
</dl>
80266
80262
80267
- <p class="note">The <span>last activation timestamp</span> and <span>last history-action
80268
- activation timestamp</span> are retained even after the <code>Document</code> changes its
80269
- <span>fully active</span> status (e.g., after navigating away from a <code>Document</code>, or
80270
- navigating to a cached <code>Document</code>). This means <span>sticky activation</span> state
80271
- spans multiple navigations as long as the same <code>Document</code> gets reused. For the
80272
- transient activation state, the original <span data-x="activation-expiry">expiry</span> time
80273
- remains unchanged (i.e., the state still expires within the <span>transient activation
80274
- duration</span> limit from the original <span>activation triggering input event</span>). It is
80275
- important to consider this when deciding whether to base certain things off <span>sticky
80276
- activation</span> or <span>transient activation</span>.</p>
80263
+ <p class="note" id="note-user-activation-and-navigation">The underlying values are retained even
80264
+ after the <code>Document</code> changes its <span>fully active</span> status (e.g., after
80265
+ navigating away from a <code>Document</code>, or navigating to a cached <code>Document</code>).
80266
+ This means <span>sticky activation</span> and <span>history-action activation</span> spans
80267
+ multiple navigations as long as the same <code>Document</code> gets reused. For the transient
80268
+ activation state, the original <span data-x="activation-expiry">expiry</span> time remains
80269
+ unchanged (i.e., the state still expires within the <span>transient activation duration</span>
80270
+ limit from the original <span>activation triggering input event</span>). It is important to
80271
+ consider this when deciding what type of activation to base certain things off of.</p>
80277
80272
80278
80273
<h4 id="user-activation-processing-model">Processing model</h4>
80279
80274
@@ -80306,6 +80301,10 @@ interface <dfn interface>VisibilityStateEntry</dfn> : <span>PerformanceEntry</sp
80306
80301
<li><p>Set <var>window</var>'s <span>last activation timestamp</span> to the <span>current
80307
80302
high resolution time</span>.</p></li>
80308
80303
80304
+ <li><p>Set <var>window</var>'s <span>has history-action activation</span> to true.</p></li>
80305
+
80306
+ <li><p>Set <var>window</var>'s <span>has sticky activation</span> to true.</p></li>
80307
+
80309
80308
<li><p><span>Notify the close watcher manager about user activation</span> given
80310
80309
<var>window</var>.</p></li>
80311
80310
</ol>
@@ -80373,8 +80372,7 @@ interface <dfn interface>VisibilityStateEntry</dfn> : <span>PerformanceEntry</sp
80373
80372
<var>navigables</var>.</p></li>
80374
80373
80375
80374
<li><p><span data-x="list iterate">For each</span> <var>window</var> in <var>windows</var>, set
80376
- <var>window</var>'s <span>last history-action activation timestamp</span> to <var>window</var>'s
80377
- <span>last activation timestamp</span>.</p></li>
80375
+ <var>window</var>'s <span>has history-action activation</span> to false.</p></li>
80378
80376
</ol>
80379
80377
80380
80378
<p class="note">Note the asymmetry in the sets of <span data-x="browsing context">browsing
@@ -106378,8 +106376,8 @@ location.href = '#foo';</code></pre>
106378
106376
<span>sticky activation</span>, and <var>navigable</var>'s <span data-x="nav-document">active
106379
106377
document</span>'s <span data-x="concept-document-origin">origin</span> is <span>same
106380
106378
origin</span> with <var>navigationParams</var>'s <span
106381
- data-x="navigation-params-origin">origin</span>, then set <var>window</var>'s <span>sticky
106382
- activation override </span> to true.</p></li>
106379
+ data-x="navigation-params-origin">origin</span>, then set <var>window</var>'s <span>has sticky
106380
+ activation</span> to true.</p></li>
106383
106381
</ol>
106384
106382
106385
106383
<p class="note">This is the usual case, where the new <code>Document</code> we're about to
0 commit comments