2011-06-10 Anders Carlsson <andersca@apple.com>
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 11 Jun 2011 02:04:32 +0000 (02:04 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 11 Jun 2011 02:04:32 +0000 (02:04 +0000)
commit637ff43d6e0c83363acaf3ce76766009300c4f55
tree83963591d4dcc62f7d97f576788d4c57b1d3d403
parentcc2f26d1dc6b3a1e0f0e32ec06352ed65ef10620
2011-06-10  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        REGRESSION (WebKit2): window.showModalDialog() broken
        https://bugs.webkit.org/show_bug.cgi?id=62496
        <rdar://problem/9581492>

        If dispatching a message ends up creating a nested run loop, some incoming messages can end up not being
        delivered until we exit from the run loop.

        Fix this by using a Deque instead of a Vector for incoming messages, and get one message at a time and then
        dispatch it. That prevents us from having any lingering messages lying around in stack allocated space.

        * Platform/CoreIPC/Connection.cpp:
        (CoreIPC::Connection::waitForMessage):
        (CoreIPC::Connection::dispatchMessages):
        * Platform/CoreIPC/Connection.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@88588 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit2/ChangeLog
Source/WebKit2/Platform/CoreIPC/Connection.cpp
Source/WebKit2/Platform/CoreIPC/Connection.h