From 2c396b5378fec5f4470e1e1e950806dff8005f08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=AD=90caitp=E2=AD=90?= Date: Thu, 11 Jul 2024 13:53:05 -0400 Subject: [PATCH] LibWeb: Remove set_event_characteristics() These methods were overriding properties specified by the EventInit property bags in the constructor for WheelEvent and MouseEvent. They appear to be legacy code and no longer relevant, as they would have been used for ensuring natively dispatched events had the correct properties --- This is now done in separate create methods, such as MouseEvent::create_from_platform_event. This fixes a couple WPT failures (e.g. in /dom/events/Event-subclasses-constructors.html) --- Userland/Libraries/LibWeb/DOM/Document.cpp | 6 ++++++ Userland/Libraries/LibWeb/UIEvents/MouseEvent.cpp | 10 ---------- Userland/Libraries/LibWeb/UIEvents/MouseEvent.h | 2 -- Userland/Libraries/LibWeb/UIEvents/WheelEvent.cpp | 8 -------- Userland/Libraries/LibWeb/UIEvents/WheelEvent.h | 2 -- 5 files changed, 6 insertions(+), 22 deletions(-) diff --git a/Userland/Libraries/LibWeb/DOM/Document.cpp b/Userland/Libraries/LibWeb/DOM/Document.cpp index c650f048895..963bceba980 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.cpp +++ b/Userland/Libraries/LibWeb/DOM/Document.cpp @@ -1354,6 +1354,9 @@ void Document::set_hovered_node(Node* node) // https://w3c.github.io/uievents/#mouseout if (old_hovered_node && old_hovered_node != m_hovered_node) { UIEvents::MouseEventInit mouse_event_init {}; + mouse_event_init.bubbles = true; + mouse_event_init.cancelable = true; + mouse_event_init.composed = true; mouse_event_init.related_target = m_hovered_node; auto event = UIEvents::MouseEvent::create(realm(), UIEvents::EventNames::mouseout, mouse_event_init); old_hovered_node->dispatch_event(event); @@ -1373,6 +1376,9 @@ void Document::set_hovered_node(Node* node) // https://w3c.github.io/uievents/#mouseover if (m_hovered_node && m_hovered_node != old_hovered_node) { UIEvents::MouseEventInit mouse_event_init {}; + mouse_event_init.bubbles = true; + mouse_event_init.cancelable = true; + mouse_event_init.composed = true; mouse_event_init.related_target = old_hovered_node; auto event = UIEvents::MouseEvent::create(realm(), UIEvents::EventNames::mouseover, mouse_event_init); m_hovered_node->dispatch_event(event); diff --git a/Userland/Libraries/LibWeb/UIEvents/MouseEvent.cpp b/Userland/Libraries/LibWeb/UIEvents/MouseEvent.cpp index 76f7cc1bc6d..a8ffe916983 100644 --- a/Userland/Libraries/LibWeb/UIEvents/MouseEvent.cpp +++ b/Userland/Libraries/LibWeb/UIEvents/MouseEvent.cpp @@ -47,7 +47,6 @@ MouseEvent::MouseEvent(JS::Realm& realm, FlyString const& event_name, MouseEvent , m_buttons(event_init.buttons) , m_related_target(event_init.related_target) { - set_event_characteristics(); } MouseEvent::~MouseEvent() = default; @@ -148,13 +147,4 @@ WebIDL::ExceptionOr> MouseEvent::create_from_platfo return event; } -void MouseEvent::set_event_characteristics() -{ - if (type().is_one_of(EventNames::mousedown, EventNames::mousemove, EventNames::mouseout, EventNames::mouseover, EventNames::mouseup, HTML::EventNames::click, EventNames::dblclick, EventNames::contextmenu)) { - set_bubbles(true); - set_cancelable(true); - set_composed(true); - } -} - } diff --git a/Userland/Libraries/LibWeb/UIEvents/MouseEvent.h b/Userland/Libraries/LibWeb/UIEvents/MouseEvent.h index 44b0b17dfaf..50b568f7f1e 100644 --- a/Userland/Libraries/LibWeb/UIEvents/MouseEvent.h +++ b/Userland/Libraries/LibWeb/UIEvents/MouseEvent.h @@ -77,8 +77,6 @@ protected: private: virtual bool is_mouse_event() const override { return true; } - void set_event_characteristics(); - double m_screen_x { 0 }; double m_screen_y { 0 }; double m_page_x { 0 }; diff --git a/Userland/Libraries/LibWeb/UIEvents/WheelEvent.cpp b/Userland/Libraries/LibWeb/UIEvents/WheelEvent.cpp index f62d36b35cb..ae29e25c75f 100644 --- a/Userland/Libraries/LibWeb/UIEvents/WheelEvent.cpp +++ b/Userland/Libraries/LibWeb/UIEvents/WheelEvent.cpp @@ -23,7 +23,6 @@ WheelEvent::WheelEvent(JS::Realm& realm, FlyString const& event_name, WheelEvent , m_delta_z(event_init.delta_z) , m_delta_mode(event_init.delta_mode) { - set_event_characteristics(); } WheelEvent::~WheelEvent() = default; @@ -65,11 +64,4 @@ WebIDL::ExceptionOr> WheelEvent::create_from_platfo return event; } -void WheelEvent::set_event_characteristics() -{ - set_bubbles(true); - set_cancelable(true); - set_composed(true); -} - } diff --git a/Userland/Libraries/LibWeb/UIEvents/WheelEvent.h b/Userland/Libraries/LibWeb/UIEvents/WheelEvent.h index 5c4ce895aaf..8660f69db2e 100644 --- a/Userland/Libraries/LibWeb/UIEvents/WheelEvent.h +++ b/Userland/Libraries/LibWeb/UIEvents/WheelEvent.h @@ -48,8 +48,6 @@ private: virtual void initialize(JS::Realm&) override; - void set_event_characteristics(); - double m_delta_x { 0 }; double m_delta_y { 0 }; double m_delta_z { 0 };