فهرست منبع

LibWeb: Add the GlobalEventHandlers IDL mixin

Idan Horowitz 3 سال پیش
والد
کامیت
d25bd2dbd8

+ 2 - 71
Userland/Libraries/LibWeb/DOM/Document.idl

@@ -103,77 +103,6 @@ interface Document : Node {
 
     [SameObject] readonly attribute HTMLCollection children;
 
-    // FIXME: These should all come from a GlobalEventHandlers mixin
-    attribute EventHandler onabort;
-    attribute EventHandler onauxclick;
-    attribute EventHandler onblur;
-    attribute EventHandler oncancel;
-    attribute EventHandler oncanplay;
-    attribute EventHandler oncanplaythrough;
-    attribute EventHandler onchange;
-    attribute EventHandler onclick;
-    attribute EventHandler onclose;
-    attribute EventHandler oncontextmenu;
-    attribute EventHandler oncuechange;
-    attribute EventHandler ondblclick;
-    attribute EventHandler ondrag;
-    attribute EventHandler ondragend;
-    attribute EventHandler ondragenter;
-    attribute EventHandler ondragleave;
-    attribute EventHandler ondragover;
-    attribute EventHandler ondragstart;
-    attribute EventHandler ondrop;
-    attribute EventHandler ondurationchange;
-    attribute EventHandler onemptied;
-    attribute EventHandler onended;
-
-    // FIXME: Should be an OnErrorEventHandler
-    attribute EventHandler onerror;
-
-    attribute EventHandler onfocus;
-    attribute EventHandler onformdata;
-    attribute EventHandler oninput;
-    attribute EventHandler oninvalid;
-    attribute EventHandler onkeydown;
-    attribute EventHandler onkeypress;
-    attribute EventHandler onkeyup;
-    attribute EventHandler onload;
-    attribute EventHandler onloadeddata;
-    attribute EventHandler onloadedmetadata;
-    attribute EventHandler onloadstart;
-    attribute EventHandler onmousedown;
-    [LegacyLenientThis] attribute EventHandler onmouseenter;
-    [LegacyLenientThis] attribute EventHandler onmouseleave;
-    attribute EventHandler onmousemove;
-    attribute EventHandler onmouseout;
-    attribute EventHandler onmouseover;
-    attribute EventHandler onmouseup;
-    attribute EventHandler onpause;
-    attribute EventHandler onplay;
-    attribute EventHandler onplaying;
-    attribute EventHandler onprogress;
-    attribute EventHandler onratechange;
-    attribute EventHandler onreset;
-    attribute EventHandler onresize;
-    attribute EventHandler onscroll;
-    attribute EventHandler onsecuritypolicyviolation;
-    attribute EventHandler onseeked;
-    attribute EventHandler onseeking;
-    attribute EventHandler onselect;
-    attribute EventHandler onslotchange;
-    attribute EventHandler onstalled;
-    attribute EventHandler onsubmit;
-    attribute EventHandler onsuspend;
-    attribute EventHandler ontimeupdate;
-    attribute EventHandler ontoggle;
-    attribute EventHandler onvolumechange;
-    attribute EventHandler onwaiting;
-    attribute EventHandler onwebkitanimationend;
-    attribute EventHandler onwebkitanimationiteration;
-    attribute EventHandler onwebkitanimationstart;
-    attribute EventHandler onwebkittransitionend;
-    attribute EventHandler onwheel;
-
     readonly boolean hidden;
     readonly DOMString visibilityState;
 
@@ -181,3 +110,5 @@ interface Document : Node {
     [NewObject] TreeWalker createTreeWalker(Node root, optional unsigned long whatToShow = 0xFFFFFFFF, optional NodeFilter? filter = null);
 
 };
+
+HTMLElement includes GlobalEventHandlers;

+ 76 - 0
Userland/Libraries/LibWeb/DOM/EventHandler.idl

@@ -1,3 +1,79 @@
 [LegacyTreatNonObjectAsNull]
 callback EventHandlerNonNull = any (Event event);
 typedef EventHandlerNonNull? EventHandler;
+
+[LegacyTreatNonObjectAsNull]
+callback OnErrorEventHandlerNonNull = any ((Event or DOMString) event, optional DOMString source, optional unsigned long lineno, optional unsigned long colno, optional any error);
+typedef OnErrorEventHandlerNonNull? OnErrorEventHandler;
+
+interface mixin GlobalEventHandlers {
+    attribute EventHandler onabort;
+    attribute EventHandler onauxclick;
+    // TODO: attribute EventHandler onbeforematch;
+    attribute EventHandler onblur;
+    attribute EventHandler oncancel;
+    attribute EventHandler oncanplay;
+    attribute EventHandler oncanplaythrough;
+    attribute EventHandler onchange;
+    attribute EventHandler onclick;
+    attribute EventHandler onclose;
+    // TODO: attribute EventHandler oncontextlost;
+    attribute EventHandler oncontextmenu;
+    // TODO: attribute EventHandler oncontextrestored;
+    attribute EventHandler oncuechange;
+    attribute EventHandler ondblclick;
+    attribute EventHandler ondrag;
+    attribute EventHandler ondragend;
+    attribute EventHandler ondragenter;
+    attribute EventHandler ondragleave;
+    attribute EventHandler ondragover;
+    attribute EventHandler ondragstart;
+    attribute EventHandler ondrop;
+    attribute EventHandler ondurationchange;
+    attribute EventHandler onemptied;
+    attribute EventHandler onended;
+    attribute OnErrorEventHandler onerror;
+    attribute EventHandler onfocus;
+    attribute EventHandler onformdata;
+    attribute EventHandler oninput;
+    attribute EventHandler oninvalid;
+    attribute EventHandler onkeydown;
+    attribute EventHandler onkeypress;
+    attribute EventHandler onkeyup;
+    attribute EventHandler onload;
+    attribute EventHandler onloadeddata;
+    attribute EventHandler onloadedmetadata;
+    attribute EventHandler onloadstart;
+    attribute EventHandler onmousedown;
+    [LegacyLenientThis] attribute EventHandler onmouseenter;
+    [LegacyLenientThis] attribute EventHandler onmouseleave;
+    attribute EventHandler onmousemove;
+    attribute EventHandler onmouseout;
+    attribute EventHandler onmouseover;
+    attribute EventHandler onmouseup;
+    attribute EventHandler onpause;
+    attribute EventHandler onplay;
+    attribute EventHandler onplaying;
+    attribute EventHandler onprogress;
+    attribute EventHandler onratechange;
+    attribute EventHandler onreset;
+    attribute EventHandler onresize;
+    attribute EventHandler onscroll;
+    attribute EventHandler onsecuritypolicyviolation;
+    attribute EventHandler onseeked;
+    attribute EventHandler onseeking;
+    attribute EventHandler onselect;
+    attribute EventHandler onslotchange;
+    attribute EventHandler onstalled;
+    attribute EventHandler onsubmit;
+    attribute EventHandler onsuspend;
+    attribute EventHandler ontimeupdate;
+    attribute EventHandler ontoggle;
+    attribute EventHandler onvolumechange;
+    attribute EventHandler onwaiting;
+    attribute EventHandler onwebkitanimationend;
+    attribute EventHandler onwebkitanimationiteration;
+    attribute EventHandler onwebkitanimationstart;
+    attribute EventHandler onwebkittransitionend;
+    attribute EventHandler onwheel;
+};

+ 1 - 72
Userland/Libraries/LibWeb/HTML/HTMLElement.idl

@@ -21,80 +21,9 @@ interface HTMLElement : Element {
     readonly attribute long offsetLeft;
     readonly attribute long offsetWidth;
     readonly attribute long offsetHeight;
-
-    // FIXME: These should all come from a GlobalEventHandlers mixin
-    attribute EventHandler onabort;
-    attribute EventHandler onauxclick;
-    attribute EventHandler onblur;
-    attribute EventHandler oncancel;
-    attribute EventHandler oncanplay;
-    attribute EventHandler oncanplaythrough;
-    attribute EventHandler onchange;
-    attribute EventHandler onclick;
-    attribute EventHandler onclose;
-    attribute EventHandler oncontextmenu;
-    attribute EventHandler oncuechange;
-    attribute EventHandler ondblclick;
-    attribute EventHandler ondrag;
-    attribute EventHandler ondragend;
-    attribute EventHandler ondragenter;
-    attribute EventHandler ondragleave;
-    attribute EventHandler ondragover;
-    attribute EventHandler ondragstart;
-    attribute EventHandler ondrop;
-    attribute EventHandler ondurationchange;
-    attribute EventHandler onemptied;
-    attribute EventHandler onended;
-
-    // FIXME: Should be an OnErrorEventHandler
-    attribute EventHandler onerror;
-
-    attribute EventHandler onfocus;
-    attribute EventHandler onformdata;
-    attribute EventHandler oninput;
-    attribute EventHandler oninvalid;
-    attribute EventHandler onkeydown;
-    attribute EventHandler onkeypress;
-    attribute EventHandler onkeyup;
-    attribute EventHandler onload;
-    attribute EventHandler onloadeddata;
-    attribute EventHandler onloadedmetadata;
-    attribute EventHandler onloadstart;
-    attribute EventHandler onmousedown;
-    [LegacyLenientThis] attribute EventHandler onmouseenter;
-    [LegacyLenientThis] attribute EventHandler onmouseleave;
-    attribute EventHandler onmousemove;
-    attribute EventHandler onmouseout;
-    attribute EventHandler onmouseover;
-    attribute EventHandler onmouseup;
-    attribute EventHandler onpause;
-    attribute EventHandler onplay;
-    attribute EventHandler onplaying;
-    attribute EventHandler onprogress;
-    attribute EventHandler onratechange;
-    attribute EventHandler onreset;
-    attribute EventHandler onresize;
-    attribute EventHandler onscroll;
-    attribute EventHandler onsecuritypolicyviolation;
-    attribute EventHandler onseeked;
-    attribute EventHandler onseeking;
-    attribute EventHandler onselect;
-    attribute EventHandler onslotchange;
-    attribute EventHandler onstalled;
-    attribute EventHandler onsubmit;
-    attribute EventHandler onsuspend;
-    attribute EventHandler ontimeupdate;
-    attribute EventHandler ontoggle;
-    attribute EventHandler onvolumechange;
-    attribute EventHandler onwaiting;
-    attribute EventHandler onwebkitanimationend;
-    attribute EventHandler onwebkitanimationiteration;
-    attribute EventHandler onwebkitanimationstart;
-    attribute EventHandler onwebkittransitionend;
-    attribute EventHandler onwheel;
-
 };
 
+HTMLElement includes GlobalEventHandlers;
 HTMLElement includes HTMLOrSVGElement;
 
 interface mixin HTMLOrSVGElement {