1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 08:08:12 +00:00

LibWeb: Implement EventTarget.dispatchEvent

Used by Web Platform Tests to test events
This commit is contained in:
Luke 2021-05-04 22:38:36 +01:00 committed by Linus Groh
parent 7f6baf8b17
commit 2cc6b919f7
4 changed files with 23 additions and 0 deletions

View file

@ -5,6 +5,7 @@
*/
#include <LibWeb/Bindings/ScriptExecutionContext.h>
#include <LibWeb/DOM/Event.h>
#include <LibWeb/DOM/EventListener.h>
#include <LibWeb/DOM/EventTarget.h>
@ -53,4 +54,18 @@ void EventTarget::remove_from_event_listener_list(NonnullRefPtr<EventListener> l
});
}
// https://dom.spec.whatwg.org/#dom-eventtarget-dispatchevent
ExceptionOr<bool> EventTarget::dispatch_event_binding(NonnullRefPtr<Event> event)
{
if (event->dispatched())
return DOM::InvalidStateError::create("The event is already being dispatched.");
if (!event->initialized())
return DOM::InvalidStateError::create("Cannot dispatch an uninitialized event.");
event->set_is_trusted(false);
return dispatch_event(event);
}
}