diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.cpp index f283602cc66..9c154d2e120 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.cpp @@ -22,4 +22,34 @@ void HTMLDialogElement::initialize(JS::Realm& realm) set_prototype(&Bindings::ensure_web_prototype(realm, "HTMLDialogElement")); } +// https://html.spec.whatwg.org/multipage/interactive-elements.html#dom-dialog-show +void HTMLDialogElement::show() +{ + dbgln("(STUBBED) HTMLDialogElement::show()"); +} + +// https://html.spec.whatwg.org/multipage/interactive-elements.html#dom-dialog-showmodal +void HTMLDialogElement::show_modal() +{ + dbgln("(STUBBED) HTMLDialogElement::show_modal()"); +} + +// https://html.spec.whatwg.org/multipage/interactive-elements.html#dom-dialog-close +void HTMLDialogElement::close(Optional) +{ + dbgln("(STUBBED) HTMLDialogElement::close()"); +} + +// https://html.spec.whatwg.org/multipage/interactive-elements.html#dom-dialog-returnvalue +String HTMLDialogElement::return_value() const +{ + return m_return_value; +} + +// https://html.spec.whatwg.org/multipage/interactive-elements.html#dom-dialog-returnvalue +void HTMLDialogElement::set_return_value(String return_value) +{ + m_return_value = move(return_value); +} + } diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.h b/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.h index 87d12bd7a04..0553db3f6d3 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.h +++ b/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.h @@ -17,6 +17,13 @@ class HTMLDialogElement final : public HTMLElement { public: virtual ~HTMLDialogElement() override; + String return_value() const; + void set_return_value(String); + + void show(); + void show_modal(); + void close(Optional return_value); + // https://www.w3.org/TR/html-aria/#el-dialog virtual Optional default_role() const override { return ARIA::Role::dialog; } @@ -24,6 +31,8 @@ private: HTMLDialogElement(DOM::Document&, DOM::QualifiedName); virtual void initialize(JS::Realm&) override; + + String m_return_value; }; } diff --git a/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl index 98ed8271e40..f83f8f8ae07 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl +++ b/Userland/Libraries/LibWeb/HTML/HTMLDialogElement.idl @@ -7,5 +7,9 @@ interface HTMLDialogElement : HTMLElement { [HTMLConstructor] constructor(); [CEReactions, Reflect] attribute boolean open; + attribute DOMString returnValue; + [CEReactions] undefined show(); + [CEReactions] undefined showModal(); + [CEReactions] undefined close(optional DOMString returnValue); };