Title: [149762] trunk/Source/WebKit2
Revision
149762
Author
[email protected]
Date
2013-05-08 13:06:31 -0700 (Wed, 08 May 2013)

Log Message

Safari unexpectedly quits with invalid message from the web process with message ID 0x323002f (WebPageProxy.DecidePolicyForNavigationAction)
https://bugs.webkit.org/show_bug.cgi?id=115814
<rdar://problem/12331258>

Reviewed by Andreas Kling.

To ensure that any asynchronous messages are delivered to the UI process before
synchronous messages (except when doing so would lead to a deadlock), Call
setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage on the UI process connections.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeConnection):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (149761 => 149762)


--- trunk/Source/WebKit2/ChangeLog	2013-05-08 20:02:45 UTC (rev 149761)
+++ trunk/Source/WebKit2/ChangeLog	2013-05-08 20:06:31 UTC (rev 149762)
@@ -1,3 +1,18 @@
+2013-05-08  Anders Carlsson  <[email protected]>
+
+        Safari unexpectedly quits with invalid message from the web process with message ID 0x323002f (WebPageProxy.DecidePolicyForNavigationAction)
+        https://bugs.webkit.org/show_bug.cgi?id=115814
+        <rdar://problem/12331258>
+
+        Reviewed by Andreas Kling.
+
+        To ensure that any asynchronous messages are delivered to the UI process before
+        synchronous messages (except when doing so would lead to a deadlock), Call
+        setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage on the UI process connections.
+
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::initializeConnection):
+
 2013-05-08  Tim Horton  <[email protected]>
 
         Coalesce WKView visibleRect changes

Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (149761 => 149762)


--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp	2013-05-08 20:02:45 UTC (rev 149761)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp	2013-05-08 20:06:31 UTC (rev 149762)
@@ -241,6 +241,12 @@
         it->value->initializeConnection(connection);
 
     m_webConnection = WebConnectionToUIProcess::create(this);
+
+    // In order to ensure that the asynchronous messages that are used for notifying the UI process
+    // about when WebFrame objects come and go are always delivered before the synchronous policy messages,
+    // use this flag to force synchronous messages to be treaded as asynchronous messages in the UI process
+    // unless when doing so would lead to a deadlock.
+    connection->setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage(true);
 }
 
 void WebProcess::didCreateDownload()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to