diff --git a/Libraries/LibWeb/HTML/HTMLDialogElement.cpp b/Libraries/LibWeb/HTML/HTMLDialogElement.cpp index ee8f1e30f7e..e3d9f360693 100644 --- a/Libraries/LibWeb/HTML/HTMLDialogElement.cpp +++ b/Libraries/LibWeb/HTML/HTMLDialogElement.cpp @@ -242,8 +242,11 @@ void HTMLDialogElement::request_close(Optional return_value) // 1. If this does not have an open attribute, then return. if (!has_attribute(AttributeNames::open)) return; - // 2. Assert: this's close watcher is not null. - VERIFY(m_close_watcher); + // ADHOC: 2. If this's close watcher is null, then close the dialog this with returnValue, and return. See https://github.com/whatwg/html/pull/10983 + if (!m_close_watcher) { + close_the_dialog(move(return_value)); + return; + } // 3. Set dialog's enable close watcher for requestClose() to true. // ADHOC: Implemented slightly differently to the spec, as the spec is unnecessarily complex. m_close_watcher->set_enabled(true); diff --git a/Tests/LibWeb/Crash/wpt-import/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose-crash.html b/Tests/LibWeb/Crash/wpt-import/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose-crash.html new file mode 100644 index 00000000000..bfa400a7524 --- /dev/null +++ b/Tests/LibWeb/Crash/wpt-import/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose-crash.html @@ -0,0 +1,11 @@ + + + + +Dialog + +