summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Libraries/LibHTML/DOM/HTMLHeadingElement.cpp10
-rw-r--r--Libraries/LibHTML/DOM/HTMLHeadingElement.h9
-rw-r--r--Libraries/LibHTML/Makefile.shared1
-rw-r--r--Libraries/LibHTML/Parser/HTMLParser.cpp12
4 files changed, 31 insertions, 1 deletions
diff --git a/Libraries/LibHTML/DOM/HTMLHeadingElement.cpp b/Libraries/LibHTML/DOM/HTMLHeadingElement.cpp
new file mode 100644
index 0000000000..9b949a8381
--- /dev/null
+++ b/Libraries/LibHTML/DOM/HTMLHeadingElement.cpp
@@ -0,0 +1,10 @@
+#include <LibHTML/DOM/HTMLHeadingElement.h>
+
+HTMLHeadingElement::HTMLHeadingElement(Document& document, const String& tag_name)
+ : HTMLElement(document, tag_name)
+{
+}
+
+HTMLHeadingElement::~HTMLHeadingElement()
+{
+}
diff --git a/Libraries/LibHTML/DOM/HTMLHeadingElement.h b/Libraries/LibHTML/DOM/HTMLHeadingElement.h
new file mode 100644
index 0000000000..38daa33568
--- /dev/null
+++ b/Libraries/LibHTML/DOM/HTMLHeadingElement.h
@@ -0,0 +1,9 @@
+#pragma once
+
+#include <LibHTML/DOM/HTMLElement.h>
+
+class HTMLHeadingElement : public HTMLElement {
+public:
+ HTMLHeadingElement(Document&, const String& tag_name);
+ virtual ~HTMLHeadingElement() override;
+};
diff --git a/Libraries/LibHTML/Makefile.shared b/Libraries/LibHTML/Makefile.shared
index bb2e2ed0b4..efa0f8ccd3 100644
--- a/Libraries/LibHTML/Makefile.shared
+++ b/Libraries/LibHTML/Makefile.shared
@@ -4,6 +4,7 @@ LIBHTML_OBJS = \
DOM/Element.o \
DOM/HTMLElement.o \
DOM/HTMLAnchorElement.o \
+ DOM/HTMLHeadingElement.o \
DOM/Document.o \
DOM/Text.o \
CSS/Selector.o \
diff --git a/Libraries/LibHTML/Parser/HTMLParser.cpp b/Libraries/LibHTML/Parser/HTMLParser.cpp
index 0e31bda194..d01df0c1de 100644
--- a/Libraries/LibHTML/Parser/HTMLParser.cpp
+++ b/Libraries/LibHTML/Parser/HTMLParser.cpp
@@ -2,6 +2,7 @@
#include <AK/StringBuilder.h>
#include <LibHTML/DOM/Element.h>
#include <LibHTML/DOM/HTMLAnchorElement.h>
+#include <LibHTML/DOM/HTMLHeadingElement.h>
#include <LibHTML/DOM/Text.h>
#include <LibHTML/Parser/HTMLParser.h>
#include <ctype.h>
@@ -9,8 +10,17 @@
static NonnullRefPtr<Element> create_element(Document& document, const String& tag_name)
{
- if (tag_name.to_lowercase() == "a")
+ auto lowercase_tag_name = tag_name.to_lowercase();
+ if (lowercase_tag_name == "a")
return adopt(*new HTMLAnchorElement(document, tag_name));
+ if (lowercase_tag_name == "h1"
+ || lowercase_tag_name == "h2"
+ || lowercase_tag_name == "h3"
+ || lowercase_tag_name == "h4"
+ || lowercase_tag_name == "h5"
+ || lowercase_tag_name == "h6") {
+ return adopt(*new HTMLHeadingElement(document, tag_name));
+ }
return adopt(*new Element(document, tag_name));
}