Title: [135907] branches/safari-536.28-branch/Source/WebKit2

Diff

Modified: branches/safari-536.28-branch/Source/WebKit2/ChangeLog (135906 => 135907)


--- branches/safari-536.28-branch/Source/WebKit2/ChangeLog	2012-11-27 21:00:23 UTC (rev 135906)
+++ branches/safari-536.28-branch/Source/WebKit2/ChangeLog	2012-11-27 21:05:32 UTC (rev 135907)
@@ -1,3 +1,18 @@
+2012-11-27  Anders Carlsson  <[email protected]>
+
+        <rdar://problem/11755093>
+        Add API to set a global function callback for when invalid messages are received from the web process.
+
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageSetInvalidMessageFunction):
+        * UIProcess/API/C/WKPagePrivate.h:
+        * UIProcess/WebPageProxy.cpp:
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::WebProcessProxy::didReceiveInvalidMessage):
+        (WebKit::WebProcessProxy::setInvalidMessageCallback):
+        * UIProcess/WebProcessProxy.h:
+        (WebProcessProxy):
+
 2012-11-27  Lucas Forschler  <[email protected]>
 
         Merge r133702

Modified: branches/safari-536.28-branch/Source/WebKit2/UIProcess/API/C/WKPage.cpp (135906 => 135907)


--- branches/safari-536.28-branch/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2012-11-27 21:00:23 UTC (rev 135906)
+++ branches/safari-536.28-branch/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2012-11-27 21:05:32 UTC (rev 135907)
@@ -688,3 +688,8 @@
 {
     toImpl(page)->setMediaVolume(volume);    
 }
+
+void WKPageSetInvalidMessageFunction(WKPageInvalidMessageFunction function)
+{
+    WebProcessProxy::setInvalidMessageCallback(function);
+}

Modified: branches/safari-536.28-branch/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h (135906 => 135907)


--- branches/safari-536.28-branch/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h	2012-11-27 21:00:23 UTC (rev 135906)
+++ branches/safari-536.28-branch/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h	2012-11-27 21:05:32 UTC (rev 135907)
@@ -92,6 +92,9 @@
 
 WK_EXPORT void WKPageSetMediaVolume(WKPageRef page, float volume);
 
+typedef void (*WKPageInvalidMessageFunction)(uint32_t messageID);
+WK_EXPORT void WKPageSetInvalidMessageFunction(WKPageInvalidMessageFunction function);
+
 #ifdef __cplusplus
 }
 #endif

Modified: branches/safari-536.28-branch/Source/WebKit2/UIProcess/WebProcessProxy.cpp (135906 => 135907)


--- branches/safari-536.28-branch/Source/WebKit2/UIProcess/WebProcessProxy.cpp	2012-11-27 21:00:23 UTC (rev 135906)
+++ branches/safari-536.28-branch/Source/WebKit2/UIProcess/WebProcessProxy.cpp	2012-11-27 21:05:32 UTC (rev 135907)
@@ -374,10 +374,15 @@
         pages[i]->processDidCrash();
 }
 
+void (*s_invalidMessageCallback)(uint32_t messageID);
+
 void WebProcessProxy::didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID messageID)
 {
     WTFLogAlways("Received an invalid message from the web process with message ID %x\n", messageID.toInt());
 
+    if (s_invalidMessageCallback)
+        s_invalidMessageCallback(messageID.toInt());
+
     // Terminate the WebProcesses.
     terminate();
 }
@@ -502,4 +507,9 @@
     send(Messages::WebProcess::SetTextCheckerState(TextChecker::state()), 0);
 }
 
+void WebProcessProxy::setInvalidMessageCallback(void (*invalidMessageCallback)(uint32_t))
+{
+    s_invalidMessageCallback = invalidMessageCallback;
+}
+
 } // namespace WebKit

Modified: branches/safari-536.28-branch/Source/WebKit2/UIProcess/WebProcessProxy.h (135906 => 135907)


--- branches/safari-536.28-branch/Source/WebKit2/UIProcess/WebProcessProxy.h	2012-11-27 21:00:23 UTC (rev 135906)
+++ branches/safari-536.28-branch/Source/WebKit2/UIProcess/WebProcessProxy.h	2012-11-27 21:05:32 UTC (rev 135907)
@@ -116,6 +116,8 @@
     // FIXME: This variant of send is deprecated. All clients should move to an overload that take a message type.
     template<typename E, typename T> bool deprecatedSend(E messageID, uint64_t destinationID, const T& arguments);
 
+    static void setInvalidMessageCallback(void (*)(uint32_t));
+
 private:
     explicit WebProcessProxy(PassRefPtr<WebContext>);
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to