diff --git a/Libraries/LibHTML/DOM/Document.h b/Libraries/LibHTML/DOM/Document.h index 2b3c10e9bd..66a64e92aa 100644 --- a/Libraries/LibHTML/DOM/Document.h +++ b/Libraries/LibHTML/DOM/Document.h @@ -23,6 +23,8 @@ public: void add_sheet(const StyleSheet& sheet) { m_sheets.append(sheet); } const NonnullRefPtrVector& stylesheets() const { return m_sheets; } + virtual String tag_name() const override { return "#document"; } + private: OwnPtr m_style_resolver; NonnullRefPtrVector m_sheets; diff --git a/Libraries/LibHTML/DOM/Element.h b/Libraries/LibHTML/DOM/Element.h index beb5618bd8..1b2d2b0ce7 100644 --- a/Libraries/LibHTML/DOM/Element.h +++ b/Libraries/LibHTML/DOM/Element.h @@ -26,7 +26,7 @@ public: explicit Element(const String& tag_name); virtual ~Element() override; - const String& tag_name() const { return m_tag_name; } + virtual String tag_name() const override { return m_tag_name; } String attribute(const String& name) const; void set_attribute(const String& name, const String& value); diff --git a/Libraries/LibHTML/DOM/Node.h b/Libraries/LibHTML/DOM/Node.h index c26ed8a5aa..506da734a5 100644 --- a/Libraries/LibHTML/DOM/Node.h +++ b/Libraries/LibHTML/DOM/Node.h @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -30,6 +31,8 @@ public: RefPtr create_layout_node(const StyleResolver&, const StyleProperties* parent_properties) const; RefPtr create_layout_tree(const StyleResolver&, const StyleProperties* parent_properties) const; + virtual String tag_name() const = 0; + protected: explicit Node(NodeType); diff --git a/Libraries/LibHTML/DOM/Text.h b/Libraries/LibHTML/DOM/Text.h index 33b689a4b5..d09ab12740 100644 --- a/Libraries/LibHTML/DOM/Text.h +++ b/Libraries/LibHTML/DOM/Text.h @@ -10,6 +10,8 @@ public: const String& data() const { return m_data; } + virtual String tag_name() const override { return "#text"; } + private: String m_data; };