1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-28 11:45:11 +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;
}
bool MediaQueryList::dispatch_event(NonnullRefPtr<DOM::Event> event)
{
return DOM::EventDispatcher::dispatch(*this, event);
}
JS::Object* MediaQueryList::create_wrapper(JS::GlobalObject& global_object)
{
return wrap(global_object, *this);

View file

@ -39,7 +39,6 @@ public:
// ^EventTarget
virtual void ref_event_target() override { ref(); }
virtual void unref_event_target() override { unref(); }
virtual bool dispatch_event(NonnullRefPtr<DOM::Event>) override;
virtual JS::Object* create_wrapper(JS::GlobalObject&) override;
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)
{
return wrap(global_object, *this);

View file

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

View file

@ -11,6 +11,7 @@
#include <LibWeb/Bindings/ScriptExecutionContext.h>
#include <LibWeb/DOM/Document.h>
#include <LibWeb/DOM/Event.h>
#include <LibWeb/DOM/EventDispatcher.h>
#include <LibWeb/DOM/EventListener.h>
#include <LibWeb/DOM/EventTarget.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());
}
}
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>);
virtual bool dispatch_event(NonnullRefPtr<Event>) = 0;
virtual bool dispatch_event(NonnullRefPtr<Event>);
ExceptionOr<bool> dispatch_event_binding(NonnullRefPtr<Event>);
virtual JS::Object* create_wrapper(JS::GlobalObject&) = 0;

View file

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

View file

@ -51,7 +51,6 @@ public:
// ^EventTarget
virtual void ref_event_target() final { ref(); }
virtual void unref_event_target() final { unref(); }
virtual bool dispatch_event(NonnullRefPtr<Event>) final;
virtual JS::Object* create_wrapper(JS::GlobalObject&) override;
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)
{
return wrap(global_object, *this);

View file

@ -40,7 +40,6 @@ public:
// ^EventTarget
virtual void ref_event_target() override { ref(); }
virtual void unref_event_target() override { unref(); }
virtual bool dispatch_event(NonnullRefPtr<DOM::Event>) override;
virtual JS::Object* create_wrapper(JS::GlobalObject&) override;
// 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();
}
bool WebSocket::dispatch_event(NonnullRefPtr<DOM::Event> event)
{
return DOM::EventDispatcher::dispatch(*this, move(event));
}
JS::Object* WebSocket::create_wrapper(JS::GlobalObject& global_object)
{
return wrap(global_object, *this);

View file

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

View file

@ -41,11 +41,6 @@ void Performance::unref_event_target()
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)
{
return Bindings::wrap(global_object, *this);

View file

@ -32,7 +32,6 @@ public:
virtual void ref_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;
private:

View file

@ -252,11 +252,6 @@ DOM::ExceptionOr<void> XMLHttpRequest::send()
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)
{
return wrap(global_object, *this);

View file

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