HTMLElement / SVGElement should implement GlobalEventHandlers, not Element
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 28 Jun 2016 05:10:30 +0000 (05:10 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 28 Jun 2016 05:10:30 +0000 (05:10 +0000)
https://bugs.webkit.org/show_bug.cgi?id=159191
<rdar://problem/27019299>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

HTMLElement / SVGElement should implement GlobalEventHandlers, not Element:
- https://html.spec.whatwg.org/multipage/dom.html#htmlelement
- https://www.w3.org/TR/SVG2/types.html#InterfaceSVGElement

Firefox and Chrome behave as per the specification.

Fixing this also fixes rendering on http://survey123.arcgis.com/.

No new tests, covered by existing tests that were rebaselined.

* dom/Element.idl:
* html/HTMLElement.idl:
* svg/SVGElement.idl:

LayoutTests:

* fast/dom/event-handler-attributes-expected.txt:
Rebaseline tests now that more checks are passing.

* js/dom/dom-static-property-for-in-iteration-expected.txt:
Rebaseline test now that enumeration order is different.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@202539 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/dom/event-handler-attributes-expected.txt
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt
LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/dom/Element.idl
Source/WebCore/html/HTMLElement.idl
Source/WebCore/svg/SVGElement.idl

index 8d8c38b..ddcc98d 100644 (file)
@@ -1,3 +1,17 @@
+2016-06-27  Chris Dumez  <cdumez@apple.com>
+
+        HTMLElement / SVGElement should implement GlobalEventHandlers, not Element
+        https://bugs.webkit.org/show_bug.cgi?id=159191
+        <rdar://problem/27019299>
+
+        Reviewed by Ryosuke Niwa.
+
+        * fast/dom/event-handler-attributes-expected.txt:
+        Rebaseline tests now that more checks are passing.
+
+        * js/dom/dom-static-property-for-in-iteration-expected.txt:
+        Rebaseline test now that enumeration order is different.
+
 2016-06-27  Simon Fraser  <simon.fraser@apple.com>
 
         [iOS] -webkit-overflow-scrolling: touch prevents repaint with RTL
index d9cff48..3a9bf17 100644 (file)
@@ -854,7 +854,7 @@ PASS testElementAttribute(rectElement, "unload") is "none"
 
 Event names on a non-HTML element
 
-FAIL testElementAttribute(nonHTMLElement, "abort") should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, "abort") is "none"
 FAIL testElementAttribute(nonHTMLElement, "animationend") should be none. Was script: target; content: none.
 FAIL testElementAttribute(nonHTMLElement, "animationiteration") should be none. Was script: target; content: none.
 FAIL testElementAttribute(nonHTMLElement, "animationstart") should be none. Was script: target; content: none.
@@ -863,84 +863,84 @@ FAIL testElementAttribute(nonHTMLElement, "beforecut") should be none. Was scrip
 FAIL testElementAttribute(nonHTMLElement, "beforeload") should be none. Was script: target; content: none.
 FAIL testElementAttribute(nonHTMLElement, "beforepaste") should be none. Was script: target; content: none.
 PASS testElementAttribute(nonHTMLElement, "beforeunload") is "none"
-FAIL testElementAttribute(nonHTMLElement, "blur") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "canplay") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "canplaythrough") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "change") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "click") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "contextmenu") should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, "blur") is "none"
+PASS testElementAttribute(nonHTMLElement, "canplay") is "none"
+PASS testElementAttribute(nonHTMLElement, "canplaythrough") is "none"
+PASS testElementAttribute(nonHTMLElement, "change") is "none"
+PASS testElementAttribute(nonHTMLElement, "click") is "none"
+PASS testElementAttribute(nonHTMLElement, "contextmenu") is "none"
 FAIL testElementAttribute(nonHTMLElement, "copy") should be none. Was script: target; content: none.
 FAIL testElementAttribute(nonHTMLElement, "cut") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "dblclick") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "drag") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "dragend") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "dragenter") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "dragleave") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "dragover") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "dragstart") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "drop") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "durationchange") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "emptied") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "ended") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "error") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "focus") should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, "dblclick") is "none"
+PASS testElementAttribute(nonHTMLElement, "drag") is "none"
+PASS testElementAttribute(nonHTMLElement, "dragend") is "none"
+PASS testElementAttribute(nonHTMLElement, "dragenter") is "none"
+PASS testElementAttribute(nonHTMLElement, "dragleave") is "none"
+PASS testElementAttribute(nonHTMLElement, "dragover") is "none"
+PASS testElementAttribute(nonHTMLElement, "dragstart") is "none"
+PASS testElementAttribute(nonHTMLElement, "drop") is "none"
+PASS testElementAttribute(nonHTMLElement, "durationchange") is "none"
+PASS testElementAttribute(nonHTMLElement, "emptied") is "none"
+PASS testElementAttribute(nonHTMLElement, "ended") is "none"
+PASS testElementAttribute(nonHTMLElement, "error") is "none"
+PASS testElementAttribute(nonHTMLElement, "focus") is "none"
 FAIL testElementAttribute(nonHTMLElement, "focusin") should be none. Was script: target; content: none.
 FAIL testElementAttribute(nonHTMLElement, "focusout") should be none. Was script: target; content: none.
 PASS testElementAttribute(nonHTMLElement, "hashchange") is "none"
-FAIL testElementAttribute(nonHTMLElement, "input") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "invalid") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "keydown") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "keypress") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "keyup") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "load") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "loadeddata") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "loadedmetadata") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "loadstart") should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, "input") is "none"
+PASS testElementAttribute(nonHTMLElement, "invalid") is "none"
+PASS testElementAttribute(nonHTMLElement, "keydown") is "none"
+PASS testElementAttribute(nonHTMLElement, "keypress") is "none"
+PASS testElementAttribute(nonHTMLElement, "keyup") is "none"
+PASS testElementAttribute(nonHTMLElement, "load") is "none"
+PASS testElementAttribute(nonHTMLElement, "loadeddata") is "none"
+PASS testElementAttribute(nonHTMLElement, "loadedmetadata") is "none"
+PASS testElementAttribute(nonHTMLElement, "loadstart") is "none"
 PASS testElementAttribute(nonHTMLElement, "message") is "none"
-FAIL testElementAttribute(nonHTMLElement, "mousedown") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "mouseenter") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "mouseleave") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "mousemove") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "mouseout") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "mouseover") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "mouseup") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "mousewheel") should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, "mousedown") is "none"
+PASS testElementAttribute(nonHTMLElement, "mouseenter") is "none"
+PASS testElementAttribute(nonHTMLElement, "mouseleave") is "none"
+PASS testElementAttribute(nonHTMLElement, "mousemove") is "none"
+PASS testElementAttribute(nonHTMLElement, "mouseout") is "none"
+PASS testElementAttribute(nonHTMLElement, "mouseover") is "none"
+PASS testElementAttribute(nonHTMLElement, "mouseup") is "none"
+PASS testElementAttribute(nonHTMLElement, "mousewheel") is "none"
 PASS testElementAttribute(nonHTMLElement, "noneventname") is "none"
 PASS testElementAttribute(nonHTMLElement, "offline") is "none"
 PASS testElementAttribute(nonHTMLElement, "online") is "none"
 PASS testElementAttribute(nonHTMLElement, "pagehide") is "none"
 PASS testElementAttribute(nonHTMLElement, "pageshow") is "none"
 FAIL testElementAttribute(nonHTMLElement, "paste") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "pause") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "play") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "playing") should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, "pause") is "none"
+PASS testElementAttribute(nonHTMLElement, "play") is "none"
+PASS testElementAttribute(nonHTMLElement, "playing") is "none"
 PASS testElementAttribute(nonHTMLElement, "popstate") is "none"
-FAIL testElementAttribute(nonHTMLElement, "progress") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "ratechange") should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, "progress") is "none"
+PASS testElementAttribute(nonHTMLElement, "ratechange") is "none"
 PASS testElementAttribute(nonHTMLElement, "readystatechange") is "none"
-FAIL testElementAttribute(nonHTMLElement, "reset") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "resize") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "scroll") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "search") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "seeked") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "seeking") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "select") should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, "reset") is "none"
+PASS testElementAttribute(nonHTMLElement, "resize") is "none"
+PASS testElementAttribute(nonHTMLElement, "scroll") is "none"
+PASS testElementAttribute(nonHTMLElement, "search") is "none"
+PASS testElementAttribute(nonHTMLElement, "seeked") is "none"
+PASS testElementAttribute(nonHTMLElement, "seeking") is "none"
+PASS testElementAttribute(nonHTMLElement, "select") is "none"
 PASS testElementAttribute(nonHTMLElement, "selectionchange") is "none"
 FAIL testElementAttribute(nonHTMLElement, "selectstart") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "stalled") should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, "stalled") is "none"
 PASS testElementAttribute(nonHTMLElement, "storage") is "none"
-FAIL testElementAttribute(nonHTMLElement, "submit") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "suspend") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "timeupdate") should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, "submit") is "none"
+PASS testElementAttribute(nonHTMLElement, "suspend") is "none"
+PASS testElementAttribute(nonHTMLElement, "timeupdate") is "none"
 FAIL testElementAttribute(nonHTMLElement, "transitionend") should be none. Was script: target; content: none.
 PASS testElementAttribute(nonHTMLElement, "unload") is "none"
-FAIL testElementAttribute(nonHTMLElement, "volumechange") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "waiting") should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, "volumechange") is "none"
+PASS testElementAttribute(nonHTMLElement, "waiting") is "none"
 FAIL testElementAttribute(nonHTMLElement, "webkitanimationend") should be none. Was script: target; content: none.
 FAIL testElementAttribute(nonHTMLElement, "webkitanimationiteration") should be none. Was script: target; content: none.
 FAIL testElementAttribute(nonHTMLElement, "webkitanimationstart") should be none. Was script: target; content: none.
 FAIL testElementAttribute(nonHTMLElement, "webkittransitionend") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "wheel") should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, "wheel") is "none"
 
 PASS successfullyParsed is true
 
index 19d4506..238b620 100644 (file)
@@ -1,3 +1,15 @@
+2016-06-27  Chris Dumez  <cdumez@apple.com>
+
+        HTMLElement / SVGElement should implement GlobalEventHandlers, not Element
+        https://bugs.webkit.org/show_bug.cgi?id=159191
+        <rdar://problem/27019299>
+
+        Reviewed by Ryosuke Niwa.
+
+        Rebaseline test now that more checks are passing.
+
+        * web-platform-tests/html/dom/interfaces-expected.txt:
+
 2016-06-26  Youenn Fablet  <youennf@gmail.com>
 
         Refreshing WPT tests up to 12b7800
index e8194bb..8adc415 100644 (file)
@@ -1149,69 +1149,69 @@ FAIL HTMLElement interface: attribute commandIcon assert_true: The prototype obj
 FAIL HTMLElement interface: attribute commandHidden assert_true: The prototype object must have a property "commandHidden" expected true got false
 FAIL HTMLElement interface: attribute commandDisabled assert_true: The prototype object must have a property "commandDisabled" expected true got false
 FAIL HTMLElement interface: attribute commandChecked assert_true: The prototype object must have a property "commandChecked" expected true got false
-FAIL HTMLElement interface: attribute onabort assert_own_property: expected property "onabort" missing
+PASS HTMLElement interface: attribute onabort 
 FAIL HTMLElement interface: attribute onautocomplete assert_true: The prototype object must have a property "onautocomplete" expected true got false
 FAIL HTMLElement interface: attribute onautocompleteerror assert_true: The prototype object must have a property "onautocompleteerror" expected true got false
-FAIL HTMLElement interface: attribute onblur assert_own_property: expected property "onblur" missing
+PASS HTMLElement interface: attribute onblur 
 FAIL HTMLElement interface: attribute oncancel assert_true: The prototype object must have a property "oncancel" expected true got false
-FAIL HTMLElement interface: attribute oncanplay assert_own_property: expected property "oncanplay" missing
-FAIL HTMLElement interface: attribute oncanplaythrough assert_own_property: expected property "oncanplaythrough" missing
-FAIL HTMLElement interface: attribute onchange assert_own_property: expected property "onchange" missing
-FAIL HTMLElement interface: attribute onclick assert_own_property: expected property "onclick" missing
+PASS HTMLElement interface: attribute oncanplay 
+PASS HTMLElement interface: attribute oncanplaythrough 
+PASS HTMLElement interface: attribute onchange 
+PASS HTMLElement interface: attribute onclick 
 FAIL HTMLElement interface: attribute onclose assert_true: The prototype object must have a property "onclose" expected true got false
-FAIL HTMLElement interface: attribute oncontextmenu assert_own_property: expected property "oncontextmenu" missing
+PASS HTMLElement interface: attribute oncontextmenu 
 FAIL HTMLElement interface: attribute oncuechange assert_true: The prototype object must have a property "oncuechange" expected true got false
-FAIL HTMLElement interface: attribute ondblclick assert_own_property: expected property "ondblclick" missing
-FAIL HTMLElement interface: attribute ondrag assert_own_property: expected property "ondrag" missing
-FAIL HTMLElement interface: attribute ondragend assert_own_property: expected property "ondragend" missing
-FAIL HTMLElement interface: attribute ondragenter assert_own_property: expected property "ondragenter" missing
+PASS HTMLElement interface: attribute ondblclick 
+PASS HTMLElement interface: attribute ondrag 
+PASS HTMLElement interface: attribute ondragend 
+PASS HTMLElement interface: attribute ondragenter 
 FAIL HTMLElement interface: attribute ondragexit assert_true: The prototype object must have a property "ondragexit" expected true got false
-FAIL HTMLElement interface: attribute ondragleave assert_own_property: expected property "ondragleave" missing
-FAIL HTMLElement interface: attribute ondragover assert_own_property: expected property "ondragover" missing
-FAIL HTMLElement interface: attribute ondragstart assert_own_property: expected property "ondragstart" missing
-FAIL HTMLElement interface: attribute ondrop assert_own_property: expected property "ondrop" missing
-FAIL HTMLElement interface: attribute ondurationchange assert_own_property: expected property "ondurationchange" missing
-FAIL HTMLElement interface: attribute onemptied assert_own_property: expected property "onemptied" missing
-FAIL HTMLElement interface: attribute onended assert_own_property: expected property "onended" missing
-FAIL HTMLElement interface: attribute onerror assert_own_property: expected property "onerror" missing
-FAIL HTMLElement interface: attribute onfocus assert_own_property: expected property "onfocus" missing
-FAIL HTMLElement interface: attribute oninput assert_own_property: expected property "oninput" missing
-FAIL HTMLElement interface: attribute oninvalid assert_own_property: expected property "oninvalid" missing
-FAIL HTMLElement interface: attribute onkeydown assert_own_property: expected property "onkeydown" missing
-FAIL HTMLElement interface: attribute onkeypress assert_own_property: expected property "onkeypress" missing
-FAIL HTMLElement interface: attribute onkeyup assert_own_property: expected property "onkeyup" missing
-FAIL HTMLElement interface: attribute onload assert_own_property: expected property "onload" missing
-FAIL HTMLElement interface: attribute onloadeddata assert_own_property: expected property "onloadeddata" missing
-FAIL HTMLElement interface: attribute onloadedmetadata assert_own_property: expected property "onloadedmetadata" missing
-FAIL HTMLElement interface: attribute onloadstart assert_own_property: expected property "onloadstart" missing
-FAIL HTMLElement interface: attribute onmousedown assert_own_property: expected property "onmousedown" missing
-FAIL HTMLElement interface: attribute onmouseenter assert_own_property: expected property "onmouseenter" missing
-FAIL HTMLElement interface: attribute onmouseleave assert_own_property: expected property "onmouseleave" missing
-FAIL HTMLElement interface: attribute onmousemove assert_own_property: expected property "onmousemove" missing
-FAIL HTMLElement interface: attribute onmouseout assert_own_property: expected property "onmouseout" missing
-FAIL HTMLElement interface: attribute onmouseover assert_own_property: expected property "onmouseover" missing
-FAIL HTMLElement interface: attribute onmouseup assert_own_property: expected property "onmouseup" missing
-FAIL HTMLElement interface: attribute onmousewheel assert_own_property: expected property "onmousewheel" missing
-FAIL HTMLElement interface: attribute onpause assert_own_property: expected property "onpause" missing
-FAIL HTMLElement interface: attribute onplay assert_own_property: expected property "onplay" missing
-FAIL HTMLElement interface: attribute onplaying assert_own_property: expected property "onplaying" missing
-FAIL HTMLElement interface: attribute onprogress assert_own_property: expected property "onprogress" missing
-FAIL HTMLElement interface: attribute onratechange assert_own_property: expected property "onratechange" missing
-FAIL HTMLElement interface: attribute onreset assert_own_property: expected property "onreset" missing
-FAIL HTMLElement interface: attribute onresize assert_own_property: expected property "onresize" missing
-FAIL HTMLElement interface: attribute onscroll assert_own_property: expected property "onscroll" missing
-FAIL HTMLElement interface: attribute onseeked assert_own_property: expected property "onseeked" missing
-FAIL HTMLElement interface: attribute onseeking assert_own_property: expected property "onseeking" missing
-FAIL HTMLElement interface: attribute onselect assert_own_property: expected property "onselect" missing
+PASS HTMLElement interface: attribute ondragleave 
+PASS HTMLElement interface: attribute ondragover 
+PASS HTMLElement interface: attribute ondragstart 
+PASS HTMLElement interface: attribute ondrop 
+PASS HTMLElement interface: attribute ondurationchange 
+PASS HTMLElement interface: attribute onemptied 
+PASS HTMLElement interface: attribute onended 
+PASS HTMLElement interface: attribute onerror 
+PASS HTMLElement interface: attribute onfocus 
+PASS HTMLElement interface: attribute oninput 
+PASS HTMLElement interface: attribute oninvalid 
+PASS HTMLElement interface: attribute onkeydown 
+PASS HTMLElement interface: attribute onkeypress 
+PASS HTMLElement interface: attribute onkeyup 
+PASS HTMLElement interface: attribute onload 
+PASS HTMLElement interface: attribute onloadeddata 
+PASS HTMLElement interface: attribute onloadedmetadata 
+PASS HTMLElement interface: attribute onloadstart 
+PASS HTMLElement interface: attribute onmousedown 
+PASS HTMLElement interface: attribute onmouseenter 
+PASS HTMLElement interface: attribute onmouseleave 
+PASS HTMLElement interface: attribute onmousemove 
+PASS HTMLElement interface: attribute onmouseout 
+PASS HTMLElement interface: attribute onmouseover 
+PASS HTMLElement interface: attribute onmouseup 
+PASS HTMLElement interface: attribute onmousewheel 
+PASS HTMLElement interface: attribute onpause 
+PASS HTMLElement interface: attribute onplay 
+PASS HTMLElement interface: attribute onplaying 
+PASS HTMLElement interface: attribute onprogress 
+PASS HTMLElement interface: attribute onratechange 
+PASS HTMLElement interface: attribute onreset 
+PASS HTMLElement interface: attribute onresize 
+PASS HTMLElement interface: attribute onscroll 
+PASS HTMLElement interface: attribute onseeked 
+PASS HTMLElement interface: attribute onseeking 
+PASS HTMLElement interface: attribute onselect 
 FAIL HTMLElement interface: attribute onshow assert_true: The prototype object must have a property "onshow" expected true got false
 FAIL HTMLElement interface: attribute onsort assert_true: The prototype object must have a property "onsort" expected true got false
-FAIL HTMLElement interface: attribute onstalled assert_own_property: expected property "onstalled" missing
-FAIL HTMLElement interface: attribute onsubmit assert_own_property: expected property "onsubmit" missing
-FAIL HTMLElement interface: attribute onsuspend assert_own_property: expected property "onsuspend" missing
-FAIL HTMLElement interface: attribute ontimeupdate assert_own_property: expected property "ontimeupdate" missing
+PASS HTMLElement interface: attribute onstalled 
+PASS HTMLElement interface: attribute onsubmit 
+PASS HTMLElement interface: attribute onsuspend 
+PASS HTMLElement interface: attribute ontimeupdate 
 FAIL HTMLElement interface: attribute ontoggle assert_true: The prototype object must have a property "ontoggle" expected true got false
-FAIL HTMLElement interface: attribute onvolumechange assert_own_property: expected property "onvolumechange" missing
-FAIL HTMLElement interface: attribute onwaiting assert_own_property: expected property "onwaiting" missing
+PASS HTMLElement interface: attribute onvolumechange 
+PASS HTMLElement interface: attribute onwaiting 
 PASS HTMLElement must be primary interface of document.createElement("noscript") 
 PASS Stringification of document.createElement("noscript") 
 PASS HTMLElement interface: document.createElement("noscript") must inherit property "title" with the proper type (0) 
index 424a099..79f5c9b 100644 (file)
@@ -45,32 +45,6 @@ PASS a["outerText"] is nerget
 PASS a["contentEditable"] is inherit
 PASS a["isContentEditable"] is false
 PASS a["spellcheck"] is true
-PASS a["tagName"] is A
-PASS a["attributes"] is [object NamedNodeMap]
-PASS a["style"] is [object CSSStyleDeclaration]
-PASS a["id"] is foo
-PASS a["offsetLeft"] is 8
-PASS a["offsetTop"] is 789
-PASS a["offsetWidth"] is 40
-PASS a["offsetHeight"] is 18
-PASS a["clientLeft"] is 0
-PASS a["clientTop"] is 0
-PASS a["clientWidth"] is 0
-PASS a["clientHeight"] is 0
-PASS a["scrollLeft"] is 0
-PASS a["scrollTop"] is 0
-PASS a["scrollWidth"] is 0
-PASS a["scrollHeight"] is 0
-PASS a["offsetParent"] is [object HTMLBodyElement]
-PASS a["innerHTML"] is nerget
-PASS a["outerHTML"] is <a id="foo" href="bar">nerget</a>
-PASS a["className"] is 
-PASS a["classList"] is 
-PASS a["dataset"] is [object DOMStringMap]
-PASS a["uiactions"] is 
-PASS a["webkitRegionOverset"] is undefined
-PASS a["shadowRoot"] is null
-PASS a["slot"] is 
 PASS a["onabort"] is null
 PASS a["onblur"] is null
 PASS a["oncanplay"] is null
@@ -125,6 +99,32 @@ PASS a["onsuspend"] is null
 PASS a["ontimeupdate"] is null
 PASS a["onvolumechange"] is null
 PASS a["onwaiting"] is null
+PASS a["tagName"] is A
+PASS a["attributes"] is [object NamedNodeMap]
+PASS a["style"] is [object CSSStyleDeclaration]
+PASS a["id"] is foo
+PASS a["offsetLeft"] is 8
+PASS a["offsetTop"] is 1599
+PASS a["offsetWidth"] is 40
+PASS a["offsetHeight"] is 18
+PASS a["clientLeft"] is 0
+PASS a["clientTop"] is 0
+PASS a["clientWidth"] is 0
+PASS a["clientHeight"] is 0
+PASS a["scrollLeft"] is 0
+PASS a["scrollTop"] is 0
+PASS a["scrollWidth"] is 0
+PASS a["scrollHeight"] is 0
+PASS a["offsetParent"] is [object HTMLBodyElement]
+PASS a["innerHTML"] is nerget
+PASS a["outerHTML"] is <a id="foo" href="bar">nerget</a>
+PASS a["className"] is 
+PASS a["classList"] is 
+PASS a["dataset"] is [object DOMStringMap]
+PASS a["uiactions"] is 
+PASS a["webkitRegionOverset"] is undefined
+PASS a["shadowRoot"] is null
+PASS a["slot"] is 
 PASS a["previousElementSibling"] is [object HTMLDivElement]
 PASS a["nextElementSibling"] is [object HTMLScriptElement]
 PASS a["assignedSlot"] is null
index 8284712..442fbbf 100644 (file)
@@ -1,3 +1,25 @@
+2016-06-27  Chris Dumez  <cdumez@apple.com>
+
+        HTMLElement / SVGElement should implement GlobalEventHandlers, not Element
+        https://bugs.webkit.org/show_bug.cgi?id=159191
+        <rdar://problem/27019299>
+
+        Reviewed by Ryosuke Niwa.
+
+        HTMLElement / SVGElement should implement GlobalEventHandlers, not Element:
+        - https://html.spec.whatwg.org/multipage/dom.html#htmlelement
+        - https://www.w3.org/TR/SVG2/types.html#InterfaceSVGElement
+
+        Firefox and Chrome behave as per the specification.
+
+        Fixing this also fixes rendering on http://survey123.arcgis.com/.
+
+        No new tests, covered by existing tests that were rebaselined.
+
+        * dom/Element.idl:
+        * html/HTMLElement.idl:
+        * svg/SVGElement.idl:
+
 2016-06-27  Myles C. Maxfield  <mmaxfield@apple.com>
 
         [macOS] Test gardening: Generic font families should not map to fonts which aren't installed
index 9b65f5c..3f5ebfe 100644 (file)
@@ -243,4 +243,3 @@ dictionary ShadowRootInit {
 Element implements ChildNode;
 Element implements ParentNode;
 Element implements NonDocumentTypeChildNode;
-Element implements GlobalEventHandlers;
index a6c9091..ddfcbf3 100644 (file)
@@ -68,3 +68,5 @@
     readonly attribute DOMString titleDisplayString;
 #endif
 };
+
+HTMLElement implements GlobalEventHandlers;
index c3ba8b3..a35a0fd 100644 (file)
@@ -47,3 +47,4 @@
 #endif
 };
 
+SVGElement implements GlobalEventHandlers;