diff --git a/Userland/Libraries/LibWeb/DOM/Document.idl b/Userland/Libraries/LibWeb/DOM/Document.idl index dcc07f2590c..1516b01b4ea 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.idl +++ b/Userland/Libraries/LibWeb/DOM/Document.idl @@ -71,8 +71,8 @@ interface Document : Node { Element? getElementById(DOMString id); HTMLCollection getElementsByName([FlyString] DOMString name); - HTMLCollection getElementsByTagName(DOMString tagName); - HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName); + HTMLCollection getElementsByTagName([FlyString] DOMString tagName); + HTMLCollection getElementsByTagNameNS([FlyString] DOMString? namespace, [FlyString] DOMString localName); HTMLCollection getElementsByClassName(DOMString className); [SameObject] readonly attribute HTMLCollection applets; diff --git a/Userland/Libraries/LibWeb/DOM/Element.idl b/Userland/Libraries/LibWeb/DOM/Element.idl index fe96e6ad14e..e0484481f41 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.idl +++ b/Userland/Libraries/LibWeb/DOM/Element.idl @@ -60,8 +60,8 @@ interface Element : Node { Element? closest(DOMString selectors); [ImplementedAs=matches] boolean webkitMatchesSelector(DOMString selectors); // legacy alias of .matches - HTMLCollection getElementsByTagName(DOMString tagName); - HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName); + HTMLCollection getElementsByTagName([FlyString] DOMString tagName); + HTMLCollection getElementsByTagNameNS([FlyString] DOMString? namespace, [FlyString] DOMString localName); HTMLCollection getElementsByClassName(DOMString className); [CEReactions] Element? insertAdjacentElement(DOMString where, Element element); // legacy diff --git a/Userland/Libraries/LibWeb/DOM/ParentNode.cpp b/Userland/Libraries/LibWeb/DOM/ParentNode.cpp index 59c5a85dfdd..f32a8b7d271 100644 --- a/Userland/Libraries/LibWeb/DOM/ParentNode.cpp +++ b/Userland/Libraries/LibWeb/DOM/ParentNode.cpp @@ -156,12 +156,11 @@ JS::NonnullGCPtr ParentNode::get_elements_by_tag_name(FlyString // https://dom.spec.whatwg.org/#concept-getelementsbytagnamens // NOTE: This method is only exposed on Document and Element, but is in ParentNode to prevent code duplication. -JS::NonnullGCPtr ParentNode::get_elements_by_tag_name_ns(Optional const& nullable_namespace, FlyString const& local_name) +JS::NonnullGCPtr ParentNode::get_elements_by_tag_name_ns(Optional namespace_, FlyString const& local_name) { // 1. If namespace is the empty string, set it to null. - Optional namespace_; - if (nullable_namespace.has_value() && !nullable_namespace->is_empty()) - namespace_ = nullable_namespace.value(); + if (namespace_ == FlyString {}) + namespace_ = OptionalNone {}; // 2. If both namespace and localName are "*" (U+002A), return a HTMLCollection rooted at root, whose filter matches descendant elements. if (namespace_ == "*" && local_name == "*") { diff --git a/Userland/Libraries/LibWeb/DOM/ParentNode.h b/Userland/Libraries/LibWeb/DOM/ParentNode.h index a8a56571dc5..184f1d93116 100644 --- a/Userland/Libraries/LibWeb/DOM/ParentNode.h +++ b/Userland/Libraries/LibWeb/DOM/ParentNode.h @@ -30,8 +30,7 @@ public: JS::NonnullGCPtr children(); JS::NonnullGCPtr get_elements_by_tag_name(FlyString const&); - // FIXME: This should take an Optional - JS::NonnullGCPtr get_elements_by_tag_name_ns(Optional const&, FlyString const&); + JS::NonnullGCPtr get_elements_by_tag_name_ns(Optional, FlyString const&); WebIDL::ExceptionOr prepend(Vector, String>> const& nodes); WebIDL::ExceptionOr append(Vector, String>> const& nodes);