Browse Source

LibWeb: Return HTMLElement for valid custom element tag names

Srikavin Ramkumar 2 years ago
parent
commit
47a466865c
1 changed files with 5 additions and 2 deletions
  1. 5 2
      Userland/Libraries/LibWeb/DOM/ElementFactory.cpp

+ 5 - 2
Userland/Libraries/LibWeb/DOM/ElementFactory.cpp

@@ -7,6 +7,7 @@
 
 #include <LibWeb/DOM/Document.h>
 #include <LibWeb/DOM/ElementFactory.h>
+#include <LibWeb/HTML/CustomElements/CustomElementName.h>
 #include <LibWeb/HTML/HTMLAnchorElement.h>
 #include <LibWeb/HTML/HTMLAreaElement.h>
 #include <LibWeb/HTML/HTMLAudioElement.h>
@@ -291,8 +292,10 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<Element>> create_element(Document& document
     if (lowercase_tag_name == SVG::TagNames::text)
         return MUST_OR_THROW_OOM(realm.heap().allocate<SVG::SVGTextContentElement>(realm, document, move(qualified_name)));
 
-    // FIXME: If name is a valid custom element name, then return HTMLElement.
-
+    // If name is a valid custom element name, then return HTMLElement.
+    if (HTML::is_valid_custom_element_name(local_name)) {
+        return MUST_OR_THROW_OOM(realm.heap().allocate<HTML::HTMLElement>(realm, document, move(qualified_name)));
+    }
     return MUST_OR_THROW_OOM(realm.heap().allocate<HTML::HTMLUnknownElement>(realm, document, move(qualified_name)));
 }