- Revision
- 177768
- Author
- [email protected]
- Date
- 2014-12-27 12:59:29 -0800 (Sat, 27 Dec 2014)
Log Message
Switch WebConnection over to sending objects with UserData
https://bugs.webkit.org/show_bug.cgi?id=139967
Reviewed by Oliver Hunt.
* Shared/WebConnection.cpp:
(WebKit::WebConnection::postMessage):
No need to construct the message manually anymore.
(WebKit::WebConnection::handleMessage):
No need to decode the message manually, just get the object from the UserData message body,
convert any handles to objects, and dispatch the message.
* Shared/WebConnection.h:
Remove now unused members.
* Shared/WebConnection.messages.in:
Give HandleMessage a proper signature.
* UIProcess/WebConnectionToWebProcess.cpp:
(WebKit::WebConnectionToWebProcess::transformHandlesToObjects):
(WebKit::WebConnectionToWebProcess::transformObjectsToHandles):
Call the WebProcessProxy version.
(WebKit::WebConnectionToWebProcess::encodeMessageBody): Deleted.
(WebKit::WebConnectionToWebProcess::decodeMessageBody): Deleted.
* UIProcess/WebConnectionToWebProcess.h:
* WebProcess/WebConnectionToUIProcess.cpp:
(WebKit::WebConnectionToUIProcess::encodeMessageBody): Deleted.
(WebKit::WebConnectionToUIProcess::decodeMessageBody): Deleted.
* WebProcess/WebConnectionToUIProcess.h:
Delete more unused members.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (177767 => 177768)
--- trunk/Source/WebKit2/ChangeLog 2014-12-27 20:34:35 UTC (rev 177767)
+++ trunk/Source/WebKit2/ChangeLog 2014-12-27 20:59:29 UTC (rev 177768)
@@ -1,5 +1,41 @@
2014-12-27 Anders Carlsson <[email protected]>
+ Switch WebConnection over to sending objects with UserData
+ https://bugs.webkit.org/show_bug.cgi?id=139967
+
+ Reviewed by Oliver Hunt.
+
+ * Shared/WebConnection.cpp:
+ (WebKit::WebConnection::postMessage):
+ No need to construct the message manually anymore.
+
+ (WebKit::WebConnection::handleMessage):
+ No need to decode the message manually, just get the object from the UserData message body,
+ convert any handles to objects, and dispatch the message.
+
+ * Shared/WebConnection.h:
+ Remove now unused members.
+
+ * Shared/WebConnection.messages.in:
+ Give HandleMessage a proper signature.
+
+ * UIProcess/WebConnectionToWebProcess.cpp:
+ (WebKit::WebConnectionToWebProcess::transformHandlesToObjects):
+ (WebKit::WebConnectionToWebProcess::transformObjectsToHandles):
+ Call the WebProcessProxy version.
+
+ (WebKit::WebConnectionToWebProcess::encodeMessageBody): Deleted.
+ (WebKit::WebConnectionToWebProcess::decodeMessageBody): Deleted.
+
+ * UIProcess/WebConnectionToWebProcess.h:
+ * WebProcess/WebConnectionToUIProcess.cpp:
+ (WebKit::WebConnectionToUIProcess::encodeMessageBody): Deleted.
+ (WebKit::WebConnectionToUIProcess::decodeMessageBody): Deleted.
+ * WebProcess/WebConnectionToUIProcess.h:
+ Delete more unused members.
+
+2014-12-27 Anders Carlsson <[email protected]>
+
Encode and decode WKTypeRefWrapper objects
https://bugs.webkit.org/show_bug.cgi?id=139966
Modified: trunk/Source/WebKit2/Shared/WebConnection.cpp (177767 => 177768)
--- trunk/Source/WebKit2/Shared/WebConnection.cpp 2014-12-27 20:34:35 UTC (rev 177767)
+++ trunk/Source/WebKit2/Shared/WebConnection.cpp 2014-12-27 20:59:29 UTC (rev 177768)
@@ -28,6 +28,7 @@
#include "ArgumentCoders.h"
#include "DataReference.h"
+#include "UserData.h"
#include "WebConnectionMessages.h"
#include <wtf/text/WTFString.h>
@@ -51,11 +52,7 @@
if (!hasValidConnection())
return;
- auto encoder = std::make_unique<IPC::MessageEncoder>(Messages::WebConnection::HandleMessage::receiverName(), Messages::WebConnection::HandleMessage::name(), 0);
- encoder->encode(messageName);
- encodeMessageBody(*encoder, messageBody);
-
- sendMessage(WTF::move(encoder), 0);
+ send(Messages::WebConnection::HandleMessage(messageName, UserData(transformObjectsToHandles(messageBody))));
}
void WebConnection::didClose()
@@ -68,17 +65,9 @@
didReceiveWebConnectionMessage(connection, decoder);
}
-void WebConnection::handleMessage(IPC::MessageDecoder& decoder)
+void WebConnection::handleMessage(const String& messageName, const UserData& messageBody)
{
- String messageName;
- if (!decoder.decode(messageName))
- return;
-
- RefPtr<API::Object> messageBody;
- if (!decodeMessageBody(decoder, messageBody))
- return;
-
- m_client.didReceiveMessage(this, messageName, messageBody.get());
+ m_client.didReceiveMessage(this, messageName, transformHandlesToObjects(messageBody.object()).get());
}
} // namespace WebKit
Modified: trunk/Source/WebKit2/Shared/WebConnection.h (177767 => 177768)
--- trunk/Source/WebKit2/Shared/WebConnection.h 2014-12-27 20:34:35 UTC (rev 177767)
+++ trunk/Source/WebKit2/Shared/WebConnection.h 2014-12-27 20:59:29 UTC (rev 177768)
@@ -29,11 +29,13 @@
#include "APIObject.h"
#include "MessageReceiver.h"
#include "MessageSender.h"
+#include "UserData.h"
#include "WebConnectionClient.h"
#include <wtf/RefPtr.h>
namespace WebKit {
+class UserData;
class WebConnection : public API::ObjectImpl<API::Object::Type::Connection>, public IPC::MessageReceiver, public IPC::MessageSender {
public:
virtual ~WebConnection();
@@ -47,8 +49,6 @@
virtual RefPtr<API::Object> transformHandlesToObjects(API::Object*) = 0;
virtual RefPtr<API::Object> transformObjectsToHandles(API::Object*) = 0;
- virtual void encodeMessageBody(IPC::ArgumentEncoder&, API::Object*) = 0;
- virtual bool decodeMessageBody(IPC::ArgumentDecoder&, RefPtr<API::Object>&) = 0;
// IPC::MessageReceiver
void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) override;
@@ -57,7 +57,7 @@
void didReceiveWebConnectionMessage(IPC::Connection*, IPC::MessageDecoder&);
// Mesage handling implementation functions.
- void handleMessage(IPC::MessageDecoder&);
+ void handleMessage(const String& messageName, const UserData& messageBody);
virtual bool hasValidConnection() const = 0;
Modified: trunk/Source/WebKit2/Shared/WebConnection.messages.in (177767 => 177768)
--- trunk/Source/WebKit2/Shared/WebConnection.messages.in 2014-12-27 20:34:35 UTC (rev 177767)
+++ trunk/Source/WebKit2/Shared/WebConnection.messages.in 2014-12-27 20:59:29 UTC (rev 177768)
@@ -21,5 +21,5 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
messages -> WebConnection LegacyReceiver {
- HandleMessage() Variadic
+ HandleMessage(String messageName, WebKit::UserData messageBody)
}
Modified: trunk/Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp (177767 => 177768)
--- trunk/Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp 2014-12-27 20:34:35 UTC (rev 177767)
+++ trunk/Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp 2014-12-27 20:59:29 UTC (rev 177768)
@@ -50,29 +50,16 @@
// WebConnection
-RefPtr<API::Object> WebConnectionToWebProcess::transformHandlesToObjects(API::Object*)
+RefPtr<API::Object> WebConnectionToWebProcess::transformHandlesToObjects(API::Object* object)
{
- // FIXME: Implement.
- return nullptr;
+ return m_process->transformHandlesToObjects(object);
}
-RefPtr<API::Object> WebConnectionToWebProcess::transformObjectsToHandles(API::Object*)
+RefPtr<API::Object> WebConnectionToWebProcess::transformObjectsToHandles(API::Object* object)
{
- // FIXME: Implement.
- return nullptr;
+ return m_process->transformObjectsToHandles(object);
}
-void WebConnectionToWebProcess::encodeMessageBody(IPC::ArgumentEncoder& encoder, API::Object* messageBody)
-{
- encoder << WebContextUserMessageEncoder(messageBody, *m_process);
-}
-
-bool WebConnectionToWebProcess::decodeMessageBody(IPC::ArgumentDecoder& decoder, RefPtr<API::Object>& messageBody)
-{
- WebContextUserMessageDecoder messageBodyDecoder(messageBody, *m_process);
- return decoder.decode(messageBodyDecoder);
-}
-
bool WebConnectionToWebProcess::hasValidConnection() const
{
return m_process;
Modified: trunk/Source/WebKit2/UIProcess/WebConnectionToWebProcess.h (177767 => 177768)
--- trunk/Source/WebKit2/UIProcess/WebConnectionToWebProcess.h 2014-12-27 20:34:35 UTC (rev 177767)
+++ trunk/Source/WebKit2/UIProcess/WebConnectionToWebProcess.h 2014-12-27 20:59:29 UTC (rev 177768)
@@ -46,8 +46,6 @@
// WebConnection
virtual RefPtr<API::Object> transformHandlesToObjects(API::Object*) override;
virtual RefPtr<API::Object> transformObjectsToHandles(API::Object*) override;
- virtual void encodeMessageBody(IPC::ArgumentEncoder&, API::Object*) override;
- virtual bool decodeMessageBody(IPC::ArgumentDecoder&, RefPtr<API::Object>&) override;
virtual bool hasValidConnection() const override;
// IPC::MessageSender
Modified: trunk/Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp (177767 => 177768)
--- trunk/Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp 2014-12-27 20:34:35 UTC (rev 177767)
+++ trunk/Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp 2014-12-27 20:59:29 UTC (rev 177768)
@@ -47,7 +47,7 @@
void WebConnectionToUIProcess::invalidate()
{
- m_process = 0;
+ m_process = nullptr;
}
// WebConnection
@@ -62,17 +62,6 @@
return m_process->transformObjectsToHandles(object);
}
-void WebConnectionToUIProcess::encodeMessageBody(IPC::ArgumentEncoder& encoder, API::Object* messageBody)
-{
- encoder << InjectedBundleUserMessageEncoder(messageBody);
-}
-
-bool WebConnectionToUIProcess::decodeMessageBody(IPC::ArgumentDecoder& decoder, RefPtr<API::Object>& messageBody)
-{
- InjectedBundleUserMessageDecoder messageBodyDecoder(messageBody);
- return decoder.decode(messageBodyDecoder);
-}
-
bool WebConnectionToUIProcess::hasValidConnection() const
{
return m_process;
Modified: trunk/Source/WebKit2/WebProcess/WebConnectionToUIProcess.h (177767 => 177768)
--- trunk/Source/WebKit2/WebProcess/WebConnectionToUIProcess.h 2014-12-27 20:34:35 UTC (rev 177767)
+++ trunk/Source/WebKit2/WebProcess/WebConnectionToUIProcess.h 2014-12-27 20:59:29 UTC (rev 177768)
@@ -44,8 +44,6 @@
// WebConnection
virtual RefPtr<API::Object> transformHandlesToObjects(API::Object*) override;
virtual RefPtr<API::Object> transformObjectsToHandles(API::Object*) override;
- virtual void encodeMessageBody(IPC::ArgumentEncoder&, API::Object*) override;
- virtual bool decodeMessageBody(IPC::ArgumentDecoder&, RefPtr<API::Object>&) override;
virtual bool hasValidConnection() const override;
// IPC::MessageSender