summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp')
-rw-r--r--Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp44
1 files changed, 12 insertions, 32 deletions
diff --git a/Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp b/Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp
index dbf12ccf0..86ba91c08 100644
--- a/Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp
+++ b/Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp
@@ -40,8 +40,8 @@ PassRefPtr<WebConnectionToWebProcess> WebConnectionToWebProcess::create(WebProce
}
WebConnectionToWebProcess::WebConnectionToWebProcess(WebProcessProxy* process, CoreIPC::Connection::Identifier connectionIdentifier, RunLoop* runLoop)
- : m_process(process)
- , m_connection(CoreIPC::Connection::createServerConnection(connectionIdentifier, this, runLoop))
+ : WebConnection(CoreIPC::Connection::createServerConnection(connectionIdentifier, this, runLoop))
+ , m_process(process)
{
#if OS(DARWIN)
m_connection->setShouldCloseConnectionOnMachExceptions();
@@ -50,42 +50,27 @@ WebConnectionToWebProcess::WebConnectionToWebProcess(WebProcessProxy* process, C
#endif
}
-void WebConnectionToWebProcess::invalidate()
+// WebConnection
+
+void WebConnectionToWebProcess::encodeMessageBody(CoreIPC::ArgumentEncoder* argumentEncoder, APIObject* messageBody)
{
- m_connection->invalidate();
- m_connection = nullptr;
- m_process = 0;
+ argumentEncoder->encode(WebContextUserMessageEncoder(messageBody));
}
-// WebConnection
-
-void WebConnectionToWebProcess::postMessage(const String& messageName, APIObject* messageBody)
+bool WebConnectionToWebProcess::decodeMessageBody(CoreIPC::ArgumentDecoder* argumentDecoder, RefPtr<APIObject>& messageBody)
{
- // We need to check if we have an underlying process here since a user of the API can hold
- // onto us and call postMessage even after the process has been invalidated.
- if (!m_process)
- return;
+ if (!argumentDecoder->decode(WebContextUserMessageDecoder(messageBody, m_process)))
+ return false;
- m_process->deprecatedSend(WebConnectionLegacyMessage::PostMessage, 0, CoreIPC::In(messageName, WebContextUserMessageEncoder(messageBody)));
+ return true;
}
// CoreIPC::Connection::Client
void WebConnectionToWebProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
{
- if (messageID.is<CoreIPC::MessageClassWebConnectionLegacy>()) {
- switch (messageID.get<WebConnectionLegacyMessage::Kind>()) {
- case WebConnectionLegacyMessage::PostMessage: {
- String messageName;
- RefPtr<APIObject> messageBody;
- WebContextUserMessageDecoder messageDecoder(messageBody, m_process);
- if (!arguments->decode(CoreIPC::Out(messageName, messageDecoder)))
- return;
-
- forwardDidReceiveMessageToClient(messageName, messageBody.get());
- return;
- }
- }
+ if (messageID.is<CoreIPC::MessageClassWebConnection>()) {
+ didReceiveWebConnectionMessage(connection, messageID, arguments);
return;
}
@@ -124,11 +109,6 @@ void WebConnectionToWebProcess::didReceiveInvalidMessage(CoreIPC::Connection* co
m_client.didClose(this);
}
-void WebConnectionToWebProcess::syncMessageSendTimedOut(CoreIPC::Connection* connection)
-{
- m_process->syncMessageSendTimedOut(connection);
-}
-
#if PLATFORM(WIN)
Vector<HWND> WebConnectionToWebProcess::windowsToReceiveSentMessagesWhileWaitingForSyncReply()
{