mirror of
https://github.com/RGBCube/serenity
synced 2025-05-30 23:48:11 +00:00
LibWeb: Remove more hand-rolled type information :^)
Hoo boy, we've really accumulated a lot of this stuff.
This commit is contained in:
parent
d2613403e0
commit
3bb0cb2202
15 changed files with 5 additions and 40 deletions
|
@ -33,7 +33,7 @@ namespace Bindings {
|
||||||
|
|
||||||
EventWrapper* wrap(JS::GlobalObject& global_object, DOM::Event& event)
|
EventWrapper* wrap(JS::GlobalObject& global_object, DOM::Event& event)
|
||||||
{
|
{
|
||||||
if (event.is_mouse_event())
|
if (is<UIEvents::MouseEvent>(event))
|
||||||
return static_cast<MouseEventWrapper*>(wrap_impl(global_object, static_cast<UIEvents::MouseEvent&>(event)));
|
return static_cast<MouseEventWrapper*>(wrap_impl(global_object, static_cast<UIEvents::MouseEvent&>(event)));
|
||||||
return static_cast<EventWrapper*>(wrap_impl(global_object, event));
|
return static_cast<EventWrapper*>(wrap_impl(global_object, event));
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include <LibWeb/DOM/Element.h>
|
#include <LibWeb/DOM/Element.h>
|
||||||
#include <LibWeb/DOM/Text.h>
|
#include <LibWeb/DOM/Text.h>
|
||||||
#include <LibWeb/HTML/AttributeNames.h>
|
#include <LibWeb/HTML/AttributeNames.h>
|
||||||
|
#include <LibWeb/HTML/HTMLElement.h>
|
||||||
|
|
||||||
namespace Web::SelectorEngine {
|
namespace Web::SelectorEngine {
|
||||||
|
|
||||||
|
@ -86,7 +87,7 @@ static bool matches(const CSS::Selector::SimpleSelector& component, const DOM::E
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
case CSS::Selector::SimpleSelector::PseudoClass::Root:
|
case CSS::Selector::SimpleSelector::PseudoClass::Root:
|
||||||
if (!element.is_html_element())
|
if (!is<HTML::HTMLElement>(element))
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ void Event::append_to_path(EventTarget& invocation_target, RefPtr<EventTarget> s
|
||||||
|
|
||||||
if (is<Node>(invocation_target)) {
|
if (is<Node>(invocation_target)) {
|
||||||
auto& invocation_target_node = downcast<Node>(invocation_target);
|
auto& invocation_target_node = downcast<Node>(invocation_target);
|
||||||
if (invocation_target_node.root()->is_shadow_root())
|
if (is<ShadowRoot>(invocation_target_node.root()))
|
||||||
invocation_target_in_shadow_tree = true;
|
invocation_target_in_shadow_tree = true;
|
||||||
if (is<ShadowRoot>(invocation_target_node)) {
|
if (is<ShadowRoot>(invocation_target_node)) {
|
||||||
auto& invocation_target_shadow_root = downcast<ShadowRoot>(invocation_target_node);
|
auto& invocation_target_shadow_root = downcast<ShadowRoot>(invocation_target_node);
|
||||||
|
|
|
@ -149,9 +149,6 @@ public:
|
||||||
m_stop_immediate_propagation = true;
|
m_stop_immediate_propagation = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool is_ui_event() const { return false; }
|
|
||||||
virtual bool is_mouse_event() const { return false; }
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
explicit Event(const FlyString& type)
|
explicit Event(const FlyString& type)
|
||||||
: m_type(type)
|
: m_type(type)
|
||||||
|
|
|
@ -57,7 +57,7 @@ static EventTarget* retarget(EventTarget* left, [[maybe_unused]] EventTarget* ri
|
||||||
|
|
||||||
auto* left_node = downcast<Node>(left);
|
auto* left_node = downcast<Node>(left);
|
||||||
auto* left_root = left_node->root();
|
auto* left_root = left_node->root();
|
||||||
if (!left_root->is_shadow_root())
|
if (!is<ShadowRoot>(left_root))
|
||||||
return left;
|
return left;
|
||||||
|
|
||||||
// FIXME: If right is a node and left’s root is a shadow-including inclusive ancestor of right, return left.
|
// FIXME: If right is a node and left’s root is a shadow-including inclusive ancestor of right, return left.
|
||||||
|
|
|
@ -63,9 +63,6 @@ public:
|
||||||
|
|
||||||
const Vector<EventListenerRegistration>& listeners() const { return m_listeners; }
|
const Vector<EventListenerRegistration>& listeners() const { return m_listeners; }
|
||||||
|
|
||||||
virtual bool is_node() const { return false; }
|
|
||||||
virtual bool is_window() const { return false; }
|
|
||||||
|
|
||||||
Function<void(const Event&)> activation_behaviour;
|
Function<void(const Event&)> activation_behaviour;
|
||||||
|
|
||||||
// NOTE: These only exist for checkbox and radio input elements.
|
// NOTE: These only exist for checkbox and radio input elements.
|
||||||
|
|
|
@ -77,10 +77,6 @@ public:
|
||||||
bool is_document_fragment() const { return type() == NodeType::DOCUMENT_FRAGMENT_NODE; }
|
bool is_document_fragment() const { return type() == NodeType::DOCUMENT_FRAGMENT_NODE; }
|
||||||
bool is_parent_node() const { return is_element() || is_document() || is_document_fragment(); }
|
bool is_parent_node() const { return is_element() || is_document() || is_document_fragment(); }
|
||||||
bool is_slottable() const { return is_element() || is_text(); }
|
bool is_slottable() const { return is_element() || is_text(); }
|
||||||
virtual bool is_svg_element() const { return false; }
|
|
||||||
virtual bool is_shadow_root() const { return false; }
|
|
||||||
|
|
||||||
virtual bool is_node() const final { return true; }
|
|
||||||
|
|
||||||
virtual bool is_editable() const;
|
virtual bool is_editable() const;
|
||||||
|
|
||||||
|
@ -103,9 +99,6 @@ public:
|
||||||
|
|
||||||
String child_text_content() const;
|
String child_text_content() const;
|
||||||
|
|
||||||
virtual bool is_html_element() const { return false; }
|
|
||||||
virtual bool is_unknown_html_element() const { return false; }
|
|
||||||
|
|
||||||
Node* root();
|
Node* root();
|
||||||
const Node* root() const
|
const Node* root() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -42,9 +42,6 @@ public:
|
||||||
bool available_to_element_internals() const { return m_available_to_element_internals; }
|
bool available_to_element_internals() const { return m_available_to_element_internals; }
|
||||||
void set_available_to_element_internals(bool available_to_element_internals) { m_available_to_element_internals = available_to_element_internals; }
|
void set_available_to_element_internals(bool available_to_element_internals) { m_available_to_element_internals = available_to_element_internals; }
|
||||||
|
|
||||||
// ^Node
|
|
||||||
virtual bool is_shadow_root() const override { return true; }
|
|
||||||
|
|
||||||
// ^EventTarget
|
// ^EventTarget
|
||||||
virtual EventTarget* get_parent(const Event&) override;
|
virtual EventTarget* get_parent(const Event&) override;
|
||||||
|
|
||||||
|
|
|
@ -79,8 +79,6 @@ public:
|
||||||
|
|
||||||
HighResolutionTime::Performance& performance() { return *m_performance; }
|
HighResolutionTime::Performance& performance() { return *m_performance; }
|
||||||
|
|
||||||
virtual bool is_window() const override { return true; }
|
|
||||||
|
|
||||||
const Event* current_event() const { return m_current_event; }
|
const Event* current_event() const { return m_current_event; }
|
||||||
void set_current_event(Event* event) { m_current_event = event; }
|
void set_current_event(Event* event) { m_current_event = event; }
|
||||||
|
|
||||||
|
|
|
@ -49,8 +49,6 @@ public:
|
||||||
bool cannot_navigate() const;
|
bool cannot_navigate() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual bool is_html_element() const final { return true; }
|
|
||||||
|
|
||||||
enum class ContentEditableState {
|
enum class ContentEditableState {
|
||||||
True,
|
True,
|
||||||
False,
|
False,
|
||||||
|
|
|
@ -36,9 +36,6 @@ public:
|
||||||
|
|
||||||
HTMLUnknownElement(DOM::Document&, const QualifiedName& qualified_name);
|
HTMLUnknownElement(DOM::Document&, const QualifiedName& qualified_name);
|
||||||
virtual ~HTMLUnknownElement() override;
|
virtual ~HTMLUnknownElement() override;
|
||||||
|
|
||||||
private:
|
|
||||||
virtual bool is_unknown_html_element() const final { return true; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,13 +34,8 @@ class SVGElement : public DOM::Element {
|
||||||
public:
|
public:
|
||||||
using WrapperType = Bindings::SVGElementWrapper;
|
using WrapperType = Bindings::SVGElementWrapper;
|
||||||
|
|
||||||
virtual bool is_graphics_element() const { return false; }
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
SVGElement(DOM::Document&, const QualifiedName& qualified_name);
|
SVGElement(DOM::Document&, const QualifiedName& qualified_name);
|
||||||
|
|
||||||
private:
|
|
||||||
virtual bool is_svg_element() const final { return true; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,9 +49,6 @@ protected:
|
||||||
Optional<Gfx::Color> m_fill_color;
|
Optional<Gfx::Color> m_fill_color;
|
||||||
Optional<Gfx::Color> m_stroke_color;
|
Optional<Gfx::Color> m_stroke_color;
|
||||||
Optional<float> m_stroke_width;
|
Optional<float> m_stroke_width;
|
||||||
|
|
||||||
private:
|
|
||||||
virtual bool is_graphics_element() const final { return true; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,8 +49,6 @@ protected:
|
||||||
MouseEvent(const FlyString& event_name, i32 offset_x, i32 offset_y);
|
MouseEvent(const FlyString& event_name, i32 offset_x, i32 offset_y);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual bool is_mouse_event() const override { return true; }
|
|
||||||
|
|
||||||
void set_event_characteristics();
|
void set_event_characteristics();
|
||||||
|
|
||||||
i32 m_offset_x { 0 };
|
i32 m_offset_x { 0 };
|
||||||
|
|
|
@ -41,9 +41,6 @@ protected:
|
||||||
: Event(event_name)
|
: Event(event_name)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
|
||||||
virtual bool is_ui_event() const final { return true; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue