The problem is that async messages form UI process don't reach the Web process while it's waiting for a response to its sync window.print() message.
<rdar://problem/8895141>
Created attachment 82231 [details] proposed fix
Attachment 82231 [details] did not build on qt: Build output: http://queues.webkit.org/results/7867873
Created attachment 82233 [details] with qt build fix
Committed <http://trac.webkit.org/changeset/78426>.