Reported at http://code.google.com/p/chromium/issues/detail?id=110068. <select id="sel1" size="4" onchange="alert('event fired: ' + document.getElementById('sel1').value);"> <option>RED</option> <option>GREEN</option> <option>BLUE</option> <option>YELLOW</option> </select> If you select an option by mouse dragging (not clicking), 'change' event doesn't fire. This problem was made by r99667 or r100111.
The root cause is that the mousedown handling in listBoxDefaultEventHandler() updates m_lastOnChangeSelection. If the listbox is scrollable, mousemove events are not dispatched.
Created attachment 122874 [details] Patch
Comment on attachment 122874 [details] Patch The test shows the evidence.
(In reply to comment #1) > The root cause is that the mousedown handling in listBoxDefaultEventHandler() updates m_lastOnChangeSelection. If the listbox is scrollable, mousemove events are not dispatched. Correction: mousedown -> mousemove BTW, HTMLSelectElement has multiple functions to update option selection, and they are confusing. We had better refactor/rename/document them.
Comment on attachment 122874 [details] Patch Attachment 122874 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/11282082 New failing tests: fast/forms/select-multiple-elements-with-mouse-drag-with-options-less-than-size.html
(In reply to comment #5) > (From update of attachment 122874 [details]) > Attachment 122874 [details] did not pass chromium-ews (chromium-xvfb): > Output: http://queues.webkit.org/results/11282082 > > New failing tests: > fast/forms/select-multiple-elements-with-mouse-drag-with-options-less-than-size.html The test didn't fail on Apple Mac and Chromium Mac with the patch.
Created attachment 123050 [details] Patch for landing
Comment on attachment 123050 [details] Patch for landing Clearing flags on attachment: 123050 Committed r105386: <http://trac.webkit.org/changeset/105386>
All reviewed patches have been landed. Closing bug.