1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 08:27:46 +00:00

LibWeb: Basic implementation of global event handlers :^)

Document and HTMLElement now inherit from HTML::GlobalEventHandlers
which allows them to support "onfoo" event handler attributes.

These are assignable both via IDL attributes and content attributes.

Event listeners constructed this way get a special "attribute" flag
on them so we know which one to replace if you reassign them.
This also allows them to coexist with EventTarget.addEventListener().

This is all a bit sloppy, but it works decently for a first cut.
The Window object should also inherit GlobalEventHandlers, but since
we don't generate it from IDL, I haven't taken that step here.

Also this would be a lot nicer if we supported IDL mixins.
This commit is contained in:
Andreas Kling 2021-02-03 22:47:50 +01:00
parent b43db4cc50
commit a59b1825ce
15 changed files with 391 additions and 2 deletions

View file

@ -62,6 +62,7 @@ enum class QuirksMode;
namespace Web::HTML {
class CanvasRenderingContext2D;
class EventHandler;
class HTMLAnchorElement;
class HTMLAreaElement;
class HTMLAudioElement;