Title: [167840] trunk
- Revision
- 167840
- Author
- [email protected]
- Date
- 2014-04-25 21:41:42 -0700 (Fri, 25 Apr 2014)
Log Message
REGRESSION (r167689): Hovering file name in a file input causes a crash
https://bugs.webkit.org/show_bug.cgi?id=132214
Reviewed by Andreas Kling.
Source/WebCore:
The bug was caused by callDefaultEventHandlersInTheBubblingOrder unconditionally
accessing path.contextAt(0) even if the event path was empty.
Fixed the bug by exiting early when the event path is empty.
Test: fast/events/shadow-event-path-2.html
* dom/EventDispatcher.cpp:
(WebCore::callDefaultEventHandlersInTheBubblingOrder):
LayoutTests:
Add a regression test.
* fast/events/shadow-event-path-2-expected.txt: Added.
* fast/events/shadow-event-path-2.html: Added.
* fast/events/shadow-event-path.html:
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (167839 => 167840)
--- trunk/LayoutTests/ChangeLog 2014-04-26 03:54:33 UTC (rev 167839)
+++ trunk/LayoutTests/ChangeLog 2014-04-26 04:41:42 UTC (rev 167840)
@@ -1,3 +1,16 @@
+2014-04-25 Ryosuke Niwa <[email protected]>
+
+ REGRESSION (r167689): Hovering file name in a file input causes a crash
+ https://bugs.webkit.org/show_bug.cgi?id=132214
+
+ Reviewed by Andreas Kling.
+
+ Add a regression test.
+
+ * fast/events/shadow-event-path-2-expected.txt: Added.
+ * fast/events/shadow-event-path-2.html: Added.
+ * fast/events/shadow-event-path.html:
+
2014-04-25 Oliver Hunt <[email protected]>
Need earlier cell test
Added: trunk/LayoutTests/fast/events/shadow-event-path-2-expected.txt (0 => 167840)
--- trunk/LayoutTests/fast/events/shadow-event-path-2-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/events/shadow-event-path-2-expected.txt 2014-04-26 04:41:42 UTC (rev 167840)
@@ -0,0 +1,1246 @@
+This test records target and relatedTarget at each element while dispatching a mouse click event at an input element.
+
+
+Content:<div id="detailsContainer"><input id="target" type="file"></div>
+
+mouseover@html
+ target:html
+ relatedTarget:null
+
+mouseover@document
+ target:html
+ relatedTarget:null
+
+mouseover@window
+ target:html
+ relatedTarget:null
+
+mouseenter@html
+ target:html
+ relatedTarget:null
+
+mousemove@html
+ target:html
+ relatedTarget:null
+
+mousemove@document
+ target:html
+ relatedTarget:null
+
+mousemove@window
+ target:html
+ relatedTarget:null
+
+mouseout@html
+ target:html
+ relatedTarget:input#target
+
+mouseout@document
+ target:html
+ relatedTarget:input#target
+
+mouseout@window
+ target:html
+ relatedTarget:input#target
+
+mouseover@input#target
+ target:input#target
+ relatedTarget:html
+
+mouseover@div#detailsContainer
+ target:input#target
+ relatedTarget:html
+
+mouseover@body
+ target:input#target
+ relatedTarget:html
+
+mouseover@html
+ target:input#target
+ relatedTarget:html
+
+mouseover@document
+ target:input#target
+ relatedTarget:html
+
+mouseover@window
+ target:input#target
+ relatedTarget:html
+
+mouseenter@input#target
+ target:input#target
+ relatedTarget:html
+
+mouseenter@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:html
+
+mouseenter@body
+ target:body
+ relatedTarget:html
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mousemove@input#target
+ target:input#target
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:input#target
+ relatedTarget:null
+
+mousemove@body
+ target:input#target
+ relatedTarget:null
+
+mousemove@html
+ target:input#target
+ relatedTarget:null
+
+mousemove@document
+ target:input#target
+ relatedTarget:null
+
+mousemove@window
+ target:input#target
+ relatedTarget:null
+
+mouseout@input#target
+ target:input#target
+ relatedTarget:div#detailsContainer
+
+mouseout@div#detailsContainer
+ target:input#target
+ relatedTarget:div#detailsContainer
+
+mouseout@body
+ target:input#target
+ relatedTarget:div#detailsContainer
+
+mouseout@html
+ target:input#target
+ relatedTarget:div#detailsContainer
+
+mouseout@document
+ target:input#target
+ relatedTarget:div#detailsContainer
+
+mouseout@window
+ target:input#target
+ relatedTarget:div#detailsContainer
+
+mouseleave@input#target
+ target:input#target
+ relatedTarget:div#detailsContainer
+
+mouseover@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:input#target
+
+mouseover@body
+ target:div#detailsContainer
+ relatedTarget:input#target
+
+mouseover@html
+ target:div#detailsContainer
+ relatedTarget:input#target
+
+mouseover@document
+ target:div#detailsContainer
+ relatedTarget:input#target
+
+mouseover@window
+ target:div#detailsContainer
+ relatedTarget:input#target
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@div#detailsContainer
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@body
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@html
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@document
+ target:div#detailsContainer
+ relatedTarget:null
+
+mousemove@window
+ target:div#detailsContainer
+ relatedTarget:null
+
+
Added: trunk/LayoutTests/fast/events/shadow-event-path-2.html (0 => 167840)
--- trunk/LayoutTests/fast/events/shadow-event-path-2.html (rev 0)
+++ trunk/LayoutTests/fast/events/shadow-event-path-2.html 2014-04-26 04:41:42 UTC (rev 167840)
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<body>
+<p>This test records target and relatedTarget at each element while dispatching a mouse click event at an input element.</p>
+<div id="detailsContainer"><input id="target" type="file"></div>
+<pre id="log"></pre>
+<script src=""
+<script>
+
+var detailsContainer = document.getElementById('detailsContainer');
+log('Content:' + detailsContainer.outerHTML + '\n');
+
+if (window.testRunner && !window.eventSender)
+ log('This test requires eventSender.');
+else if (window.eventSender) {
+ var target = document.getElementById('target');
+ for (var x = -10; x <= 500; x += 10)
+ eventSender.mouseMoveTo(target.offsetLeft + x, target.offsetTop + target.offsetHeight / 2);
+}
+
+</script>
+</body>
+</html>
Modified: trunk/LayoutTests/fast/events/shadow-event-path.html (167839 => 167840)
--- trunk/LayoutTests/fast/events/shadow-event-path.html 2014-04-26 03:54:33 UTC (rev 167839)
+++ trunk/LayoutTests/fast/events/shadow-event-path.html 2014-04-26 04:41:42 UTC (rev 167840)
@@ -4,62 +4,22 @@
<p>This test records target and relatedTarget at each element while dispatching a mouse click event at an input element.</p>
<div id="detailsContainer"><details><summary><div id="divInsideSummary"><input id="target" type="text" size="10"></summary></div></detials></div>
<pre id="log"></pre>
+<script src=""
<script>
-if (window.testRunner)
- testRunner.dumpAsText();
+var detailsContainer = document.getElementById('detailsContainer');
+log('Content:' + detailsContainer.outerHTML + '\n');
-function targetIdentifier(target) {
- if (target === undefined || target === null)
- return target;
- if (target === window)
- return 'window';
- if (target === document)
- return 'document';
- return target.localName + (target.id ? '#' + target.id : '');
-}
-
-function attachListeners(eventname) {
- var targets = Array.prototype.slice.call(document.querySelectorAll('*'));
- targets.push(window);
- targets.push(document);
- targets.forEach(function (target) {
- target.addEventListener(eventname, function (event) {
- log.textContent += eventname + '@' + targetIdentifier(target) + '\n'
- + ' target:' + targetIdentifier(event.target) + '\n'
- + ' relatedTarget:' + targetIdentifier(event.relatedTarget) + '\n\n';
- });
- });
-}
-
-var log = document.getElementById('log');
-log.textContent = 'Content:' + detailsContainer.outerHTML + '\n\n';
-var target = document.getElementById('target');
-
-attachListeners('mousemove');
-attachListeners('mousedown');
-attachListeners('mouseover');
-attachListeners('mouseout');
-attachListeners('mouseenter');
-attachListeners('mouseleave');
-attachListeners('mouseup');
-attachListeners('click');
-
-function runTest() {
- testRunner.waitUntilDone();
+if (window.testRunner && !window.eventSender)
+ log('This test requires eventSender.');
+else if (window.eventSender) {
+ var target = document.getElementById('target');
eventSender.mouseMoveTo(target.offsetLeft + target.offsetWidth / 2, target.offsetTop + target.offsetHeight / 2);
eventSender.mouseMoveTo(target.offsetLeft + target.offsetWidth + 100, target.offsetTop + target.offsetHeight / 2);
eventSender.mouseDown();
eventSender.mouseUp();
- testRunner.notifyDone();
}
-if (window.testRunner && !window.eventSender)
- log.textContent += 'This test requires eventSender.';
-else if (window.eventSender) {
- window._onload_ = runTest;
-}
-
</script>
</body>
</html>
Modified: trunk/Source/WebCore/ChangeLog (167839 => 167840)
--- trunk/Source/WebCore/ChangeLog 2014-04-26 03:54:33 UTC (rev 167839)
+++ trunk/Source/WebCore/ChangeLog 2014-04-26 04:41:42 UTC (rev 167840)
@@ -1,3 +1,20 @@
+2014-04-25 Ryosuke Niwa <[email protected]>
+
+ REGRESSION (r167689): Hovering file name in a file input causes a crash
+ https://bugs.webkit.org/show_bug.cgi?id=132214
+
+ Reviewed by Andreas Kling.
+
+ The bug was caused by callDefaultEventHandlersInTheBubblingOrder unconditionally
+ accessing path.contextAt(0) even if the event path was empty.
+
+ Fixed the bug by exiting early when the event path is empty.
+
+ Test: fast/events/shadow-event-path-2.html
+
+ * dom/EventDispatcher.cpp:
+ (WebCore::callDefaultEventHandlersInTheBubblingOrder):
+
2014-04-25 Tim Horton <[email protected]>
REGRESSION (r167828): http/tests/media/hls/video-controls-live-stream.html fails
Modified: trunk/Source/WebCore/dom/EventDispatcher.cpp (167839 => 167840)
--- trunk/Source/WebCore/dom/EventDispatcher.cpp 2014-04-26 03:54:33 UTC (rev 167839)
+++ trunk/Source/WebCore/dom/EventDispatcher.cpp 2014-04-26 04:41:42 UTC (rev 167840)
@@ -262,6 +262,9 @@
static void callDefaultEventHandlersInTheBubblingOrder(Event& event, const EventPath& path)
{
+ if (path.isEmpty())
+ return;
+
// Non-bubbling events call only one default event handler, the one for the target.
path.contextAt(0).node()->defaultEventHandler(&event);
ASSERT(!event.defaultPrevented());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes