From b297e0fa5c217c9467033b7c8b46891a52870120 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 16 Oct 2012 14:56:46 +0200 Subject: Revert "Imported WebKit commit 0dc6cd75e1d4836eaffbb520be96fac4847cc9d2 (http://svn.webkit.org/repository/webkit/trunk@131300)" This reverts commit 5466563f4b5b6b86523e3f89bb7f77e5b5270c78. Caused OOM issues on some CI machines :( --- .../WebProcess/WebConnectionToUIProcess.cpp | 42 +++++++++++++++------- 1 file changed, 30 insertions(+), 12 deletions(-) (limited to 'Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp') 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::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& 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()) { - didReceiveWebConnectionMessage(connection, messageID, arguments); + if (messageID.is()) { + switch (messageID.get()) { + case WebConnectionLegacyMessage::PostMessage: { + String messageName; + RefPtr 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 WebConnectionToUIProcess::windowsToReceiveSentMessagesWhileWaitingForSyncReply() { -- cgit v1.2.1