| Index: content/browser/renderer_host/render_view_host_impl.cc
|
| diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
|
| index 7613dcfd42b69bf5517ba666fdf81a44d781f3c3..e79d8da86c9832e43a4afda964d9298a905a8926 100644
|
| --- a/content/browser/renderer_host/render_view_host_impl.cc
|
| +++ b/content/browser/renderer_host/render_view_host_impl.cc
|
| @@ -29,6 +29,7 @@
|
| #include "content/browser/renderer_host/render_process_host_impl.h"
|
| #include "content/browser/renderer_host/render_view_host_delegate.h"
|
| #include "content/common/accessibility_messages.h"
|
| +#include "content/common/browser_plugin_messages.h"
|
| #include "content/common/content_constants_internal.h"
|
| #include "content/common/desktop_notification_messages.h"
|
| #include "content/common/drag_messages.h"
|
| @@ -827,7 +828,17 @@ bool RenderViewHostImpl::SuddenTerminationAllowed() const {
|
| // RenderViewHostImpl, IPC message handlers:
|
|
|
| bool RenderViewHostImpl::OnMessageReceived(const IPC::Message& msg) {
|
| - if (!BrowserMessageFilter::CheckCanDispatchOnUI(msg, this))
|
| + // Allow BrowserPluginHostMsg_* sync messages to run on the UI thread.
|
| + // Platform apps will not support windowed plugins so the deadlock cycle
|
| + // browser -> plugin -> renderer -> browser referred in
|
| + // BrowserMessageFilter::CheckCanDispatchOnUI() is not supposed to happen. If
|
| + // we want to support windowed plugins, sync messages in BrowserPlugin might
|
| + // need to be changed to async messages.
|
| + // TODO(fsamuel): Disallow BrowserPluginHostMsg_* sync messages to run on UI
|
| + // thread and make these messages async: http://crbug.com/149063.
|
| + if (msg.type() != BrowserPluginHostMsg_HandleInputEvent::ID &&
|
| + msg.type() != BrowserPluginHostMsg_ResizeGuest::ID &&
|
| + !BrowserMessageFilter::CheckCanDispatchOnUI(msg, this))
|
| return true;
|
|
|
| // Filter out most IPC messages if this renderer is swapped out.
|
|
|