From a3e485e2d0f524cdca32504eff92d9dbf3d8864b Mon Sep 17 00:00:00 2001 From: teaalltr <11365978+teaalltr@users.noreply.github.com> Date: Thu, 24 Apr 2025 20:09:14 +0200 Subject: [PATCH] LibWeb: Add fast_is for span and div --- Libraries/LibWeb/DOM/Node.h | 2 ++ Libraries/LibWeb/HTML/HTMLDivElement.h | 7 +++++++ Libraries/LibWeb/HTML/HTMLSpanElement.h | 7 +++++++ 3 files changed, 16 insertions(+) diff --git a/Libraries/LibWeb/DOM/Node.h b/Libraries/LibWeb/DOM/Node.h index 221b5f2653a..8487fac5d3f 100644 --- a/Libraries/LibWeb/DOM/Node.h +++ b/Libraries/LibWeb/DOM/Node.h @@ -207,6 +207,8 @@ public: virtual bool is_html_form_element() const { return false; } virtual bool is_html_image_element() const { return false; } virtual bool is_html_iframe_element() const { return false; } + virtual bool is_html_div_element() const { return false; } + virtual bool is_html_span_element() const { return false; } virtual bool is_html_frameset_element() const { return false; } virtual bool is_html_fieldset_element() const { return false; } virtual bool is_navigable_container() const { return false; } diff --git a/Libraries/LibWeb/HTML/HTMLDivElement.h b/Libraries/LibWeb/HTML/HTMLDivElement.h index ddfd0349df1..bede96bfda6 100644 --- a/Libraries/LibWeb/HTML/HTMLDivElement.h +++ b/Libraries/LibWeb/HTML/HTMLDivElement.h @@ -21,6 +21,8 @@ public: // https://www.w3.org/TR/html-aria/#el-div virtual Optional default_role() const override { return ARIA::Role::generic; } + virtual bool is_html_div_element() const override { return true; } + protected: HTMLDivElement(DOM::Document&, DOM::QualifiedName); @@ -31,3 +33,8 @@ private: }; } + +namespace Web::DOM { +template<> +inline bool Node::fast_is() const { return is_html_div_element(); } +} diff --git a/Libraries/LibWeb/HTML/HTMLSpanElement.h b/Libraries/LibWeb/HTML/HTMLSpanElement.h index 316e4254484..0dab62faead 100644 --- a/Libraries/LibWeb/HTML/HTMLSpanElement.h +++ b/Libraries/LibWeb/HTML/HTMLSpanElement.h @@ -21,6 +21,8 @@ public: // https://www.w3.org/TR/html-aria/#el-span virtual Optional default_role() const override { return ARIA::Role::generic; } + virtual bool is_html_span_element() const override { return true; } + private: HTMLSpanElement(DOM::Document&, DOM::QualifiedName); @@ -28,3 +30,8 @@ private: }; } + +namespace Web::DOM { +template<> +inline bool Node::fast_is() const { return is_html_span_element(); } +}