2011-02-11 Anders Carlsson <andersca@apple.com>
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 12 Feb 2011 01:49:26 +0000 (01:49 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 12 Feb 2011 01:49:26 +0000 (01:49 +0000)
        Reviewed by Sam Weinig.

        WebProcess hung communicating with the plug-in process
        https://bugs.webkit.org/show_bug.cgi?id=54328
        <rdar://problem/8854075>

        * UIProcess/Plugins/PluginProcessProxy.cpp:
        (WebKit::PluginProcessProxy::createWebProcessConnection):
        Add the DispatchMessageEvenWhenWaitingForSyncReply message send flag when sending the
        PluginProcess::CreateWebProcessConnection message, since the plug-in process can be busy waiting
        for a sync reply from the web process.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@78400 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp

index 2d5cba4..b50d90e 100644 (file)
@@ -2,6 +2,20 @@
 
         Reviewed by Sam Weinig.
 
+        WebProcess hung communicating with the plug-in process
+        https://bugs.webkit.org/show_bug.cgi?id=54328
+        <rdar://problem/8854075>
+
+        * UIProcess/Plugins/PluginProcessProxy.cpp:
+        (WebKit::PluginProcessProxy::createWebProcessConnection):
+        Add the DispatchMessageEvenWhenWaitingForSyncReply message send flag when sending the
+        PluginProcess::CreateWebProcessConnection message, since the plug-in process can be busy waiting
+        for a sync reply from the web process.
+
+2011-02-11  Anders Carlsson  <andersca@apple.com>
+
+        Reviewed by Sam Weinig.
+
         Incoming synchronous messages should always be processed regardless of connection waiting for a reply
         https://bugs.webkit.org/show_bug.cgi?id=54326
 
index 0ed40b9..12a82b2 100644 (file)
@@ -72,8 +72,9 @@ void PluginProcessProxy::createWebProcessConnection(WebProcessProxy* webProcessP
         return;
     }
 
-    // Ask the plug-in process to create a connection.
-    m_connection->send(Messages::PluginProcess::CreateWebProcessConnection(), 0);
+    // Ask the plug-in process to create a connection. Since the plug-in can be waiting for a synchronous reply
+    // we need to make sure that this message is always processed, even when the plug-in is waiting for a synchronus reply.
+    m_connection->send(Messages::PluginProcess::CreateWebProcessConnection(), 0, CoreIPC::DispatchMessageEvenWhenWaitingForSyncReply);
 }
 
 void PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch()