From de8ec46cd0db848ca5b0ab34e27da1c8adeb1a1f Mon Sep 17 00:00:00 2001
From: Luke Warlow
The following attribute change
+ steps, given element, localName, oldValue,
+ value, and namespace are used for dialog elements:
If namespace is not null, then return.
If localName is not open, then
+ return.
If value is null:
+ +Remove element from element's + node document's open dialogs list.
If element's close watcher is not + null, then:
+ +Destroy element's close watcher.
Set element's close watcher to + null.
To show a modal dialog given a dialog element subject:
Assert: dialog's close + watcher is null.
Set dialog's close watcher to the
result of establishing a close watcher given
From 9d690df33e550787d5ad09393f51a2e22f3a5a75 Mon Sep 17 00:00:00 2001
From: Luke Warlow
Assert: dialog's close - watcher is null.
If dialog's close watcher is not + null, then return.
Set dialog's close watcher to the
From 3ed047ed0f083941d0dd2ef291485a54cfc98d88 Mon Sep 17 00:00:00 2001
From: Luke Warlow Add an Assert: this's node document's open
- dialogs list does not contain
- this. Add this to this's node document's open
- dialogs list. Set the dialog close watcher with this. Set this's previously focused element to the
focused element. If localName is not If value is null: If value is null and oldValue is not null: Assert: element's node document's open
+ dialogs list contains
+ element. Remove element from element's
node document's open dialogs list.open attribute to this, whose
value is the empty string.open, then
return.
+
If value is not null and oldValue is null:
+ +Assert: element's node document's open + dialogs list does not contain + element.
Add element to this's node document's open + dialogs list.
Set the dialog close watcher with element.
To show a modal dialog given a dialog element subject:
Set is modal of subject to true.
Assert: subject's node document's open - dialogs list does not contain - subject.
Add subject to subject's node document's open - dialogs list.
Let subject's node document be blocked by the modal dialog subject.
@@ -62559,8 +62561,6 @@ interface HTMLDialogElement : HTMLElement { already contain subject, then add an element to the top layer given subject.Set the dialog close watcher with subject.
Set subject's previously focused element to the focused element.
Set is modal of subject to false.
Remove subject from subject's - node document's open dialogs list.
If result is not null, then set the returnValue attribute to result.
Queue an element task on the user interaction task source given the
subject element to fire an event named
close at subject.
If subject's close watcher is not null, - then:
- -Destroy subject's close watcher.
Set subject's close watcher to - null.
Assert: element's node document's open - dialogs list contains - element.
Remove element from element's node document's open dialogs list.
If localName is not open, then
return.
If value is null and oldValue is not null:
- -Assert: element's node document's open - dialogs list contains element.
Remove element from element's - node document's open dialogs list.
If element's close watcher is not - null, then:
- -Destroy element's close watcher.
Set element's close watcher to - null.
If value is not null and oldValue is null:
- -Assert: element's node document's open - dialogs list does not contain - element.
Add element to this's node document's open - dialogs list.
If value is null, oldValue is not null, and element is + connected, then run the dialog cleanup steps given + element.
Set the dialog close watcher with element.
If value is not null, oldValue is null, and element is + connected, then run the dialog setup steps given + element.
To show a modal dialog given a dialog element subject:
Set topDocument's autofocus processed flag to true.
The dialog setup steps, given a dialog element subject, are
+ as follows:
Assert: subject's node document's open dialogs + list does not contain subject.
Add subject to subject's node document's open + dialogs list.
Set the dialog close watcher with subject.
The dialog cleanup steps, given a dialog element subject,
+ are as follows:
Assert: subject's node document's open dialogs + list contains element.
Remove subject from subject's + node document's open dialogs list.
If subject's close watcher is not null, + then:
+ +Destroy subject's close watcher.
Set subject's close watcher to + null.
"Light dismiss" means that clicking outside of a If removedNode's close watcher is not
- null, then: If removedNode has an Destroy removedNode's close watcher. Set removedNode's close watcher to
- null. Run the dialog cleanup steps given removedNode.dialog element whose
Date: Tue, 25 Feb 2025 16:03:41 +0000
Subject: [PATCH 06/32] Call dialog cleanup steps from dialog removing steps
---
source | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/source b/source
index c100e671e02..6705dd92c59 100644
--- a/source
+++ b/source
@@ -62430,15 +62430,11 @@ interface HTMLDialogElement : HTMLElement {
open
+ attribute:
-
Set is modal of removedNode to false.
Remove removedNode from - removedNode's node document's open dialogs list.
The following attribute change
From 6e790b299c6ec3b3da60907faedaef141c7e68a7 Mon Sep 17 00:00:00 2001
From: Luke Warlow The If insertedNode has an Run the dialog setup steps given insertedNode. The If removedNode has an If removedNode has an Run the dialog cleanup steps given removedNode.
+
+
+ dialog HTML element insertion steps, given
+ insertedNode, are:
+
+
open attribute:
+
+ dialog HTML element removing steps, given removedNode
and oldParent, are:
open
- attribute:open attribute:
If dialog's close watcher is not - null, then return.
Assert: dialog's close + watcher is null.
Set dialog's close watcher to the
From f4fb3cf869ca559120dd7733cad8373e67a44290 Mon Sep 17 00:00:00 2001
From: Luke Warlow
Assert: dialog's close - watcher is null.
If dialog's close watcher is not + null, then return.
Set dialog's close watcher to the
From 9df1928c7429d26f45efe75990654d993e935b10 Mon Sep 17 00:00:00 2001
From: Luke Warlow If insertedNode has an If insertedNode is connected and insertedNode has an Run the dialog setup steps given insertedNode. If insertedNode is connected and insertedNode has an If insertedNode has an Run the dialog setup steps given insertedNode. If localName is not If value is null, oldValue is not null, and element is
- connected, then run the dialog cleanup steps given
- element. If value is null, and oldValue is not null, then run the
+ dialog cleanup steps given element. If value is not null, oldValue is null, and element is
- connected, then run the dialog setup steps given
- element. If value is not null, and oldValue is null, then run the
+ dialog setup steps given element. To show a modal dialog given a
open attribute:open attribute:
open attribute:open attribute:
open, then
return.dialog element subject:
Set the dialog close watcher with subject.
If subject is not connected, return.
Assert: subject's node document's open dialogs list does not contain subject.
Add subject to subject's node document's open dialogs list.
Set the dialog close watcher with subject.
The dialog cleanup steps, given a dialog element subject,
are as follows:
Assert: subject's node document's open dialogs - list contains element.
Remove subject from subject's node document's open dialogs list.
If subject's close watcher is not null, - then:
- -Destroy subject's close watcher.
Set subject's close watcher to - null.
Remove subject from subject's node document's open dialogs list.
If subject's close watcher is not null,
+ and subject does not have an open attribute,
+ then:
Destroy subject's close watcher.
Set subject's close watcher to + null.
The dialog HTML element insertion steps, given
insertedNode, are:
Add an open attribute to this, whose
value is the empty string.
Assert: this's close + watcher is not null.
Set this's previously focused element to the focused element.
Add an open attribute to subject, whose
value is the empty string.
Assert: subject's close + watcher is not null.
Set is modal of subject to true.
If dialog's close watcher is not null, then return.
Assert: dialog has an open
+ attribute and dialog's active document is fully active.
Set dialog's close watcher to the result of establishing a close watcher given @@ -62813,15 +62823,18 @@ interface HTMLDialogElement : HTMLElement { as follows:
Set the dialog close watcher with subject.
Assert: subject has an open
+ attribute.
If subject is not connected, return.
Assert: subject is connected.
Assert: subject's node document's open dialogs list does not contain subject.
Add subject to subject's node document's open dialogs list.
Set the dialog close watcher with subject.
The dialog cleanup steps, given a If insertedNode has an If insertedNode has an Run the dialog setup steps given insertedNode. If value is null, and oldValue is not null, then run the
dialog cleanup steps given element. If element is not connected, return. If value is not null, and oldValue is null, then run the
dialog setup steps given element. The dialog element subject,
From 9bf69d79ba64bd76ec7cca39172e7adf61ba9036 Mon Sep 17 00:00:00 2001
From: Keith Cirkel
open attribute:open attribute
+ and is connected:
From 7e7905fec333b4afe0729f29e6671ab00bbad372 Mon Sep 17 00:00:00 2001
From: Keith Cirkel requestClose() method steps are to request to close this's internal
- close watcher with false.dialog element subject:
If subject is connected and subject's + active document is fully active, then + request to close subject's + internal close watcher with false.
The If insertedNode has an If insertedNode has an Run the dialog setup steps given insertedNode.close()
method steps are to close this's
From d4081cf9b255c8dd2133f361e7b16343c45e44fd Mon Sep 17 00:00:00 2001
From: Keith Cirkel
open attribute
- and is connected:open attribute and
+ is connected:
Assert: dialog has an open
- attribute and dialog's active document is fully active.
If subject is connected and subject's - active document is fully active, then + node document is fully active, then request to close subject's internal close watcher with false.
If this does not have an open
attribute, then return.
If this is not connected or subject's + node document is not fully active, then return.
Assert: this's close watcher is not null.
The requestClose() method steps given a
- dialog element subject:
If subject is connected and subject's - node document is fully active, then - request to close subject's - internal close watcher with false.
The If value is null, and oldValue is not null, then run the
dialog cleanup steps given element. If element is not connected, return. If element is not connected, then return. If value is not null, and oldValue is null, then run the
dialog setup steps given element.close()
method steps are to close this's
From 268ba08aa2e36e6440cf4d19077df29672be1615 Mon Sep 17 00:00:00 2001
From: Keith Cirkel
If insertedNode has an open attribute and
- is connected:
Run the dialog setup steps given insertedNode.
If insertedNode has an open attribute
+ and is connected, then run the dialog setup steps given
+ insertedNode.
The dialog HTML element removing steps, given removedNode
and oldParent, are:
If removedNode has an open attribute:
Run the dialog cleanup steps given removedNode.
If removedNode has an open attribute,
+ then run the dialog cleanup steps given removedNode.
If removedNode's node document's top layer contains removedNode, then remove an element from
From 383e523670611781d4cde65d3973d540a8ce45f3 Mon Sep 17 00:00:00 2001
From: Keith Cirkel If this does not have an If this is not connected or subject's
+ If this is not connected or this's
node document is not fully active, then return. Assert: this's close
From d9d538d6c1951742bd11d14265b8db0a090bbe87 Mon Sep 17 00:00:00 2001
From: Keith Cirkel If localName is not If value is null, and oldValue is not null, then run the
+ If value is null and oldValue is not null, then run the
dialog cleanup steps given element. If element is not connected, then return. If value is not null, and oldValue is null, then run the
+ If value is not null and oldValue is null, then run the
dialog setup steps given element.open
attribute, then return.open, then
return.
If subject's close watcher is not null, +
If subject's close watcher is not null
and subject does not have an open attribute,
then:
If value is null and oldValue is not null, then run the dialog cleanup steps given element.
If element is not connected, then return.
If element is not connected, then return.
+ +This ensures that the dialog setup steps are not run on nodes that are + disconnected, which would result in a CloseWatcher being established. The dialog cleanup steps + need no such guard.
+If value is not null and oldValue is null, then run the dialog setup steps given element.
If dialog's close watcher is not - null, then return.
Assert: dialog's + close watcher is not null.
Assert: dialog has an open
attribute and dialog's node document is fully active.
If subject's close watcher is not null
- and subject does not have an open attribute,
- then:
Destroy subject's
Date: Tue, 17 Jun 2025 11:43:16 +0100
Subject: [PATCH 27/32] link concepts in note
---
source | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/source b/source
index ce873a75970..3e70f6f9851 100644
--- a/source
+++ b/source
@@ -62485,8 +62485,8 @@ interface HTMLDialogElement : HTMLElement {
If element is not connected, then return. This ensures that the dialog setup steps are not run on nodes that are
- disconnected, which would result in a CloseWatcher being established. The dialog cleanup steps
- need no such guard.CloseWatcher being established. The
+ dialog cleanup steps need no such guard.
If value is not null and oldValue is null, then run the
From fa98a1cac01598f18b2ca869ce5ab889afbac0fa Mon Sep 17 00:00:00 2001
From: Keith Cirkel
If insertedNode's node document is not fully active, + then return.
If insertedNode has an open attribute
and is connected, then run the dialog setup steps given
insertedNode.
If localName is not open, then
return.
If element's node document is not fully active, then + return.
If value is null and oldValue is not null, then run the dialog cleanup steps given element.
If element is not connected, then return.
This ensures that the dialog setup steps are not run on nodes that are
- disconnected, which would result in a CloseWatcher being established. The
+ disconnected, which would result in a close watcher being established. The
dialog cleanup steps need no such guard.
This ensures that the dialog setup steps are not run on nodes that are
disconnected, which would result in a close watcher being established. The
- dialog cleanup steps need no such guard.
If value is not null and oldValue is null, then run the
From 513b7acbdab551a9839839391d01eb32f42d3102 Mon Sep 17 00:00:00 2001
From: Keith Cirkel
If subject's close watcher is not null - and subject, then:
+If subject's close watcher is not + null, then:
Destroy subject's
Date: Thu, 19 Jun 2025 09:46:28 +0100
Subject: [PATCH 32/32] s/code/span
---
source | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source b/source
index 24dad220d0f..5018e21764c 100644
--- a/source
+++ b/source
@@ -62491,7 +62491,7 @@ interface HTMLDialogElement : HTMLElement {
If element is not connected, then return. This ensures that the dialog setup steps are not run on nodes that are
- disconnected, which would result in a close watcher being established. The
+ disconnected, which would result in a close watcher being established. The
dialog cleanup steps need no such guard.