Title: [177768] trunk/Source/WebKit2
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to