1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 02:47:35 +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

@ -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();