LibWeb: Add more fast_is<T> helpers for DOM::Node subclasses

This commit is contained in:
Andreas Kling 2025-04-18 10:27:59 +02:00 committed by Andreas Kling
commit aecb144df0
Notes: github-actions[bot] 2025-04-18 12:47:31 +00:00
10 changed files with 68 additions and 1 deletions

View file

@ -25,6 +25,8 @@ public:
private:
HTMLAreaElement(DOM::Document&, DOM::QualifiedName);
virtual bool is_html_area_element() const override { return true; }
virtual void initialize(JS::Realm&) override;
virtual void visit_edges(Cell::Visitor&) override;
@ -59,3 +61,8 @@ private:
};
}
namespace Web::DOM {
template<>
inline bool Node::fast_is<HTML::HTMLAreaElement>() const { return is_html_area_element(); }
}

View file

@ -54,7 +54,14 @@ private:
virtual void initialize(JS::Realm&) override;
virtual void visit_edges(Cell::Visitor&) override;
virtual bool is_html_fieldset_element() const override { return true; }
GC::Ptr<DOM::HTMLCollection> m_elements;
};
}
namespace Web::DOM {
template<>
inline bool Node::fast_is<HTML::HTMLFieldSetElement>() const { return is_html_fieldset_element(); }
}

View file

@ -24,6 +24,8 @@ public:
private:
HTMLFrameSetElement(DOM::Document&, DOM::QualifiedName);
virtual bool is_html_frameset_element() const override { return true; }
virtual void adjust_computed_style(CSS::ComputedProperties&) override;
virtual void initialize(JS::Realm&) override;
@ -37,3 +39,8 @@ private:
};
}
namespace Web::DOM {
template<>
inline bool Node::fast_is<HTML::HTMLFrameSetElement>() const { return is_html_frameset_element(); }
}

View file

@ -20,7 +20,13 @@ public:
private:
HTMLHeadElement(DOM::Document&, DOM::QualifiedName);
virtual bool is_html_head_element() const final { return true; }
virtual void initialize(JS::Realm&) override;
};
}
namespace Web::DOM {
template<>
inline bool Node::fast_is<HTML::HTMLHeadElement>() const { return is_html_head_element(); }
}

View file

@ -69,3 +69,8 @@ private:
void run_iframe_load_event_steps(HTML::HTMLIFrameElement&);
}
namespace Web::DOM {
template<>
inline bool Node::fast_is<HTML::HTMLIFrameElement>() const { return is_html_iframe_element(); }
}

View file

@ -182,6 +182,8 @@ protected:
private:
friend SourceElementSelector;
virtual bool is_html_media_element() const final { return true; }
struct EntireResource { };
using ByteRange = Variant<EntireResource>; // FIXME: This will need to include "until end" and an actual byte range.
@ -324,3 +326,8 @@ private:
};
}
namespace Web::DOM {
template<>
inline bool Node::fast_is<HTML::HTMLMediaElement>() const { return is_html_media_element(); }
}

View file

@ -23,8 +23,14 @@ public:
private:
HTMLTitleElement(DOM::Document&, DOM::QualifiedName);
virtual bool is_html_title_element() const override { return true; }
virtual void initialize(JS::Realm&) override;
virtual void children_changed(ChildrenChangedMetadata const*) override;
};
}
namespace Web::DOM {
template<>
inline bool Node::fast_is<HTML::HTMLTitleElement>() const { return is_html_title_element(); }
}