PPAPI: Never re-enter JavaScript for PostMessage.
commit3fe4ceee750b2cd130bd402de3d371d8518c3eba
authordmichael <dmichael@chromium.org>
Thu, 25 Sep 2014 22:26:33 +0000 (25 15:26 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 25 Sep 2014 22:26:48 +0000 (25 22:26 +0000)
tree1b9c6bcb2bec231d0ad5dd0179bfd38a140b5992
parentbf6bf16715f0183864ad0b8535ddecc91666ed25
PPAPI: Never re-enter JavaScript for PostMessage.

Blocking renderer->plugin messages can be interrupted by any message
from the plugin->renderer (even async ones). So while handline a blocking
message, such as HandleInputEvent or HandleBlockingMessage, it's currently
possible to re-enter JavaScript. This patch makes that impossible by
queueing up Plugin->Renderer messages sent via PPB_Messaging::PostMessage
while any renderer->plugin sync message is on the stack.

BUG=384528

Committed: https://crrev.com/f73075c99b5ba30e8d62dc5f13fdfb210d0fc506
Cr-Commit-Position: refs/heads/master@{#296311}

Review URL: https://codereview.chromium.org/589213003

Cr-Commit-Position: refs/heads/master@{#296807}
12 files changed:
content/renderer/pepper/host_dispatcher_wrapper.cc
content/renderer/pepper/host_dispatcher_wrapper.h
content/renderer/pepper/message_channel.cc
content/renderer/pepper/message_channel.h
content/renderer/pepper/pepper_hung_plugin_filter.h
ppapi/proxy/dispatcher.cc
ppapi/proxy/dispatcher.h
ppapi/proxy/host_dispatcher.cc
ppapi/proxy/host_dispatcher.h
ppapi/proxy/ppapi_proxy_test.cc
ppapi/proxy/ppapi_proxy_test.h
ppapi/tests/test_message_handler.cc