Title: [160428] branches/safari-537.74-branch/Source/WebKit2

Diff

Modified: branches/safari-537.74-branch/Source/WebKit2/ChangeLog (160427 => 160428)


--- branches/safari-537.74-branch/Source/WebKit2/ChangeLog	2013-12-11 12:29:41 UTC (rev 160427)
+++ branches/safari-537.74-branch/Source/WebKit2/ChangeLog	2013-12-11 12:42:50 UTC (rev 160428)
@@ -1,5 +1,24 @@
 2013-12-11  Lucas Forschler  <[email protected]>
 
+        Merge r160197
+
+    2013-12-05  Chris Fleizach  <[email protected]> 
+
+            AX: Seed: safari extension installation crashes safari under voice over and freezes voice over
+            https://bugs.webkit.org/show_bug.cgi?id=125308
+
+            Reviewed by Anders Carlsson.
+
+            Much like _javascript_ alerts, we need to allow accessibility clients to continue to interact with the WebProcess thread
+            when using dispatchDecidePolicyResponses.
+
+            * Platform/CoreIPC/MessageSender.h:
+            (CoreIPC::MessageSender::sendSync):
+            * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+            (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
+
+2013-12-11  Lucas Forschler  <[email protected]>
+
         Merge r159460
 
     2013-11-18  David Hyatt  <[email protected]>

Modified: branches/safari-537.74-branch/Source/WebKit2/Platform/CoreIPC/MessageSender.h (160427 => 160428)


--- branches/safari-537.74-branch/Source/WebKit2/Platform/CoreIPC/MessageSender.h	2013-12-11 12:29:41 UTC (rev 160427)
+++ branches/safari-537.74-branch/Source/WebKit2/Platform/CoreIPC/MessageSender.h	2013-12-11 12:42:50 UTC (rev 160428)
@@ -49,17 +49,17 @@
         return sendMessage(encoder.release());
     }
 
-    template<typename U> bool sendSync(const U& message, const typename U::Reply& reply, double timeout = Connection::NoTimeout)
+    template<typename U> bool sendSync(const U& message, const typename U::Reply& reply, double timeout = Connection::NoTimeout, unsigned syncSendFlags = 0)
     {
         COMPILE_ASSERT(U::isSync, SyncMessageExpected);
-        return sendSync(message, reply, messageSenderDestinationID(), timeout);
+        return sendSync(message, reply, messageSenderDestinationID(), timeout, syncSendFlags);
     }
 
-    template<typename U> bool sendSync(const U& message, const typename U::Reply& reply, uint64_t destinationID, double timeout = Connection::NoTimeout)
+    template<typename U> bool sendSync(const U& message, const typename U::Reply& reply, uint64_t destinationID, double timeout = Connection::NoTimeout, unsigned syncSendFlags = 0)
     {
         ASSERT(messageSenderConnection());
 
-        return messageSenderConnection()->sendSync(message, reply, destinationID, timeout);
+        return messageSenderConnection()->sendSync(message, reply, destinationID, timeout, syncSendFlags);
     }
 
     bool sendMessage(PassOwnPtr<MessageEncoder>);

Modified: branches/safari-537.74-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (160427 => 160428)


--- branches/safari-537.74-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp	2013-12-11 12:29:41 UTC (rev 160427)
+++ branches/safari-537.74-branch/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp	2013-12-11 12:42:50 UTC (rev 160428)
@@ -51,6 +51,7 @@
 #include "WebProcessProxyMessages.h"
 #include <_javascript_Core/APICast.h>
 #include <_javascript_Core/JSObject.h>
+#include <WebCore/AXObjectCache.h>
 #include <WebCore/Chrome.h>
 #include <WebCore/DOMWrapperWorld.h>
 #include <WebCore/DocumentLoader.h>
@@ -651,7 +652,8 @@
     uint64_t downloadID;
 
     // Notify the UIProcess.
-    if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForResponseSync(m_frame->frameID(), response, request, listenerID, InjectedBundleUserMessageEncoder(userData.get())), Messages::WebPageProxy::DecidePolicyForResponseSync::Reply(receivedPolicyAction, policyAction, downloadID)))
+    unsigned syncSendFlags = (WebCore::AXObjectCache::accessibilityEnabled()) ? CoreIPC::SpinRunLoopWhileWaitingForReply : 0;
+    if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForResponseSync(m_frame->frameID(), response, request, listenerID, InjectedBundleUserMessageEncoder(userData.get())), Messages::WebPageProxy::DecidePolicyForResponseSync::Reply(receivedPolicyAction, policyAction, downloadID), CoreIPC::Connection::NoTimeout, syncSendFlags))
         return;
 
     // We call this synchronously because CFNetwork can only convert a loading connection to a download from its didReceiveResponse callback.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to