mirror of
https://github.com/zebrajr/ladybird.git
synced 2025-12-06 12:20:00 +01:00
LibWeb: Add fast_is<T> for hotly dynamic_cast'ed things on imdb.com
This commit is contained in:
parent
2fcacd21f5
commit
989f6ddb42
|
|
@ -177,9 +177,11 @@ public:
|
||||||
virtual bool is_svg_script_element() const { return false; }
|
virtual bool is_svg_script_element() const { return false; }
|
||||||
virtual bool is_svg_style_element() const { return false; }
|
virtual bool is_svg_style_element() const { return false; }
|
||||||
virtual bool is_svg_svg_element() const { return false; }
|
virtual bool is_svg_svg_element() const { return false; }
|
||||||
|
virtual bool is_svg_symbol_element() const { return false; }
|
||||||
virtual bool is_svg_use_element() const { return false; }
|
virtual bool is_svg_use_element() const { return false; }
|
||||||
virtual bool is_svg_view_element() const { return false; }
|
virtual bool is_svg_view_element() const { return false; }
|
||||||
virtual bool is_svg_a_element() const { return false; }
|
virtual bool is_svg_a_element() const { return false; }
|
||||||
|
virtual bool is_svg_g_element() const { return false; }
|
||||||
virtual bool is_svg_foreign_object_element() const { return false; }
|
virtual bool is_svg_foreign_object_element() const { return false; }
|
||||||
|
|
||||||
bool in_a_document_tree() const;
|
bool in_a_document_tree() const;
|
||||||
|
|
|
||||||
|
|
@ -108,6 +108,7 @@ public:
|
||||||
virtual bool is_viewport() const { return false; }
|
virtual bool is_viewport() const { return false; }
|
||||||
virtual bool is_svg_box() const { return false; }
|
virtual bool is_svg_box() const { return false; }
|
||||||
virtual bool is_svg_geometry_box() const { return false; }
|
virtual bool is_svg_geometry_box() const { return false; }
|
||||||
|
virtual bool is_svg_clip_box() const { return false; }
|
||||||
virtual bool is_svg_mask_box() const { return false; }
|
virtual bool is_svg_mask_box() const { return false; }
|
||||||
virtual bool is_svg_svg_box() const { return false; }
|
virtual bool is_svg_svg_box() const { return false; }
|
||||||
virtual bool is_svg_graphics_box() const { return false; }
|
virtual bool is_svg_graphics_box() const { return false; }
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
namespace Web::Layout {
|
namespace Web::Layout {
|
||||||
|
|
||||||
class SVGClipBox : public SVGBox {
|
class SVGClipBox final : public SVGBox {
|
||||||
GC_CELL(SVGClipBox, SVGBox);
|
GC_CELL(SVGClipBox, SVGBox);
|
||||||
GC_DECLARE_ALLOCATOR(SVGClipBox);
|
GC_DECLARE_ALLOCATOR(SVGClipBox);
|
||||||
|
|
||||||
|
|
@ -24,6 +24,12 @@ public:
|
||||||
SVG::SVGClipPathElement const& dom_node() const { return as<SVG::SVGClipPathElement>(SVGBox::dom_node()); }
|
SVG::SVGClipPathElement const& dom_node() const { return as<SVG::SVGClipPathElement>(SVGBox::dom_node()); }
|
||||||
|
|
||||||
virtual GC::Ptr<Painting::Paintable> create_paintable() const override;
|
virtual GC::Ptr<Painting::Paintable> create_paintable() const override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual bool is_svg_clip_box() const final { return true; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<>
|
||||||
|
inline bool Node::fast_is<SVGClipBox>() const { return is_svg_clip_box(); }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,18 @@ public:
|
||||||
virtual GC::Ptr<Layout::Node> create_layout_node(GC::Ref<CSS::ComputedProperties>) override;
|
virtual GC::Ptr<Layout::Node> create_layout_node(GC::Ref<CSS::ComputedProperties>) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
virtual bool is_svg_g_element() const final { return true; }
|
||||||
|
|
||||||
SVGGElement(DOM::Document&, DOM::QualifiedName);
|
SVGGElement(DOM::Document&, DOM::QualifiedName);
|
||||||
|
|
||||||
virtual void initialize(JS::Realm&) override;
|
virtual void initialize(JS::Realm&) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace Web::DOM {
|
||||||
|
|
||||||
|
template<>
|
||||||
|
inline bool Node::fast_is<SVG::SVGGElement>() const { return is_svg_g_element(); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@ public:
|
||||||
virtual void apply_presentational_hints(GC::Ref<CSS::CascadedProperties>) const override;
|
virtual void apply_presentational_hints(GC::Ref<CSS::CascadedProperties>) const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
virtual bool is_svg_symbol_element() const final { return true; }
|
||||||
|
|
||||||
SVGSymbolElement(DOM::Document&, DOM::QualifiedName);
|
SVGSymbolElement(DOM::Document&, DOM::QualifiedName);
|
||||||
|
|
||||||
virtual void initialize(JS::Realm&) override;
|
virtual void initialize(JS::Realm&) override;
|
||||||
|
|
@ -36,3 +38,10 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace Web::DOM {
|
||||||
|
|
||||||
|
template<>
|
||||||
|
inline bool Node::fast_is<SVG::SVGSymbolElement>() const { return is_svg_symbol_element(); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user