diff --git a/source b/source
index 6924fd9e34a..6165ad6d155 100644
--- a/source
+++ b/source
@@ -29189,7 +29189,7 @@ interface HTMLSourceElement : HTMLElement {
data-x="dom-source-src">src, type
, srcset
, sizes
and sizes
, and media
must reflect the respective
content attributes of the same name.
The alt
, src
, srcset
and srcset
, and sizes
IDL attributes must
reflect the respective content attributes of the same name.
The timelines used by the objects returned by the buffered
, seekable
and
+ data-x="dom-media-buffered">buffered, seekable
, and
played
IDL attributes of media
elements must be that element's media timeline.
The cloning steps for textarea
elements given node, copy, and subtree are to propagate the raw value and dirty
- value flag from node to node.
The children changed steps for textarea
elements must, if the
element's dirty value flag is false, set the element's
@@ -56260,7 +56260,7 @@ interface HTMLLegendElement : HTMLElement {
default value. If it is false, value mirrors the default
value. If it is true, the default value is ignored.
input
, textarea
and select
elements have a
+
input
, textarea
, and select
elements have a
user validity boolean. It is initially set to false.
To define the behavior of constraint validation in the face of the input
@@ -58425,7 +58425,7 @@ MIT Room 32-G524
data-x="attr-fe-autocomplete-country">country" field(s), then the "country-name
" field(s) must be filled using a
human-readable name for the same country. When a user agent fills in multiple fields at
- once, all fields with the same autofill field name, form owner and
+ once, all fields with the same autofill field name, form owner, and
autofill scope must be filled with the same value.
Suppose a user agent knows of two phone numbers, +1 555 123 1234 and +1 555 666 @@ -61865,11 +61865,18 @@ interface HTMLDialogElement : HTMLElement {
Set this's previously focused element to the focused element.
Let document be this's node document.
Let hideUntil be the result of running topmost popover ancestor - given this, null, and false.
If hideUntil is null, then set hideUntil to this's - node document.
If hideUntil is null, then set hideUntil to the result of running + topmost popover ancestor given this, document's + showing auto popover list, null, and false.
If hideUntil is null, then set hideUntil to + document.
Run hide all popovers until given hideUntil, false, and true.
Set this's previously focused element to the focused element.
Let document be this's node document.
Let hideUntil be the result of running topmost popover ancestor - given this, null, and false.
If hideUntil is null, then set hideUntil to this's - node document.
If hideUntil is null, then set hideUntil to the result of running + topmost popover ancestor given this, document's + showing auto popover list, null, and false.
If hideUntil is null, then set hideUntil to + document.
Run hide all popovers until given hideUntil, false, and true.
:target
For the purposes of the CSS :target
+
For the purposes of the CSS :target
pseudo-class, the Document
's target elements are a list
containing the Document
's target element, if it is not null, or
containing no elements, if it is. SELECTORS
hint
The attribute's missing value default is the DragEventInit : MouseEventInit { data-x="popover-showing-state">showing
-The Document
has a popover pointerdown target, which is an Every Document
has a popover pointerdown target, which is an HTML element or null, initially null.
Every HTML element has a popover invoker, which @@ -85565,6 +85589,9 @@ dictionary DragEventInit : MouseEventInit {
Every HTML element has a popover close watcher, which is a close watcher or null, initially null.
+Every HTML element has an opened in popover + mode, which is a string or null, initially null.
+The following attribute change steps, given element, localName, oldValue, value, and namespace, are used for all HTML elements:
@@ -85635,6 +85662,8 @@ dictionary DragEventInit : MouseEventInit {Let nestedShow be element's popover showing or hiding.
Let fireEvents be the boolean negation of nestedShow.
Set element's popover showing or hiding to true.
Let shouldRestoreFocus be false.
Let originalType be the current state of element's popover
attribute.
Let stackToAppendTo be null.
Let autoAncestor be the result of running the topmost popover + ancestor algorithm given element, document's showing auto + popover list, invoker, and true.
Let hintAncestor be the result of running the topmost popover + ancestor algorithm given element, document's showing hint + popover list, invoker, and true.
If element's popover
attribute is in the auto state, then:
If originalType is the auto state, + then:
Let originalType be the value of element's popover
attribute.
Run close entire popover list given document's showing + hint popover list, shouldRestoreFocus, and fireEvents.
Let ancestor be the result of running the topmost popover - ancestor algorithm given element, invoker, and true.
If ancestor is null, then set ancestor to document.
Run hide all popovers until given - ancestor, false, and not nestedShow.
Set stackToAppendTo to "auto
".
If originalType is the hint state, + then:
+ +If hintAncestor is not null, then:
+ +Run hide all popovers until given + hintAncestor, shouldRestoreFocus, and fireEvents.
Set stackToAppendTo to "hint
".
Otherwise:
+ +Run close entire popover list given document's showing + hint popover list, shouldRestoreFocus, and fireEvents.
If autoAncestor is not null, then:
+ +Run hide all popovers until given + autoAncestor, shouldRestoreFocus, and fireEvents.
Set stackToAppendTo to "auto
".
Otherwise, set stackToAppendTo to "hint
".
If originalType is auto or hint, then:
+ +Assert: stackToAppendTo is not null.
If originalType is not equal to the value of element's DragEventInit : MouseEventInit {
If the result of running topmost auto popover on document is null, - then set shouldRestoreFocus to true.
+If the result of running topmost auto or hint + popover on document is null, then set shouldRestoreFocus to + true.
This ensures that focus is returned to the previously-focused element only for the first popover in a stack.
If stackToAppendTo is "auto
":
Assert: document's showing auto popover list does + not contain element.
Set element's opened in popover mode to "auto
".
Otherwise:
+ +Assert: stackToAppendTo is "hint
".
Assert: document's showing hint popover list does + not contain element.
Set element's opened in popover mode to "hint
".
Set element's popover close watcher to the result of establishing a close watcher given @@ -85846,7 +85966,8 @@ dictionary DragEventInit : MouseEventInit {
If element's popover
attribute is in the auto state, then:
Run hide all popovers until given @@ -85905,6 +86026,8 @@ dictionary DragEventInit : MouseEventInit {
Otherwise, remove an element from the top layer immediately given element.
Set element's opened in popover mode to null.
Set element's popover visibility state to hidden.
Let document be endpoint's node document.
Assert: endpoint is a Document
or
+ endpoint's popover visibility state is showing.
Assert: endpoint is a Document
or
+ endpoint's popover
attribute is in the auto state or endpoint's popover
attribute is in the hint state.
Let closeAllOpenPopovers be an algorithm which performs the following steps:
+If endpoint is a Document
:
Let popover be document's topmost auto - popover.
Run close entire popover list given document's showing + hint popover list, focusPreviousElement, and fireEvents.
While popover is not null:
+Run close entire popover list given document's showing + auto popover list, focusPreviousElement, and fireEvents.
Run the hide popover algorithm given popover, - focusPreviousElement, fireEvents, and false.
Return.
Set popover to document's topmost auto - popover.
If document's showing hint popover list contains + endpoint:
+ +Assert: endpoint's popover
+ attribute is in the hint state.
Run hide popover stack until given endpoint, + document's showing hint popover list, focusPreviousElement, + and fireEvents.
Return.
If endpoint is a Document
, then run
- closeAllOpenPopovers and return.
Run close entire popover list given document's showing hint + popover list, focusPreviousElement, and fireEvents.
Assert: endpoint's popover
- attribute is in the auto state.
If document's showing auto popover list does not contain + endpoint, then return.
Run hide popover stack until given endpoint, document's + showing auto popover list, focusPreviousElement, and + fireEvents.
To hide popover stack until, given an HTML + element element, a list popoverList, a boolean + focusPreviousElement, and a boolean fireEvents:
+ +Let repeatingHide be false.
Let lastToHide be null.
Let foundEndpoint be false.
For each popover of document's showing auto popover - list:
+For each popover in popoverList:
If popover is endpoint, then set foundEndpoint to - true.
If popover is endpoint, then break.
Otherwise, if foundEndpoint is true, then set lastToHide to - popover and break.
Set lastToHide to popover.
If foundEndpoint is false, then run closeAllOpenPopovers and - return.
If lastToHide is null, then return.
While lastToHide is not null and lastToHide's popover - visibility state is showing and - document's showing auto popover list is not empty:
+While lastToHide's popover visibility state is showing:
Run the hide popover algorithm given document's showing - auto popover list's last element, focusPreviousElement, - fireEvents, and false.
Assert: popoverList is not empty.
Run the hide popover algorithm given the last item in + popoverList, focusPreviousElement, fireEvents, and + false.
Set repeatingHide to true if document's showing auto popover - list contains endpoint and document's showing auto popover - list's last element is not endpoint, otherwise false.
Assert: repeatingHide is false or popoverList's last + item is endpoint.
Set repeatingHide to true if popoverList contains + endpoint and popoverList's last item is not endpoint, + otherwise false.
If repeatingHide is true, then set fireEvents to false.
To find the topmost popover ancestor, given a Node
- newPopoverOrTopLayerElement, an HTML element or
- null invoker, and a boolean isPopover, perform the following steps. They
- return an HTML element or null.
The topmost popover ancestor algorithm will return the topmost (latest in the @@ -86134,8 +86285,7 @@ dictionary DragEventInit : MouseEventInit { document.
For each popover of document's showing auto popover - list:
+For each popover of popoverList:
Set popoverPositions[popover] to @@ -86159,10 +86309,35 @@ dictionary DragEventInit : MouseEventInit {
If candidate is null, then return.
Let candidateAncestor be the result of running nearest inclusive open - popover given candidate.
Let okNesting be false.
If candidateAncestor is null, then return.
Let candidateAncestor be null.
While okNesting is false:
+ +Set candidateAncestor to the result of running nearest inclusive open + popover given candidate.
If candidateAncestor is null or popoverPositions does not + contain candidateAncestor, then return.
Assert: candidateAncestor's popover
attribute is not in the manual or none state.
Set okNesting to true if newPopover's popover
attribute is in the hint state or candidateAncestor's popover
attribute is in the auto state.
If okNesting is false, then set candidate to + candidateAncestor's parent in the flat tree.
Let candidatePosition be popoverPositions[candidateAncestor].
Return null.
To find the topmost auto popover given a +
To find the topmost auto or hint popover given a
Document
document, perform the following steps. They return an HTML element or null.
If document's showing hint popover list is not empty, then return + document's showing hint popover list's last element.
If document's showing auto popover list is not empty, then return document's showing auto popover list's last element.
If element's popover
attribute is in the
- no popover state, then:
If element's popover
attribute is in the no popover state, then:
If throwExceptions is true, then throw a @@ -86318,16 +86496,80 @@ dictionary DragEventInit : MouseEventInit {
Let popovers be « ».
For each Element
element in
- document's top layer: if element's popover
attribute is in the auto state and element's popover
- visibility state is showing, then append element to popovers.
For each Element
element in
+ document's top layer:
If all of the following are true:
+ +element is an HTML element;
element's opened in popover mode is "auto
"; and
element's popover visibility state is showing, +
then append element to + popovers.
+Return popovers.
To get the showing hint popover list for a Document
+ document:
Let popovers be « ».
For each Element
element in
+ document's top layer:
If all of the following are true:
+ +element is an HTML element;
element's opened in popover mode is "hint
"; and
element's popover visibility state is showing, +
then append element to + popovers.
+Return popovers.
To close entire popover list given a list popoverList, a + boolean focusPreviouselement, and a boolean fireEvents:
+ +While popoverList is not empty:
+ +Run the hide popover algorithm given popoverList's last item, + focusPreviousElement, fireEvents, and false.
Buttons may have the following content attributes:
@@ -86546,26 +86788,31 @@ dictionary DragEventInit : MouseEventInit {Let invokerPopover be the result of running nearest inclusive target popover for invoker given node.
Let getStackPosition be an algorithm which performs the following steps given - an HTML element popover:
+If the result of getting the popover stack + position given clickedPopover is greater than the result of getting the popover stack position given + invokerPopover, then return clickedPopover.
Let popoverList be popover's node document's - showing auto popover list.
Return invokerPopover.
If popover is in popoverList, then return the index of - popover in popoverList + 1.
To get the popover stack position, given an HTML + element popover:
-Return 0.
Let hintList be popover's node document's showing + hint popover list.
If the result of running getStackPosition given clickedPopover is - greater than the result of running getStackPosition given invokerPopover, - then return clickedPopover.
Let autoList be popover's node document's showing + auto popover list.
Return invokerPopover.
If popover is in hintList, then return the index of + popover in hintList + the size of autoList + 1.
If popover is in autoList, then return the index of + popover in autoList + 1.
Return 0.
To find the nearest inclusive target popover for invoker given a Node
@@ -103348,9 +103595,8 @@ location.href = '#foo';
Assert: navigationType is not null.
Deactivate - displayedDocument, given userNavigationInvolvement, - targetEntry, navigationType, and - afterPotentialUnloads.
The fragment serializing algorithm steps, given an Element
,
- Document
or DocumentFragment
node and a boolean require
+ Document
, or DocumentFragment
node and a boolean require
well-formed, are:
Let algorithm be the HTML fragment parsing algorithm.
Let algorithm be the HTML fragment parsing algorithm.
If context's node document is an XML document, then set algorithm to the XML fragment parsing - algorithm.
If context's node document is an XML + document, then set algorithm to the XML fragment parsing + algorithm.
Let new children be the result of invoking algorithm given - markup, with context set to - context.
Let newChildren be the result of invoking algorithm given + context and markup.
Let fragment be a new DocumentFragment
whose node
- document is context's node document.
Let fragment be a new DocumentFragment
whose node
+ document is context's node document.
Append each Node
in new
- children to fragment (in tree order).
For each node of newChildren, in tree order: append node to fragment.
-This ensures the node document for the new nodes is correct.
-This ensures the node document for the new nodes is correct.
+ -Return fragment.
Return fragment.
Element
's readyState
is CONNECTING
, and the object has one or more event
listeners registered for open
, message
or error
events, there must
+ data-x="event-message">message, or error
events, there must
be a strong reference from the Window
or WorkerGlobalScope
object that
the EventSource
object's constructor was invoked from to the EventSource
object itself.
Let thisDocument be storage's relevant global object's associated Document
.
Let url be thisDocument's URL.
Let url be the serialization of + thisDocument's URL.
Let remoteStorages be all Storage
objects excluding
@@ -122993,7 +123239,7 @@ interface Storage {
The setItem(key,
- value)
method are:
Let oldValue be null.
If this's map[key] does - not exist, then return null.
Set oldValue to this's map[key].
A character reference is said to be consumed as part of an attribute if the return state is either attribute value (double-quoted) state, - attribute value (single-quoted) state or attribute value (unquoted) + attribute value (single-quoted) state, or attribute value (unquoted) state.
When a state says to flush code points consumed as a character reference, it means @@ -134275,84 +134521,63 @@ console.assert(container.firstChild instanceof SuperP);
The following steps form the HTML fragment parsing algorithm. The algorithm
- takes as input an Element
node, referred to as the context element, which gives the context for
- the parser, input, a string to parse, and an optional boolean
- allowDeclarativeShadowRoots (default false). It returns a list of zero or more
- nodes.
Parts marked fragment case in algorithms in the parser section are - parts that only occur if the parser was created for the purposes of this algorithm. The algorithms have been annotated - with such markings for informational purposes only; such markings have no normative weight. If it - is possible for a condition described as a fragment case to occur even when the - parser wasn't created for the purposes of handling this algorithm, then that is an error in the - specification.
+The HTML fragment parsing algorithm, given an Element
node context, string input, and an
+ optional boolean allowDeclarativeShadowRoots (default false) is the following steps.
+ They return a list of zero or more nodes.
Parts marked fragment case in algorithms in the HTML + parser section are parts that only occur if the parser was created for the purposes of this + algorithm. The algorithms have been annotated with such markings for informational purposes only; + such markings have no normative weight. If it is possible for a condition described as a + fragment case to occur even when the parser wasn't created for the purposes of + handling this algorithm, then that is an error in the specification.
Create a new Document
node, and mark it as being an HTML document.
Let document be a Document
node whose type is "html
".
If the
- node document of the context element is in
- quirks mode, then let the Document
be in quirks mode.
- Otherwise, if the
- node document of the context element is in
- limited-quirks mode, then let the Document
be in limited-quirks
- mode. Otherwise, leave the Document
in no-quirks mode.
If context's node document is
+ in quirks mode, then set document's mode to "quirks
".
If allowDeclarativeShadowRoots is true, then set the Document
's
- allow declarative shadow
- roots to true.
Otherwise, if context's node
+ document is in limited-quirks mode, then set document's mode to "limited-quirks
".
Create a new HTML parser, and associate it with the just created
- Document
node.
If allowDeclarativeShadowRoots is true, then set document's allow declarative shadow roots to + true.
Create a new HTML parser, and associate it with document.
Set the state of the HTML parser's tokenization stage as follows, switching on the context element:
title
textarea
style
xmp
iframe
noembed
noframes
script
noscript
plaintext
Let root be a new html
element with no attributes.
Let root be the result of creating an
+ element given document, "html
", and the HTML
+ namespace.
Append the element root to the Document
node created
- above.
Append root to + document.
Set up the parser's stack of open elements so that it contains just the single - element root.
-Set up the HTML parser's stack of open elements so that it + contains just the single element root.
If the context element is a
- template
element, push "in
- template" onto the stack of template insertion modes so that it is the new
- current template insertion mode.
If context is a template
+ element, then push "in template" onto the
+ stack of template insertion modes so that it is the new current template
+ insertion mode.
Create a start tag token whose name is the local name of context and whose attributes are the attributes of context.
-Let this start tag token be the start tag token of the context node, e.g. for the purposes of determining - if it is an HTML integration point.
+Let this start tag token be the start tag token of context; e.g. for the purposes of determining if it is + an HTML integration point.
Set the parser's form
element pointer to the nearest node to the
- context element that is a form
- element (going straight up the ancestor chain, and including the element itself, if it is a
- form
element), if any. (If there is no such form
element, the
- form
element pointer keeps its initial value, null.)
Set the HTML parser's form
element pointer to the
+ nearest node to context that is a
+ form
element (going straight up the ancestor chain, and including the element
+ itself, if it is a form
element), if any. (If there is no such form
+ element, the form
element pointer keeps its initial value,
+ null.)
Place the input into the input stream for the HTML - parser just created. The encoding confidence is irrelevant.
-Place the input into the input stream for the HTML + parser just created. The encoding confidence is irrelevant.
Start the parser and let it run until it has consumed all the characters just inserted into - the input stream.
-Start the HTML parser and let it run until it has consumed all the characters + just inserted into the input stream.
Return the child - nodes of root, in tree order.
-Return root's children, in tree + order.
The XML fragment parsing algorithm either returns a Document
or throws
- a "SyntaxError
" DOMException
. Given a string
- input and a context element context, the
- algorithm is as follows:
The XML fragment parsing algorithm given an Element
node context and a string input, runs the
+ following steps. They return a list of nodes.
Create a new XML parser.
-Create a new XML parser.
Feed the - parser just created the string corresponding to the start tag of the context element, declaring - all the namespace prefixes that are in scope on that element in the DOM, as well as declaring - the default namespace (if any) that is in scope on that element in the DOM.
+Feed the parser just created the string corresponding to the start tag of context, declaring all the namespace prefixes that are + in scope on that element in the DOM, as well as declaring the default namespace (if any) that is + in scope on that element in the DOM.
A namespace prefix is in scope if the DOM lookupNamespaceURI()
method
on the element would return a non-null value for that prefix.
The default namespace is the namespace for which the DOM isDefaultNamespace()
method on the element would return true.
No
- DOCTYPE
is passed to the parser, and therefore no external subset is
- referenced, and therefore no entities will be recognized.
No DOCTYPE
is passed to the parser, and therefore no
+ external subset is referenced, and therefore no entities will be recognized.
Feed the parser just created the string input.
-Feed the parser just created the string corresponding to the end tag of the context element.
-Feed the parser just created the string input.
If there is an XML well-formedness or XML namespace well-formedness error, then throw a
- "SyntaxError
" DOMException
.
Feed the parser just created the string corresponding to the end tag of context.
If the document element of the resulting Document
has any sibling
- nodes, then throw a "SyntaxError
" DOMException
.
If there is an XML well-formedness or XML namespace well-formedness error, then throw a
+ "SyntaxError
" DOMException
.
If the document element of the resulting Document
has any
+ sibling nodes, then throw a "SyntaxError
"
+ DOMException
.
Return the child nodes of the document element of the resulting
- Document
, in tree order.
Return the resulting Document
node's document element's children, in tree order.
frame
, summary
, rules
, and width
, IDL attributes of the
+ for="HTMLTableElement">width
IDL attributes of the
table
element must reflect the respective content attributes of the same
name.
@@ -139459,7 +139659,7 @@ interface HTMLParamElement : HTMLElement {
The vAlign
IDL attribute of the tbody
,
- thead
, and tfoot
element must reflect the elements' thead
, and tfoot
elements must reflect the elements' valign
content attributes.