Title: [147630] tags/Safari-537.35.8/Source/WebKit2

Diff

Modified: tags/Safari-537.35.8/Source/WebKit2/ChangeLog (147629 => 147630)


--- tags/Safari-537.35.8/Source/WebKit2/ChangeLog	2013-04-04 15:20:08 UTC (rev 147629)
+++ tags/Safari-537.35.8/Source/WebKit2/ChangeLog	2013-04-04 15:23:30 UTC (rev 147630)
@@ -1,3 +1,31 @@
+2013-04-04  Lucas Forschler  <[email protected]>
+
+        Merge r147489
+
+    2013-04-02  Anders Carlsson  <[email protected]>
+
+            Add WKContextSetInvalidMessageFunction
+            https://bugs.webkit.org/show_bug.cgi?id=113820
+            <rdar://problem/12679817>
+
+            Reviewed by Tim Horton.
+
+            * UIProcess/API/C/WKContext.cpp:
+            (WKContextSetInvalidMessageFunction):
+            Call WebContext::didReceiveInvalidMessage.
+
+            * UIProcess/API/C/WKContextPrivate.h:
+            * UIProcess/WebContext.cpp:
+            (WebKit::WebContext::setInvalidMessageCallback):
+            Set the global variable.
+
+            (WebKit::WebContext::didReceiveInvalidMessage):
+            Construct a message name string and call the invalid message callback.
+
+            * UIProcess/WebProcessProxy.cpp:
+            (WebKit::WebProcessProxy::didReceiveInvalidMessage):
+            Call WebContext::didReceiveInvalidMessage.
+
 2013-04-01  Lucas Forschler  <[email protected]>
 
         Merge r147359

Modified: tags/Safari-537.35.8/Source/WebKit2/UIProcess/API/C/WKContext.cpp (147629 => 147630)


--- tags/Safari-537.35.8/Source/WebKit2/UIProcess/API/C/WKContext.cpp	2013-04-04 15:20:08 UTC (rev 147629)
+++ tags/Safari-537.35.8/Source/WebKit2/UIProcess/API/C/WKContext.cpp	2013-04-04 15:23:30 UTC (rev 147630)
@@ -373,6 +373,11 @@
     toImpl(contextRef)->setPlugInAutoStartOrigins(*toImpl(arrayRef));
 }
 
+void WKContextSetInvalidMessageFunction(WKContextInvalidMessageFunction invalidMessageFunction)
+{
+    WebContext::setInvalidMessageCallback(invalidMessageFunction);
+}
+
 // Deprecated functions.
 void _WKContextSetAdditionalPluginsDirectory(WKContextRef context, WKStringRef pluginsDirectory)
 {

Modified: tags/Safari-537.35.8/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h (147629 => 147630)


--- tags/Safari-537.35.8/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h	2013-04-04 15:20:08 UTC (rev 147629)
+++ tags/Safari-537.35.8/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h	2013-04-04 15:23:30 UTC (rev 147630)
@@ -78,6 +78,9 @@
 // At some point it should be removed.
 WK_EXPORT void WKContextSetUsesNetworkProcess(WKContextRef context, bool usesNetworkProcess);
 
+typedef void (*WKContextInvalidMessageFunction)(WKStringRef messageName);
+WK_EXPORT void WKContextSetInvalidMessageFunction(WKContextInvalidMessageFunction invalidMessageFunction);
+
 #ifdef __cplusplus
 }
 #endif

Modified: tags/Safari-537.35.8/Source/WebKit2/UIProcess/WebContext.cpp (147629 => 147630)


--- tags/Safari-537.35.8/Source/WebKit2/UIProcess/WebContext.cpp	2013-04-04 15:20:08 UTC (rev 147629)
+++ tags/Safari-537.35.8/Source/WebKit2/UIProcess/WebContext.cpp	2013-04-04 15:23:30 UTC (rev 147630)
@@ -449,6 +449,26 @@
     }
 }
 
+void (*s_invalidMessageCallback)(WKStringRef messageName);
+
+void WebContext::setInvalidMessageCallback(void (*invalidMessageCallback)(WKStringRef messageName))
+{
+    s_invalidMessageCallback = invalidMessageCallback;
+}
+
+void WebContext::didReceiveInvalidMessage(const CoreIPC::StringReference& messageReceiverName, const CoreIPC::StringReference& messageName)
+{
+    if (!s_invalidMessageCallback)
+        return;
+
+    StringBuilder messageNameStringBuilder;
+    messageNameStringBuilder.append(messageReceiverName.data(), messageReceiverName.size());
+    messageNameStringBuilder.append(".");
+    messageNameStringBuilder.append(messageName.data(), messageName.size());
+
+    s_invalidMessageCallback(toAPI(WebString::create(messageNameStringBuilder.toString()).get()));
+}
+
 WebProcessProxy* WebContext::ensureSharedWebProcess()
 {
     ASSERT(m_processModel == ProcessModelSharedSecondaryProcess);

Modified: tags/Safari-537.35.8/Source/WebKit2/UIProcess/WebContext.h (147629 => 147630)


--- tags/Safari-537.35.8/Source/WebKit2/UIProcess/WebContext.h	2013-04-04 15:20:08 UTC (rev 147629)
+++ tags/Safari-537.35.8/Source/WebKit2/UIProcess/WebContext.h	2013-04-04 15:23:30 UTC (rev 147630)
@@ -300,6 +300,9 @@
     bool ignoreTLSErrors() const { return m_ignoreTLSErrors; }
 #endif
 
+    static void setInvalidMessageCallback(void (*)(WKStringRef));
+    static void didReceiveInvalidMessage(const CoreIPC::StringReference& messageReceiverName, const CoreIPC::StringReference& messageName);
+
 private:
     WebContext(ProcessModel, const String& injectedBundlePath);
     void platformInitialize();

Modified: tags/Safari-537.35.8/Source/WebKit2/UIProcess/WebProcessProxy.cpp (147629 => 147630)


--- tags/Safari-537.35.8/Source/WebKit2/UIProcess/WebProcessProxy.cpp	2013-04-04 15:20:08 UTC (rev 147629)
+++ tags/Safari-537.35.8/Source/WebKit2/UIProcess/WebProcessProxy.cpp	2013-04-04 15:23:30 UTC (rev 147630)
@@ -411,7 +411,9 @@
 {
     WTFLogAlways("Received an invalid message \"%s.%s\" from the web process.\n", messageReceiverName.toString().data(), messageName.toString().data());
 
-    // Terminate the WebProcesses.
+    WebContext::didReceiveInvalidMessage(messageReceiverName, messageName);
+
+    // Terminate the WebProcess.
     terminate();
 
     // Since we've invalidated the connection we'll never get a CoreIPC::Connection::Client::didClose
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to