Bug 153763

Summary: [iOS Simulator] fast/dom/event-handler-attributes.html failing
Product: WebKit Reporter: Ryan Haddad <ryanhaddad>
Component: New BugsAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: cdumez, darin, ddkilzer, jeremyj-wk, vodrickcarter987
Priority: P2    
Version: WebKit Nightly Build   
Hardware: iPhone / iPad   
OS: iOS 9.0   
Bug Depends on:    
Bug Blocks: 152130    

Description Ryan Haddad 2016-02-01 13:40:08 PST
[iOS Simulator] fast/dom/event-handler-attributes.html failing

<https://build.webkit.org/results/Apple%20iOS%209%20Simulator%20Release%20WK2%20(Tests)/r195975%20(2771)/results.html>
<http://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fdom%2Fevent-handler-attributes.html>

--- /Volumes/Data/slave/ios-simulator-9-release-tests-wk2/build/layout-test-results/fast/dom/event-handler-attributes-expected.txt
+++ /Volumes/Data/slave/ios-simulator-9-release-tests-wk2/build/layout-test-results/fast/dom/event-handler-attributes-actual.txt
@@ -148,7 +148,7 @@
 PASS testScriptAttribute(document, "ratechange") is "document"
 PASS testScriptAttribute(document, "readystatechange") is "document"
 PASS testScriptAttribute(document, "reset") is "document"
-PASS testScriptAttribute(document, "resize") is "document"
+FAIL testScriptAttribute(document, "resize") should be document. Was window, document.
 PASS testScriptAttribute(document, "scroll") is "document"
 PASS testScriptAttribute(document, "search") is "document"
 PASS testScriptAttribute(document, "seeked") is "document"
@@ -246,7 +246,7 @@
 PASS testElementAttribute(element, "progress") is "target"
 PASS testElementAttribute(element, "ratechange") is "target"
 PASS testElementAttribute(element, "reset") is "target"
-PASS testElementAttribute(element, "resize") is "target"
+FAIL testElementAttribute(element, "resize") should be target. Was target, window.
 PASS testElementAttribute(element, "scroll") is "target"
 PASS testElementAttribute(element, "search") is "target"
 PASS testElementAttribute(element, "seeked") is "target"
@@ -339,7 +339,7 @@
 PASS testElementAttribute(inputElement, "progress") is "target"
 PASS testElementAttribute(inputElement, "ratechange") is "target"
 PASS testElementAttribute(inputElement, "reset") is "target"
-PASS testElementAttribute(inputElement, "resize") is "target"
+FAIL testElementAttribute(inputElement, "resize") should be target. Was target, window.
 PASS testElementAttribute(inputElement, "scroll") is "target"
 PASS testElementAttribute(inputElement, "search") is "target"
 PASS testElementAttribute(inputElement, "seeked") is "target"
@@ -432,7 +432,7 @@
 PASS testElementAttribute(audioElement, "progress") is "target"
 PASS testElementAttribute(audioElement, "ratechange") is "target"
 PASS testElementAttribute(audioElement, "reset") is "target"
-PASS testElementAttribute(audioElement, "resize") is "target"
+FAIL testElementAttribute(audioElement, "resize") should be target. Was target, window.
 PASS testElementAttribute(audioElement, "scroll") is "target"
 PASS testElementAttribute(audioElement, "search") is "target"
 PASS testElementAttribute(audioElement, "seeked") is "target"
@@ -525,7 +525,7 @@
 PASS testElementAttribute(videoElement, "progress") is "target"
 PASS testElementAttribute(videoElement, "ratechange") is "target"
 PASS testElementAttribute(videoElement, "reset") is "target"
-PASS testElementAttribute(videoElement, "resize") is "target"
+FAIL testElementAttribute(videoElement, "resize") should be target. Was target, window.
 PASS testElementAttribute(videoElement, "scroll") is "target"
 PASS testElementAttribute(videoElement, "search") is "target"
 PASS testElementAttribute(videoElement, "seeked") is "target"
@@ -816,7 +816,7 @@
 PASS testElementAttribute(rectElement, "progress") is "target"
 PASS testElementAttribute(rectElement, "ratechange") is "target"
 PASS testElementAttribute(rectElement, "reset") is "target"
-PASS testElementAttribute(rectElement, "resize") is "target"
+FAIL testElementAttribute(rectElement, "resize") should be target. Was target, window.
 PASS testElementAttribute(rectElement, "scroll") is "target"
 PASS testElementAttribute(rectElement, "search") is "target"
 PASS testElementAttribute(rectElement, "seeked") is "target"
@@ -919,7 +919,7 @@
 FAIL testElementAttribute(nonHTMLElement, "ratechange") should be none. Was script: target; content: 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, "resize") should be none. Was script: target, window; 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.
Comment 1 Ryan Haddad 2016-02-01 13:40:29 PST
This test has been failing since it was added with <http://trac.webkit.org/changeset/195953>
Comment 2 Alexey Proskuryakov 2016-02-02 21:39:30 PST
Jeremy, could you please advise if this is expected behavior for iOS?
Comment 3 Jeremy Jones 2016-02-04 15:54:15 PST
(In reply to comment #2)
> Jeremy, could you please advise if this is expected behavior for iOS?

I expect these to behave the same on iOS and MacOS. This test is passing on MacOS, so I expect it to also pass in iOS. 

This is testing the change to dom/GlobalEventHandlers.idl and page/DOMWindow.idl
And they don't look to be platform specific.

I'll continue to investigate.
Comment 4 David Kilzer (:ddkilzer) 2016-02-08 12:18:13 PST
When IDL changes cause unexpected test failures, the first thing I try is to force a clean build to make sure everything is regenerated properly.  (That should NOT be required if we had proper dependency tracking, but apparently that's not fully fixed yet.)

Forced clean build on bot403:  <https://build.webkit.org/builders/Apple%20iOS%209%20Simulator%20Release%20%28Build%29/builds/3272>

Forced clean build on bot402:  <https://build.webkit.org/builders/Apple%20iOS%209%20Simulator%20Release%20%28Build%29/builds/3273>
Comment 5 Chris Dumez 2016-02-08 14:34:46 PST
This may be caused by:

    // FIXME: Would it be sufficient to special-case this code for <body> and <frameset>?
    //
    // This code was added to address <rdar://problem/5846492> Onorientationchange event not working for document.body.
    // Forward this call to addEventListener() to the window since these are window-only events.
    if (eventType == eventNames().orientationchangeEvent || eventType == eventNames().resizeEvent)
        targetNode->document().domWindow()->addEventListener(eventType, WTFMove(listener), useCapture);


in Node.cpp’s tryAddEventListener().

This code is iOS specific and goes and set and event listener for the ‘resize’ event on the Window for some reason.
Comment 6 Ryan Haddad 2016-02-10 16:45:25 PST
Added an ios-specific expectation to keep the test running during investigation in <https://trac.webkit.org/r196405>.