From 0ee457dfdf725cc21afcd24d4075a2c19be30676 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 25 Sep 2021 23:11:51 +0200 Subject: [PATCH] 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. --- Userland/Libraries/LibWeb/CSS/MediaQueryList.cpp | 5 ----- Userland/Libraries/LibWeb/CSS/MediaQueryList.h | 1 - Userland/Libraries/LibWeb/DOM/AbortSignal.cpp | 5 ----- Userland/Libraries/LibWeb/DOM/AbortSignal.h | 1 - Userland/Libraries/LibWeb/DOM/EventTarget.cpp | 7 +++++++ Userland/Libraries/LibWeb/DOM/EventTarget.h | 2 +- Userland/Libraries/LibWeb/DOM/Node.cpp | 5 ----- Userland/Libraries/LibWeb/DOM/Node.h | 1 - Userland/Libraries/LibWeb/HTML/MessagePort.cpp | 5 ----- Userland/Libraries/LibWeb/HTML/MessagePort.h | 1 - Userland/Libraries/LibWeb/HTML/WebSocket.cpp | 5 ----- Userland/Libraries/LibWeb/HTML/WebSocket.h | 1 - .../Libraries/LibWeb/HighResolutionTime/Performance.cpp | 5 ----- Userland/Libraries/LibWeb/HighResolutionTime/Performance.h | 1 - Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp | 5 ----- Userland/Libraries/LibWeb/XHR/XMLHttpRequest.h | 1 - 16 files changed, 8 insertions(+), 43 deletions(-) diff --git a/Userland/Libraries/LibWeb/CSS/MediaQueryList.cpp b/Userland/Libraries/LibWeb/CSS/MediaQueryList.cpp index 0af48b7676c..5d1c9c23ce9 100644 --- a/Userland/Libraries/LibWeb/CSS/MediaQueryList.cpp +++ b/Userland/Libraries/LibWeb/CSS/MediaQueryList.cpp @@ -37,11 +37,6 @@ bool MediaQueryList::matches() const return false; } -bool MediaQueryList::dispatch_event(NonnullRefPtr event) -{ - return DOM::EventDispatcher::dispatch(*this, event); -} - JS::Object* MediaQueryList::create_wrapper(JS::GlobalObject& global_object) { return wrap(global_object, *this); diff --git a/Userland/Libraries/LibWeb/CSS/MediaQueryList.h b/Userland/Libraries/LibWeb/CSS/MediaQueryList.h index 7d503a7d3b7..906f8e5acc4 100644 --- a/Userland/Libraries/LibWeb/CSS/MediaQueryList.h +++ b/Userland/Libraries/LibWeb/CSS/MediaQueryList.h @@ -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) override; virtual JS::Object* create_wrapper(JS::GlobalObject&) override; void add_listener(RefPtr listener); diff --git a/Userland/Libraries/LibWeb/DOM/AbortSignal.cpp b/Userland/Libraries/LibWeb/DOM/AbortSignal.cpp index deda4a93e8e..9f7bcecdd32 100644 --- a/Userland/Libraries/LibWeb/DOM/AbortSignal.cpp +++ b/Userland/Libraries/LibWeb/DOM/AbortSignal.cpp @@ -20,11 +20,6 @@ AbortSignal::~AbortSignal() { } -bool AbortSignal::dispatch_event(NonnullRefPtr event) -{ - return EventDispatcher::dispatch(*this, event); -} - JS::Object* AbortSignal::create_wrapper(JS::GlobalObject& global_object) { return wrap(global_object, *this); diff --git a/Userland/Libraries/LibWeb/DOM/AbortSignal.h b/Userland/Libraries/LibWeb/DOM/AbortSignal.h index f468eb079ee..cca548e9856 100644 --- a/Userland/Libraries/LibWeb/DOM/AbortSignal.h +++ b/Userland/Libraries/LibWeb/DOM/AbortSignal.h @@ -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) override; virtual JS::Object* create_wrapper(JS::GlobalObject&) override; private: diff --git a/Userland/Libraries/LibWeb/DOM/EventTarget.cpp b/Userland/Libraries/LibWeb/DOM/EventTarget.cpp index 18221d03631..4e2b7886a9a 100644 --- a/Userland/Libraries/LibWeb/DOM/EventTarget.cpp +++ b/Userland/Libraries/LibWeb/DOM/EventTarget.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -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) +{ + return EventDispatcher::dispatch(*this, move(event)); +} + } diff --git a/Userland/Libraries/LibWeb/DOM/EventTarget.h b/Userland/Libraries/LibWeb/DOM/EventTarget.h index a21c414970d..11250245873 100644 --- a/Userland/Libraries/LibWeb/DOM/EventTarget.h +++ b/Userland/Libraries/LibWeb/DOM/EventTarget.h @@ -31,7 +31,7 @@ public: void remove_from_event_listener_list(NonnullRefPtr); - virtual bool dispatch_event(NonnullRefPtr) = 0; + virtual bool dispatch_event(NonnullRefPtr); ExceptionOr dispatch_event_binding(NonnullRefPtr); virtual JS::Object* create_wrapper(JS::GlobalObject&) = 0; diff --git a/Userland/Libraries/LibWeb/DOM/Node.cpp b/Userland/Libraries/LibWeb/DOM/Node.cpp index 7db87d6e374..59889458aab 100644 --- a/Userland/Libraries/LibWeb/DOM/Node.cpp +++ b/Userland/Libraries/LibWeb/DOM/Node.cpp @@ -163,11 +163,6 @@ bool Node::is_link() const return enclosing_link_element(); } -bool Node::dispatch_event(NonnullRefPtr event) -{ - return EventDispatcher::dispatch(*this, event); -} - String Node::child_text_content() const { if (!is(*this)) diff --git a/Userland/Libraries/LibWeb/DOM/Node.h b/Userland/Libraries/LibWeb/DOM/Node.h index acdd0955e6e..77a6051651c 100644 --- a/Userland/Libraries/LibWeb/DOM/Node.h +++ b/Userland/Libraries/LibWeb/DOM/Node.h @@ -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) final; virtual JS::Object* create_wrapper(JS::GlobalObject&) override; virtual ~Node(); diff --git a/Userland/Libraries/LibWeb/HTML/MessagePort.cpp b/Userland/Libraries/LibWeb/HTML/MessagePort.cpp index f80e9437818..4684a726d10 100644 --- a/Userland/Libraries/LibWeb/HTML/MessagePort.cpp +++ b/Userland/Libraries/LibWeb/HTML/MessagePort.cpp @@ -84,11 +84,6 @@ void MessagePort::post_message(JS::Value message) })); } -bool MessagePort::dispatch_event(NonnullRefPtr event) -{ - return DOM::EventDispatcher::dispatch(*this, move(event)); -} - JS::Object* MessagePort::create_wrapper(JS::GlobalObject& global_object) { return wrap(global_object, *this); diff --git a/Userland/Libraries/LibWeb/HTML/MessagePort.h b/Userland/Libraries/LibWeb/HTML/MessagePort.h index 18446b8e5ff..d6db3844643 100644 --- a/Userland/Libraries/LibWeb/HTML/MessagePort.h +++ b/Userland/Libraries/LibWeb/HTML/MessagePort.h @@ -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) override; virtual JS::Object* create_wrapper(JS::GlobalObject&) override; // https://html.spec.whatwg.org/multipage/web-messaging.html#entangle diff --git a/Userland/Libraries/LibWeb/HTML/WebSocket.cpp b/Userland/Libraries/LibWeb/HTML/WebSocket.cpp index 2a067cb1421..bd50c022ef8 100644 --- a/Userland/Libraries/LibWeb/HTML/WebSocket.cpp +++ b/Userland/Libraries/LibWeb/HTML/WebSocket.cpp @@ -207,11 +207,6 @@ void WebSocket::on_message(ByteBuffer message, bool is_text) TODO(); } -bool WebSocket::dispatch_event(NonnullRefPtr event) -{ - return DOM::EventDispatcher::dispatch(*this, move(event)); -} - JS::Object* WebSocket::create_wrapper(JS::GlobalObject& global_object) { return wrap(global_object, *this); diff --git a/Userland/Libraries/LibWeb/HTML/WebSocket.h b/Userland/Libraries/LibWeb/HTML/WebSocket.h index 6491739dcd9..4748b5dc477 100644 --- a/Userland/Libraries/LibWeb/HTML/WebSocket.h +++ b/Userland/Libraries/LibWeb/HTML/WebSocket.h @@ -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) override; virtual JS::Object* create_wrapper(JS::GlobalObject&) override; void on_open(); diff --git a/Userland/Libraries/LibWeb/HighResolutionTime/Performance.cpp b/Userland/Libraries/LibWeb/HighResolutionTime/Performance.cpp index 436e647a0e3..8f584c70368 100644 --- a/Userland/Libraries/LibWeb/HighResolutionTime/Performance.cpp +++ b/Userland/Libraries/LibWeb/HighResolutionTime/Performance.cpp @@ -41,11 +41,6 @@ void Performance::unref_event_target() m_window.unref(); } -bool Performance::dispatch_event(NonnullRefPtr event) -{ - return DOM::EventDispatcher::dispatch(*this, event); -} - JS::Object* Performance::create_wrapper(JS::GlobalObject& global_object) { return Bindings::wrap(global_object, *this); diff --git a/Userland/Libraries/LibWeb/HighResolutionTime/Performance.h b/Userland/Libraries/LibWeb/HighResolutionTime/Performance.h index ac57d7090df..7891c43b85b 100644 --- a/Userland/Libraries/LibWeb/HighResolutionTime/Performance.h +++ b/Userland/Libraries/LibWeb/HighResolutionTime/Performance.h @@ -32,7 +32,6 @@ public: virtual void ref_event_target() override; virtual void unref_event_target() override; - virtual bool dispatch_event(NonnullRefPtr) override; virtual JS::Object* create_wrapper(JS::GlobalObject&) override; private: diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp index 2392c302a56..f64a58d12cf 100644 --- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp +++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp @@ -252,11 +252,6 @@ DOM::ExceptionOr XMLHttpRequest::send() return {}; } -bool XMLHttpRequest::dispatch_event(NonnullRefPtr event) -{ - return DOM::EventDispatcher::dispatch(*this, move(event)); -} - JS::Object* XMLHttpRequest::create_wrapper(JS::GlobalObject& global_object) { return wrap(global_object, *this); diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.h b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.h index 2b91d9230f6..d33bf48c7fd 100644 --- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.h +++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.h @@ -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) override; virtual JS::Object* create_wrapper(JS::GlobalObject&) override; void set_ready_state(ReadyState);