1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-25 19:15:06 +00:00

LibWeb: Provide a default DOM::EventTarget::dispatch_event()

All EventTarget subclasses except Window do the same exact thing in
their overrides, so let's just share an implementation in the base.
This commit is contained in:
Andreas Kling 2021-09-25 23:11:51 +02:00
parent 8dcf4e0346
commit 0ee457dfdf
16 changed files with 8 additions and 43 deletions

View file

@ -37,11 +37,6 @@ bool MediaQueryList::matches() const
return false; return false;
} }
bool MediaQueryList::dispatch_event(NonnullRefPtr<DOM::Event> event)
{
return DOM::EventDispatcher::dispatch(*this, event);
}
JS::Object* MediaQueryList::create_wrapper(JS::GlobalObject& global_object) JS::Object* MediaQueryList::create_wrapper(JS::GlobalObject& global_object)
{ {
return wrap(global_object, *this); return wrap(global_object, *this);

View file

@ -39,7 +39,6 @@ public:
// ^EventTarget // ^EventTarget
virtual void ref_event_target() override { ref(); } virtual void ref_event_target() override { ref(); }
virtual void unref_event_target() override { unref(); } virtual void unref_event_target() override { unref(); }
virtual bool dispatch_event(NonnullRefPtr<DOM::Event>) override;
virtual JS::Object* create_wrapper(JS::GlobalObject&) override; virtual JS::Object* create_wrapper(JS::GlobalObject&) override;
void add_listener(RefPtr<DOM::EventListener> listener); void add_listener(RefPtr<DOM::EventListener> listener);

View file

@ -20,11 +20,6 @@ AbortSignal::~AbortSignal()
{ {
} }
bool AbortSignal::dispatch_event(NonnullRefPtr<Event> event)
{
return EventDispatcher::dispatch(*this, event);
}
JS::Object* AbortSignal::create_wrapper(JS::GlobalObject& global_object) JS::Object* AbortSignal::create_wrapper(JS::GlobalObject& global_object)
{ {
return wrap(global_object, *this); return wrap(global_object, *this);

View file

@ -49,7 +49,6 @@ public:
// ^EventTarget // ^EventTarget
virtual void ref_event_target() override { ref(); } virtual void ref_event_target() override { ref(); }
virtual void unref_event_target() override { unref(); } virtual void unref_event_target() override { unref(); }
virtual bool dispatch_event(NonnullRefPtr<Event>) override;
virtual JS::Object* create_wrapper(JS::GlobalObject&) override; virtual JS::Object* create_wrapper(JS::GlobalObject&) override;
private: private:

View file

@ -11,6 +11,7 @@
#include <LibWeb/Bindings/ScriptExecutionContext.h> #include <LibWeb/Bindings/ScriptExecutionContext.h>
#include <LibWeb/DOM/Document.h> #include <LibWeb/DOM/Document.h>
#include <LibWeb/DOM/Event.h> #include <LibWeb/DOM/Event.h>
#include <LibWeb/DOM/EventDispatcher.h>
#include <LibWeb/DOM/EventListener.h> #include <LibWeb/DOM/EventListener.h>
#include <LibWeb/DOM/EventTarget.h> #include <LibWeb/DOM/EventTarget.h>
#include <LibWeb/DOM/Window.h> #include <LibWeb/DOM/Window.h>
@ -147,4 +148,10 @@ void EventTarget::set_event_handler_attribute(FlyString const& name, HTML::Event
target->add_event_listener(name, listener.release_nonnull()); target->add_event_listener(name, listener.release_nonnull());
} }
} }
bool EventTarget::dispatch_event(NonnullRefPtr<Event> event)
{
return EventDispatcher::dispatch(*this, move(event));
}
} }

View file

@ -31,7 +31,7 @@ public:
void remove_from_event_listener_list(NonnullRefPtr<EventListener>); void remove_from_event_listener_list(NonnullRefPtr<EventListener>);
virtual bool dispatch_event(NonnullRefPtr<Event>) = 0; virtual bool dispatch_event(NonnullRefPtr<Event>);
ExceptionOr<bool> dispatch_event_binding(NonnullRefPtr<Event>); ExceptionOr<bool> dispatch_event_binding(NonnullRefPtr<Event>);
virtual JS::Object* create_wrapper(JS::GlobalObject&) = 0; virtual JS::Object* create_wrapper(JS::GlobalObject&) = 0;

View file

@ -163,11 +163,6 @@ bool Node::is_link() const
return enclosing_link_element(); return enclosing_link_element();
} }
bool Node::dispatch_event(NonnullRefPtr<Event> event)
{
return EventDispatcher::dispatch(*this, event);
}
String Node::child_text_content() const String Node::child_text_content() const
{ {
if (!is<ParentNode>(*this)) if (!is<ParentNode>(*this))

View file

@ -51,7 +51,6 @@ public:
// ^EventTarget // ^EventTarget
virtual void ref_event_target() final { ref(); } virtual void ref_event_target() final { ref(); }
virtual void unref_event_target() final { unref(); } virtual void unref_event_target() final { unref(); }
virtual bool dispatch_event(NonnullRefPtr<Event>) final;
virtual JS::Object* create_wrapper(JS::GlobalObject&) override; virtual JS::Object* create_wrapper(JS::GlobalObject&) override;
virtual ~Node(); virtual ~Node();

View file

@ -84,11 +84,6 @@ void MessagePort::post_message(JS::Value message)
})); }));
} }
bool MessagePort::dispatch_event(NonnullRefPtr<DOM::Event> event)
{
return DOM::EventDispatcher::dispatch(*this, move(event));
}
JS::Object* MessagePort::create_wrapper(JS::GlobalObject& global_object) JS::Object* MessagePort::create_wrapper(JS::GlobalObject& global_object)
{ {
return wrap(global_object, *this); return wrap(global_object, *this);

View file

@ -40,7 +40,6 @@ public:
// ^EventTarget // ^EventTarget
virtual void ref_event_target() override { ref(); } virtual void ref_event_target() override { ref(); }
virtual void unref_event_target() override { unref(); } virtual void unref_event_target() override { unref(); }
virtual bool dispatch_event(NonnullRefPtr<DOM::Event>) override;
virtual JS::Object* create_wrapper(JS::GlobalObject&) override; virtual JS::Object* create_wrapper(JS::GlobalObject&) override;
// https://html.spec.whatwg.org/multipage/web-messaging.html#entangle // https://html.spec.whatwg.org/multipage/web-messaging.html#entangle

View file

@ -207,11 +207,6 @@ void WebSocket::on_message(ByteBuffer message, bool is_text)
TODO(); TODO();
} }
bool WebSocket::dispatch_event(NonnullRefPtr<DOM::Event> event)
{
return DOM::EventDispatcher::dispatch(*this, move(event));
}
JS::Object* WebSocket::create_wrapper(JS::GlobalObject& global_object) JS::Object* WebSocket::create_wrapper(JS::GlobalObject& global_object)
{ {
return wrap(global_object, *this); return wrap(global_object, *this);

View file

@ -91,7 +91,6 @@ public:
private: private:
virtual void ref_event_target() override { ref(); } virtual void ref_event_target() override { ref(); }
virtual void unref_event_target() override { unref(); } virtual void unref_event_target() override { unref(); }
virtual bool dispatch_event(NonnullRefPtr<DOM::Event>) override;
virtual JS::Object* create_wrapper(JS::GlobalObject&) override; virtual JS::Object* create_wrapper(JS::GlobalObject&) override;
void on_open(); void on_open();

View file

@ -41,11 +41,6 @@ void Performance::unref_event_target()
m_window.unref(); m_window.unref();
} }
bool Performance::dispatch_event(NonnullRefPtr<DOM::Event> event)
{
return DOM::EventDispatcher::dispatch(*this, event);
}
JS::Object* Performance::create_wrapper(JS::GlobalObject& global_object) JS::Object* Performance::create_wrapper(JS::GlobalObject& global_object)
{ {
return Bindings::wrap(global_object, *this); return Bindings::wrap(global_object, *this);

View file

@ -32,7 +32,6 @@ public:
virtual void ref_event_target() override; virtual void ref_event_target() override;
virtual void unref_event_target() override; virtual void unref_event_target() override;
virtual bool dispatch_event(NonnullRefPtr<DOM::Event>) override;
virtual JS::Object* create_wrapper(JS::GlobalObject&) override; virtual JS::Object* create_wrapper(JS::GlobalObject&) override;
private: private:

View file

@ -252,11 +252,6 @@ DOM::ExceptionOr<void> XMLHttpRequest::send()
return {}; return {};
} }
bool XMLHttpRequest::dispatch_event(NonnullRefPtr<DOM::Event> event)
{
return DOM::EventDispatcher::dispatch(*this, move(event));
}
JS::Object* XMLHttpRequest::create_wrapper(JS::GlobalObject& global_object) JS::Object* XMLHttpRequest::create_wrapper(JS::GlobalObject& global_object)
{ {
return wrap(global_object, *this); return wrap(global_object, *this);

View file

@ -65,7 +65,6 @@ public:
private: private:
virtual void ref_event_target() override { ref(); } virtual void ref_event_target() override { ref(); }
virtual void unref_event_target() override { unref(); } virtual void unref_event_target() override { unref(); }
virtual bool dispatch_event(NonnullRefPtr<DOM::Event>) override;
virtual JS::Object* create_wrapper(JS::GlobalObject&) override; virtual JS::Object* create_wrapper(JS::GlobalObject&) override;
void set_ready_state(ReadyState); void set_ready_state(ReadyState);