summaryrefslogtreecommitdiff
path: root/Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-10-16 14:56:46 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2012-10-16 14:57:30 +0200
commitb297e0fa5c217c9467033b7c8b46891a52870120 (patch)
tree43fc14689295e9e64f2719d05aad94e3049f6cd7 /Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp
parent69d517dbfa69903d8593cc1737f0474b21e3251e (diff)
downloadqtwebkit-b297e0fa5c217c9467033b7c8b46891a52870120.tar.gz
Revert "Imported WebKit commit 0dc6cd75e1d4836eaffbb520be96fac4847cc9d2 (http://svn.webkit.org/repository/webkit/trunk@131300)"
This reverts commit 5466563f4b5b6b86523e3f89bb7f77e5b5270c78. Caused OOM issues on some CI machines :(
Diffstat (limited to 'Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp')
-rw-r--r--Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp42
1 files changed, 30 insertions, 12 deletions
diff --git a/Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp b/Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp
index 5e152ee98..5e7955d67 100644
--- a/Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp
+++ b/Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp
@@ -40,34 +40,47 @@ PassRefPtr<WebConnectionToUIProcess> WebConnectionToUIProcess::create(WebProcess
}
WebConnectionToUIProcess::WebConnectionToUIProcess(WebProcess* process, CoreIPC::Connection::Identifier connectionIdentifier, RunLoop* runLoop)
- : WebConnection(CoreIPC::Connection::createClientConnection(connectionIdentifier, this, runLoop))
- , m_process(process)
+ : m_process(process)
+ , m_connection(CoreIPC::Connection::createClientConnection(connectionIdentifier, this, runLoop))
{
m_connection->setDidCloseOnConnectionWorkQueueCallback(ChildProcess::didCloseOnConnectionWorkQueue);
m_connection->setShouldExitOnSyncMessageSendFailure(true);
}
-// WebConnection
-
-void WebConnectionToUIProcess::encodeMessageBody(CoreIPC::ArgumentEncoder* argumentEncoder, APIObject* messageBody)
+void WebConnectionToUIProcess::invalidate()
{
- argumentEncoder->encode(InjectedBundleUserMessageEncoder(messageBody));
+ m_connection->invalidate();
+ m_connection = nullptr;
+ m_process = 0;
}
-bool WebConnectionToUIProcess::decodeMessageBody(CoreIPC::ArgumentDecoder* argumentDecoder, RefPtr<APIObject>& messageBody)
+// WebConnection
+
+void WebConnectionToUIProcess::postMessage(const String& messageName, APIObject* messageBody)
{
- if (!argumentDecoder->decode(InjectedBundleUserMessageDecoder(messageBody)))
- return false;
+ if (!m_process)
+ return;
- return true;
+ m_connection->deprecatedSend(WebConnectionLegacyMessage::PostMessage, 0, CoreIPC::In(messageName, InjectedBundleUserMessageEncoder(messageBody)));
}
// CoreIPC::Connection::Client
void WebConnectionToUIProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
{
- if (messageID.is<CoreIPC::MessageClassWebConnection>()) {
- didReceiveWebConnectionMessage(connection, messageID, arguments);
+ if (messageID.is<CoreIPC::MessageClassWebConnectionLegacy>()) {
+ switch (messageID.get<WebConnectionLegacyMessage::Kind>()) {
+ case WebConnectionLegacyMessage::PostMessage: {
+ String messageName;
+ RefPtr<APIObject> messageBody;
+ InjectedBundleUserMessageDecoder messageDecoder(messageBody);
+ if (!arguments->decode(CoreIPC::Out(messageName, messageDecoder)))
+ return;
+
+ forwardDidReceiveMessageToClient(messageName, messageBody.get());
+ return;
+ }
+ }
return;
}
@@ -89,6 +102,11 @@ void WebConnectionToUIProcess::didReceiveInvalidMessage(CoreIPC::Connection* con
m_process->didReceiveInvalidMessage(connection, messageID);
}
+void WebConnectionToUIProcess::syncMessageSendTimedOut(CoreIPC::Connection* connection)
+{
+ m_process->syncMessageSendTimedOut(connection);
+}
+
#if PLATFORM(WIN)
Vector<HWND> WebConnectionToUIProcess::windowsToReceiveSentMessagesWhileWaitingForSyncReply()
{