瀏覽代碼

LibWeb: Add String variants of get_element_by_{} in ParentNode

These are required for porting over Document from DeprecatedString to
String. We unfortunately can't port this completely over yet as
ParentNode is included by the Element IDL interface, which has not yet
been ported over from DeprecatedString.
Shannon Booth 1 年之前
父節點
當前提交
9d88e14f20
共有 2 個文件被更改,包括 16 次插入0 次删除
  1. 13 0
      Userland/Libraries/LibWeb/DOM/ParentNode.cpp
  2. 3 0
      Userland/Libraries/LibWeb/DOM/ParentNode.h

+ 13 - 0
Userland/Libraries/LibWeb/DOM/ParentNode.cpp

@@ -120,6 +120,19 @@ JS::NonnullGCPtr<HTMLCollection> ParentNode::children()
     return *m_children;
     return *m_children;
 }
 }
 
 
+JS::NonnullGCPtr<HTMLCollection> ParentNode::get_elements_by_tag_name(FlyString const& qualified_name)
+{
+    return get_elements_by_tag_name(qualified_name.to_deprecated_fly_string());
+}
+
+JS::NonnullGCPtr<HTMLCollection> ParentNode::get_elements_by_tag_name_ns(Optional<String> const& nullable_namespace, FlyString const& local_name)
+{
+    DeprecatedFlyString deprecated_nullable_namespace;
+    if (nullable_namespace.has_value())
+        deprecated_nullable_namespace = nullable_namespace->to_deprecated_string();
+    return get_elements_by_tag_name_ns(deprecated_nullable_namespace, local_name.to_deprecated_fly_string());
+}
+
 // https://dom.spec.whatwg.org/#concept-getelementsbytagname
 // https://dom.spec.whatwg.org/#concept-getelementsbytagname
 // NOTE: This method is only exposed on Document and Element, but is in ParentNode to prevent code duplication.
 // NOTE: This method is only exposed on Document and Element, but is in ParentNode to prevent code duplication.
 JS::NonnullGCPtr<HTMLCollection> ParentNode::get_elements_by_tag_name(DeprecatedFlyString const& qualified_name)
 JS::NonnullGCPtr<HTMLCollection> ParentNode::get_elements_by_tag_name(DeprecatedFlyString const& qualified_name)

+ 3 - 0
Userland/Libraries/LibWeb/DOM/ParentNode.h

@@ -28,6 +28,9 @@ public:
 
 
     JS::NonnullGCPtr<HTMLCollection> children();
     JS::NonnullGCPtr<HTMLCollection> children();
 
 
+    JS::NonnullGCPtr<HTMLCollection> get_elements_by_tag_name(FlyString const&);
+    JS::NonnullGCPtr<HTMLCollection> get_elements_by_tag_name_ns(Optional<String> const&, FlyString const&);
+
     JS::NonnullGCPtr<HTMLCollection> get_elements_by_tag_name(DeprecatedFlyString const&);
     JS::NonnullGCPtr<HTMLCollection> get_elements_by_tag_name(DeprecatedFlyString const&);
     JS::NonnullGCPtr<HTMLCollection> get_elements_by_tag_name_ns(DeprecatedFlyString const&, DeprecatedFlyString const&);
     JS::NonnullGCPtr<HTMLCollection> get_elements_by_tag_name_ns(DeprecatedFlyString const&, DeprecatedFlyString const&);