diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs index a14beccabe3..52c9af3b061 100644 --- a/components/script/dom/event.rs +++ b/components/script/dom/event.rs @@ -263,6 +263,11 @@ impl EventMethods for Event { self.target.get() } + // https://dom.spec.whatwg.org/#dom-event-srcelement + fn GetSrcElement(&self) -> Option> { + self.target.get() + } + // https://dom.spec.whatwg.org/#dom-event-currenttarget fn GetCurrentTarget(&self) -> Option> { self.current_target.get() diff --git a/components/script/dom/webidls/Event.webidl b/components/script/dom/webidls/Event.webidl index c688daedb2e..f3d281813a1 100644 --- a/components/script/dom/webidls/Event.webidl +++ b/components/script/dom/webidls/Event.webidl @@ -11,6 +11,7 @@ interface Event { [Pure] readonly attribute DOMString type; readonly attribute EventTarget? target; + readonly attribute EventTarget? srcElement; readonly attribute EventTarget? currentTarget; const unsigned short NONE = 0; diff --git a/tests/wpt/metadata/dom/events/Event-constructors.html.ini b/tests/wpt/metadata/dom/events/Event-constructors.html.ini deleted file mode 100644 index 69db3949a53..00000000000 --- a/tests/wpt/metadata/dom/events/Event-constructors.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[Event-constructors.html] - [Event constructors 2] - expected: FAIL - - [Event constructors 3] - expected: FAIL - diff --git a/tests/wpt/metadata/dom/events/Event-defaultPrevented-after-dispatch.html.ini b/tests/wpt/metadata/dom/events/Event-defaultPrevented-after-dispatch.html.ini deleted file mode 100644 index 62b929e7696..00000000000 --- a/tests/wpt/metadata/dom/events/Event-defaultPrevented-after-dispatch.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[Event-defaultPrevented-after-dispatch.html] - [Default prevention via preventDefault] - expected: FAIL - - [Default prevention via returnValue] - expected: FAIL - diff --git a/tests/wpt/metadata/dom/events/Event-dispatch-detached-click.html.ini b/tests/wpt/metadata/dom/events/Event-dispatch-detached-click.html.ini deleted file mode 100644 index 4ee6693e1dc..00000000000 --- a/tests/wpt/metadata/dom/events/Event-dispatch-detached-click.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[Event-dispatch-detached-click.html] - [Click event can be dispatched to an element that is not in the document.] - expected: FAIL - diff --git a/tests/wpt/metadata/dom/events/Event-dispatch-other-document.html.ini b/tests/wpt/metadata/dom/events/Event-dispatch-other-document.html.ini deleted file mode 100644 index 8939e17c8b0..00000000000 --- a/tests/wpt/metadata/dom/events/Event-dispatch-other-document.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[Event-dispatch-other-document.html] - [Custom event on an element in another document] - expected: FAIL - diff --git a/tests/wpt/metadata/dom/events/Event-initEvent.html.ini b/tests/wpt/metadata/dom/events/Event-initEvent.html.ini deleted file mode 100644 index 5426bf5b727..00000000000 --- a/tests/wpt/metadata/dom/events/Event-initEvent.html.ini +++ /dev/null @@ -1,15 +0,0 @@ -[Event-initEvent.html] - type: testharness - - [Properties of initEvent(type, true, true)] - expected: FAIL - - [Properties of initEvent(type, true, false)] - expected: FAIL - - [Properties of initEvent(type, false, true)] - expected: FAIL - - [Properties of initEvent(type, false, false)] - expected: FAIL - diff --git a/tests/wpt/metadata/dom/events/EventListener-handleEvent.html.ini b/tests/wpt/metadata/dom/events/EventListener-handleEvent.html.ini index 72f7b4b3565..dccf66a904b 100644 --- a/tests/wpt/metadata/dom/events/EventListener-handleEvent.html.ini +++ b/tests/wpt/metadata/dom/events/EventListener-handleEvent.html.ini @@ -5,12 +5,8 @@ [throws if `handleEvent` is not callable] expected: FAIL - [calls `handleEvent` method of `EventListener`] - expected: FAIL - [throws if `handleEvent` is falsy and not callable] expected: FAIL [throws if `handleEvent` is thruthy and not callable] expected: FAIL - diff --git a/tests/wpt/metadata/dom/idlharness.any.js.ini b/tests/wpt/metadata/dom/idlharness.any.js.ini index 8e43fa29136..feb1adea725 100644 --- a/tests/wpt/metadata/dom/idlharness.any.js.ini +++ b/tests/wpt/metadata/dom/idlharness.any.js.ini @@ -2,9 +2,6 @@ [AbortController interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL - [Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type] - expected: FAIL - [Event interface: new Event("foo") must inherit property "composed" with the proper type] expected: FAIL @@ -20,9 +17,6 @@ [AbortController interface object name] expected: FAIL - [Event interface: new Event("foo") must inherit property "srcElement" with the proper type] - expected: FAIL - [Event interface: attribute composed] expected: FAIL @@ -47,9 +41,6 @@ [EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type] expected: FAIL - [Event interface: attribute srcElement] - expected: FAIL - [EventTarget interface: calling addEventListener(DOMString, EventListener, [object Object\],[object Object\]) on new AbortController().signal with too few arguments must throw TypeError] expected: FAIL diff --git a/tests/wpt/metadata/dom/idlharness.window.js.ini b/tests/wpt/metadata/dom/idlharness.window.js.ini index 4731be73de9..2561d3bc43d 100644 --- a/tests/wpt/metadata/dom/idlharness.window.js.ini +++ b/tests/wpt/metadata/dom/idlharness.window.js.ini @@ -199,9 +199,6 @@ [idlharness.window.html?exclude=Node] - [Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type] - expected: FAIL - [EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener, [object Object\],[object Object\])" with the proper type] expected: FAIL @@ -331,9 +328,6 @@ [AbstractRange interface: attribute endContainer] expected: FAIL - [Event interface: new Event("foo") must inherit property "srcElement" with the proper type] - expected: FAIL - [AbortController must be primary interface of new AbortController()] expected: FAIL @@ -346,9 +340,6 @@ [CharacterData interface: operation remove()] expected: FAIL - [Event interface: attribute srcElement] - expected: FAIL - [Range interface: existence and properties of interface object] expected: FAIL @@ -532,9 +523,6 @@ [Attr interface: existence and properties of interface prototype object] expected: FAIL - [Event interface: document.createEvent("Event") must inherit property "srcElement" with the proper type] - expected: FAIL - [Element interface: operation replaceWith([object Object\],[object Object\])] expected: FAIL diff --git a/tests/wpt/metadata/dom/interfaces.html.ini b/tests/wpt/metadata/dom/interfaces.html.ini index 5586cd6a5b9..43939ada454 100644 --- a/tests/wpt/metadata/dom/interfaces.html.ini +++ b/tests/wpt/metadata/dom/interfaces.html.ini @@ -827,27 +827,18 @@ [DOM IDL tests] expected: FAIL - [Event interface: attribute srcElement] - expected: FAIL - [Event interface: operation composedPath()] expected: FAIL [Event interface: attribute composed] expected: FAIL - [Event interface: document.createEvent("Event") must inherit property "srcElement" with the proper type] - expected: FAIL - [Event interface: document.createEvent("Event") must inherit property "composedPath()" with the proper type] expected: FAIL [Event interface: document.createEvent("Event") must inherit property "composed" with the proper type] expected: FAIL - [Event interface: new Event("foo") must inherit property "srcElement" with the proper type] - expected: FAIL - [Event interface: new Event("foo") must inherit property "composedPath()" with the proper type] expected: FAIL @@ -857,9 +848,6 @@ [CustomEvent interface: operation initCustomEvent(DOMString, boolean, boolean, any)] expected: FAIL - [Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type] - expected: FAIL - [Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type] expected: FAIL