Title: [147489] trunk/Source/WebKit2
- Revision
- 147489
- Author
- ander...@apple.com
- Date
- 2013-04-02 13:00:25 -0700 (Tue, 02 Apr 2013)
Log Message
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.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (147488 => 147489)
--- trunk/Source/WebKit2/ChangeLog 2013-04-02 19:57:58 UTC (rev 147488)
+++ trunk/Source/WebKit2/ChangeLog 2013-04-02 20:00:25 UTC (rev 147489)
@@ -1,3 +1,27 @@
+2013-04-02 Anders Carlsson <ander...@apple.com>
+
+ 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-02 Alexey Proskuryakov <a...@apple.com>
[Mac] Remove WKCreateNSURLConnectionDelegateProxy
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp (147488 => 147489)
--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2013-04-02 19:57:58 UTC (rev 147488)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2013-04-02 20:00:25 UTC (rev 147489)
@@ -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: trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h (147488 => 147489)
--- trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h 2013-04-02 19:57:58 UTC (rev 147488)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h 2013-04-02 20:00:25 UTC (rev 147489)
@@ -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: trunk/Source/WebKit2/UIProcess/WebContext.cpp (147488 => 147489)
--- trunk/Source/WebKit2/UIProcess/WebContext.cpp 2013-04-02 19:57:58 UTC (rev 147488)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp 2013-04-02 20:00:25 UTC (rev 147489)
@@ -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: trunk/Source/WebKit2/UIProcess/WebContext.h (147488 => 147489)
--- trunk/Source/WebKit2/UIProcess/WebContext.h 2013-04-02 19:57:58 UTC (rev 147488)
+++ trunk/Source/WebKit2/UIProcess/WebContext.h 2013-04-02 20:00:25 UTC (rev 147489)
@@ -298,6 +298,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: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (147488 => 147489)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2013-04-02 19:57:58 UTC (rev 147488)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2013-04-02 20:00:25 UTC (rev 147489)
@@ -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
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes