diff --git a/source b/source index 6ace5d4c1f6..2026f13127f 100644 --- a/source +++ b/source @@ -30260,10 +30260,10 @@ interface HTMLIFrameElement : HTMLElement { keyword allows the content to navigate its top-level browsing context; the allow-top-navigation-by-user-activation - keyword behaves similarly but only allows such navigation when - triggered by user activation; and the allow-forms, allow-modals, navigation only when the + browsing context's WindowProxy's [[Window]] value has transient + activation; and the allow-forms, + allow-modals, allow-orientation-lock, allow-pointer-lock, allow-popups, MediaError {

A media element is said to be allowed to play if the user agent and the system allow media playback in the current context.

-

For example, a user agent could require that playback is triggered by user - activation, but an exception could be made to allow playback while For example, a user agent could allow playback only when the media + element's Window object has transient activation, but an + exception could be made to allow playback while muted.

A media element is said to have ended playback when:

@@ -47892,8 +47893,8 @@ ldh-str = < as defined in click
event.

+

To prevent abuse of certain APIs that could be annoying to users (e.g., opening popups or + vibrating phones), user agents allow these APIs only when the user is actively interacting with + the web page or has interacted with the page at least once. This "active interaction" state is + maintained through the mechanisms defined in this section.

-

The user agent should allow the user to manually trigger elements that have an activation - behavior, for instance using keyboard or voice input, or through mouse clicks. When the - user triggers an element with a defined activation behavior in a manner other than - clicking it, the default action of the interaction event must be to fire a click event at the element.

- +

Data model

-

An algorithm is triggered by user - activation if any of the following conditions is true:

+

For the purpose of tracking user activation, each Window W has a + last activation timestamp. This is a number indicating the last time W got + an activation notification. It corresponds to a + DOMHighResTimeStamp value except for two cases: positive infinity + indicates that W has never been activated, while negative infinity indicates that a user activation-gated API has consumed the last user activation of W. The initial value is + positive infinity.

-
+

APIs that are dependent on user activation are classified into three different levels. The + levels are as follows, sorted by their "strength of dependence" on user activation (from weakest + to strongest):

+ +
+
Sticky activation-gated APIs
+

These APIs require the sticky activation state to be true, so they are blocked + until the very first user activation.

+ +
Transient activation-gated APIs
+

These APIs require the transient activation state to be true, but they don't + consume it, so multiple calls are allowed per user + activation until the transient state expires.

+ +
Transient activation-consuming APIs
+

These APIs require the transient activation state to be true, and they + consume user activation in each call to prevent multiple calls per user + activation.

+
+ + + +

Activation behavior of elements

+ +

Certain elements in HTML have an activation behavior, which means that the user + can activate them. This is always caused by a click event.

+ +
+ +

The user agent should allow the user to manually trigger elements that have an activation + behavior, for instance using keyboard or voice input, or through mouse clicks. When the + user triggers an element with a defined activation behavior in a manner other than + clicking it, the default action of the interaction event must be to fire a click event at the element.

+ +