From d721dcbd451996438890eeaed8902ddd444d82be Mon Sep 17 00:00:00 2001 From: drexler Date: Thu, 28 Feb 2019 12:55:09 -0500 Subject: [PATCH 1/2] implement historical srcElement attribute for Event interface --- components/script/dom/event.rs | 5 +++++ components/script/dom/webidls/Event.webidl | 1 + .../Event-defaultPrevented-after-dispatch.html.ini | 3 --- .../events/Event-dispatch-detached-click.html.ini | 4 ---- .../events/Event-dispatch-other-document.html.ini | 4 ---- .../dom/events/EventListener-handleEvent.html.ini | 4 ---- tests/wpt/metadata/dom/interfaces.html.ini | 12 ------------ 7 files changed, 6 insertions(+), 27 deletions(-) delete mode 100644 tests/wpt/metadata/dom/events/Event-dispatch-detached-click.html.ini delete mode 100644 tests/wpt/metadata/dom/events/Event-dispatch-other-document.html.ini 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-defaultPrevented-after-dispatch.html.ini b/tests/wpt/metadata/dom/events/Event-defaultPrevented-after-dispatch.html.ini index 62b929e7696..5187ca56680 100644 --- a/tests/wpt/metadata/dom/events/Event-defaultPrevented-after-dispatch.html.ini +++ b/tests/wpt/metadata/dom/events/Event-defaultPrevented-after-dispatch.html.ini @@ -1,7 +1,4 @@ [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/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/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 From f58deb35c3a3f79bf69d14aafcae489687d40337 Mon Sep 17 00:00:00 2001 From: Stephen Muss Date: Thu, 5 Sep 2019 23:39:38 +1000 Subject: [PATCH 2/2] Removed references to passing test expectations --- .../dom/events/Event-constructors.html.ini | 7 ------- ...Event-defaultPrevented-after-dispatch.html.ini | 4 ---- .../metadata/dom/events/Event-initEvent.html.ini | 15 --------------- tests/wpt/metadata/dom/idlharness.any.js.ini | 9 --------- tests/wpt/metadata/dom/idlharness.window.js.ini | 12 ------------ 5 files changed, 47 deletions(-) delete mode 100644 tests/wpt/metadata/dom/events/Event-constructors.html.ini delete mode 100644 tests/wpt/metadata/dom/events/Event-defaultPrevented-after-dispatch.html.ini delete mode 100644 tests/wpt/metadata/dom/events/Event-initEvent.html.ini 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 5187ca56680..00000000000 --- a/tests/wpt/metadata/dom/events/Event-defaultPrevented-after-dispatch.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[Event-defaultPrevented-after-dispatch.html] - [Default prevention via returnValue] - 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/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