diff --git a/spec.bs b/spec.bs index 2149413..5c28ec5 100644 --- a/spec.bs +++ b/spec.bs @@ -108,6 +108,7 @@ spec: html; urlPrefix: https://html.spec.whatwg.org/multipage/ text: dom interface; url: concept-element-dom text: accessibility considerations; url: concept-element-accessibility-considerations text: represents; url: represents + text: event handler content attributes which may be specified on any HTML element; url: global-attributes:event-handler-content-attributes urlPrefix: common-dom-interfaces.html text: reflect; url: reflect urlPrefix: embedder-content-other.html @@ -357,6 +358,14 @@ dl, dd { background: white; border: solid #D50606; } + +/* Table styling definitions from https://resources.whatwg.org/standard.css */ +table { border-collapse: collapse; border-style: hidden hidden none hidden; margin: 1.25em 0; } +table thead, table tbody { border-bottom: solid; } +table tbody th { text-align: left; } +table tbody th:first-child { border-left: solid; } +table td, table th { border-left: solid; border-right: solid; border-bottom: solid thin; vertical-align: top; padding: 0.2em; } + @@ -1633,6 +1642,7 @@ Several APIs specific to fenced frames are defined on the {{Fence}} interface. undefined reportEvent(optional ReportEventType event = {}); undefined setReportEventDataForAutomaticBeacons(optional FenceEvent event = {}); sequence<FencedFrameConfig> getNestedConfigs(); + undefined notifyEvent(Event event); }; @@ -1819,6 +1829,47 @@ Several APIs specific to fenced frames are defined on the {{Fence}} interface. +
+ The notifyEvent(|event|) method steps are: + + 1. If [=this=]'s {{Document}} is not [=Document/fully active=], then return. + + 1. Let |navigable| be [=this=]'s [=relevant global object=]'s [=Window/navigable=]. + + 1. If any of the following conditions are met, then throw a {{SecurityError}} {{DOMException}}: + + * |navigable| is not a [=fenced navigable container/fenced navigable=]; + + * |event|'s {{Event/isTrusted}} is false; + + * |event|'s [=Event/dispatch flag=] is unset; + + * |event|'s {{Event/type}} is not "click" + + 1. If [=this=]'s [=relevant global object=] does not have [=transient activation=], then return. + + 1. [=Consume user activation=] for [=this=]'s [=relevant global object=]. + + 1. Let |parentNavigable| be |navigable|'s [=navigable/unfenced parent=]. + + 1. [=Queue a global task=] on the [=DOM manipulation task source=] given |parentNavigable|'s + [=navigable/active window=] to run these steps: + + 1. Perform the [=activation notification=] steps. + + 1. [=Fire an event=] named "[=fencedtreeclick=]" at |navigable|'s + [=fenced navigable container=]. Initialize the event's {{Event/bubbles}} and {{Event/cancelable}} attributes to `true`. When running the + inner event creation steps, set the time to an [=implementation-defined=] value that is consistent across all invocations of this method. + + + /fenced-frame/notify-event-iframe.https.html + /fenced-frame/notify-event-invalid.https.html + /fenced-frame/notify-event-nested-fenced-frames.https.html + /fenced-frame/notify-event-success.https.html + /fenced-frame/notify-event-transient-user-activation.https.html + +
+

New [=request=] [=request/destination=]

The processing model of a <{fencedframe}>'s navigation request deviates from that of the normal @@ -2951,6 +3002,67 @@ modified such that the first step of the algorithm that runs when a user-agent c [=traversable navigable=]'s [=system visibility state=] calls the [=Document/inclusive descendant navigables=] algorithm with [=inclusive-dn-unfenced|unfenced=] set to true. +

Events

+ +

[=onfencedtreeclick=] event handler

+The table in the +event handlers on elements, Document objects, and Window objects section of [[HTML]] is modified to include a new row. + + + + + + + + + + + + + + +
[=Event handler=][=Event handler event type=]
onfencedtreeclick[=fencedtreeclick=]
+ +The {{GlobalEventHandlers}} interface is modified as follows: + +
+  partial interface mixin GlobalEventHandlers {
+    attribute EventHandler onfencedtreeclick;
+  };
+
+ +Additionally, the list of [=event handler content attributes which may be specified on any HTML element=] +in [[HTML]] is modified to include a new row: + +* [=onfencedtreeclick=] + +

[=fencedtreeclick=] event type

+The Events table in the +Index section of [[HTML]] is +modified to include a new row. + + + + + + + + + + + + + + + + + + +
EventInterfaceInteresting targetsDescription
fencedtreeclick{{Event}}Elements + Fired at a <{fencedframe}> element asynchronously after its + [=fenced navigable container/fenced navigable=]'s {{Document}} calls {{Fence/notifyEvent()}} +
+

Interactions with other specifications

Due to the necessarily cross-cutting nature of the <{fencedframe}> element and its interactions with