From c85fb47b1b14490521bec65a4b718b7f25a1b98e Mon Sep 17 00:00:00 2001 From: Luke Warlow Date: Mon, 27 Jan 2025 20:28:20 +0000 Subject: [PATCH 1/2] Add attribute changed steps to dialog element When the dialogs open attribute is removed: 1. Remove dialog from the document's open dialogs list. 2. Destroy and nullify dialog's close watcher This also adds an assertion to the start of 'set the dialog close watcher' that dialog's close watcher is null. --- source | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/source b/source index 213f90acbef..4861fae586c 100644 --- a/source +++ b/source @@ -62084,6 +62084,38 @@ interface HTMLDialogElement : HTMLElement { removedNode's node document's open dialogs list.

+

The following attribute change + steps, given element, localName, oldValue, + value, and namespace are used for dialog elements:

+ +
    +
  1. If namespace is not null, then return.

  2. + +
  3. If localName is not open, then + return.

  4. + +
  5. If value is null:

    + +
      +
    1. Remove element from element's + node document's open dialogs list.

    2. + +
    3. +

      If element's close watcher is not + null, then:

      + +
        +
      1. Destroy element's close watcher.

      2. + +
      3. Set element's close watcher to + null.

      4. +
      +
    4. +
    +
  6. +
+

To show a modal dialog given a dialog element subject:

    @@ -62178,6 +62210,9 @@ interface HTMLDialogElement : HTMLElement { element dialog:

      +
    1. Assert: dialog's close + watcher is null.

    2. +
    3. Set dialog's close watcher to the result of establishing a close watcher given From 376c837f99ab031b60096312fc930e346e335b61 Mon Sep 17 00:00:00 2001 From: Luke Warlow Date: Sun, 2 Feb 2025 22:33:27 +0000 Subject: [PATCH 2/2] Replace assert in set the dialog close watcher with an early return --- source | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source b/source index 4861fae586c..5079500bc10 100644 --- a/source +++ b/source @@ -62210,8 +62210,8 @@ interface HTMLDialogElement : HTMLElement { element dialog:

        -
      1. Assert: dialog's close - watcher is null.

      2. +
      3. If dialog's close watcher is not + null, then return.

      4. Set dialog's close watcher to the