ladybird/Userland/Libraries/LibWeb/HTML/GlobalEventHandlers.h
Luke Wilde ebf2184636 LibWeb: Only make certain <body> and <frameset> events apply to Window
Previously we forwarded all event handler attributes to Window from
these two elements, however, we are only supposed to forward blur,
error, focus, load, resize and scroll.
2022-06-29 21:21:50 +01:00

97 lines
4.8 KiB
C++

/*
* Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Forward.h>
#include <LibWeb/Forward.h>
#define ENUMERATE_GLOBAL_EVENT_HANDLERS(E) \
E(onabort, HTML::EventNames::abort) \
E(onauxclick, "auxclick") \
E(onblur, HTML::EventNames::blur) \
E(oncancel, HTML::EventNames::cancel) \
E(oncanplay, "canplay") \
E(oncanplaythrough, "canplaythrough") \
E(onchange, HTML::EventNames::change) \
E(onclick, UIEvents::EventNames::click) \
E(onclose, HTML::EventNames::close) \
E(oncontextmenu, HTML::EventNames::contextmenu) \
E(oncuechange, "cuechange") \
E(ondblclick, "dblclick") \
E(ondrag, "drag") \
E(ondragend, "dragend") \
E(ondragenter, "dragenter") \
E(ondragleave, "dragleave") \
E(ondragover, "dragover") \
E(ondragstart, "dragstart") \
E(ondrop, "drop") \
E(ondurationchange, "durationchange") \
E(onemptied, "emptied") \
E(onended, "ended") \
E(onerror, HTML::EventNames::error) \
E(onfocus, "focus") \
E(onformdata, "formdata") \
E(oninput, HTML::EventNames::input) \
E(oninvalid, HTML::EventNames::invalid) \
E(onkeydown, "keydown") \
E(onkeypress, "keypress") \
E(onkeyup, "keyup") \
E(onload, HTML::EventNames::load) \
E(onloadeddata, "loadeddata") \
E(onloadedmetadata, "loadedmetadata") \
E(onloadstart, "loadstart") \
E(onmousedown, UIEvents::EventNames::mousedown) \
E(onmouseenter, UIEvents::EventNames::mouseenter) \
E(onmouseleave, UIEvents::EventNames::mouseleave) \
E(onmousemove, UIEvents::EventNames::mousemove) \
E(onmouseout, UIEvents::EventNames::mouseout) \
E(onmouseover, UIEvents::EventNames::mouseover) \
E(onmouseup, UIEvents::EventNames::mouseup) \
E(onpause, "pause") \
E(onplay, "play") \
E(onplaying, "playing") \
E(onprogress, "progress") \
E(onratechange, "ratechange") \
E(onreset, "reset") \
E(onresize, "resize") \
E(onscroll, "scroll") \
E(onsecuritypolicyviolation, "securitypolicyviolation") \
E(onseeked, "seeked") \
E(onseeking, "seeking") \
E(onselect, HTML::EventNames::select) \
E(onslotchange, "slotchange") \
E(onstalled, "stalled") \
E(onsubmit, HTML::EventNames::submit) \
E(onsuspend, "suspend") \
E(ontimeupdate, "timeupdate") \
E(ontoggle, "toggle") \
E(onvolumechange, "volumechange") \
E(onwaiting, "waiting") \
E(onwebkitanimationend, "webkitanimationend") \
E(onwebkitanimationiteration, "webkitanimationiteration") \
E(onwebkitanimationstart, "webkitanimationstart") \
E(onwebkittransitionend, "webkittransitionend") \
E(onwheel, "wheel")
namespace Web::HTML {
class GlobalEventHandlers {
public:
virtual ~GlobalEventHandlers();
#undef __ENUMERATE
#define __ENUMERATE(attribute_name, event_name) \
void set_##attribute_name(Optional<Bindings::CallbackType>); \
Bindings::CallbackType* attribute_name();
ENUMERATE_GLOBAL_EVENT_HANDLERS(__ENUMERATE)
#undef __ENUMERATE
protected:
virtual DOM::EventTarget& global_event_handlers_to_event_target(FlyString const& event_name) = 0;
};
}