Messages that arrive to the web process after an input event might be processed before the input event because all messages go to a single queue that gets iterated over by handleMessages(). What then happens is that one handleMessages() call processes all of the messages, and the subsequent handleMessages() handle none. It effectively promotes messages ahead of input events. <rdar://problem/11386129>
Created attachment 140380 [details] Patch
Comment on attachment 140380 [details] Patch r=me
Committed r116226: <http://trac.webkit.org/changeset/116226>