Title: [177766] trunk/Source/WebKit2
Revision
177766
Author
[email protected]
Date
2014-12-27 12:25:10 -0800 (Sat, 27 Dec 2014)

Log Message

Encode and decode WKTypeRefWrapper objects
https://bugs.webkit.org/show_bug.cgi?id=139966

Reviewed by Oliver Hunt.

* Shared/UserData.cpp:
(WebKit::UserData::encode):
* Shared/UserData.h:
* Shared/mac/ObjCObjectGraph.mm:
(WebKit::typeFromObject):
(WebKit::ObjCObjectGraph::encode):
(WebKit::ObjCObjectGraph::decode):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (177765 => 177766)


--- trunk/Source/WebKit2/ChangeLog	2014-12-27 20:10:43 UTC (rev 177765)
+++ trunk/Source/WebKit2/ChangeLog	2014-12-27 20:25:10 UTC (rev 177766)
@@ -1,5 +1,20 @@
 2014-12-27  Anders Carlsson  <[email protected]>
 
+        Encode and decode WKTypeRefWrapper objects
+        https://bugs.webkit.org/show_bug.cgi?id=139966
+
+        Reviewed by Oliver Hunt.
+
+        * Shared/UserData.cpp:
+        (WebKit::UserData::encode):
+        * Shared/UserData.h:
+        * Shared/mac/ObjCObjectGraph.mm:
+        (WebKit::typeFromObject):
+        (WebKit::ObjCObjectGraph::encode):
+        (WebKit::ObjCObjectGraph::decode):
+
+2014-12-27  Anders Carlsson  <[email protected]>
+
         Implement encoding and decoding of ObjCObjectGraph objects
         https://bugs.webkit.org/show_bug.cgi?id=139965
 

Modified: trunk/Source/WebKit2/Shared/UserData.cpp (177765 => 177766)


--- trunk/Source/WebKit2/Shared/UserData.cpp	2014-12-27 20:10:43 UTC (rev 177765)
+++ trunk/Source/WebKit2/Shared/UserData.cpp	2014-12-27 20:25:10 UTC (rev 177766)
@@ -151,7 +151,7 @@
     return decode(decoder, userData.m_object);
 }
 
-void UserData::encode(IPC::ArgumentEncoder& encoder, const API::Object* object) const
+void UserData::encode(IPC::ArgumentEncoder& encoder, const API::Object* object)
 {
     if (!object) {
         encoder.encodeEnum(API::Object::Type::Null);
@@ -161,7 +161,7 @@
     encode(encoder, *object);
 }
 
-void UserData::encode(IPC::ArgumentEncoder& encoder, const API::Object& object) const
+void UserData::encode(IPC::ArgumentEncoder& encoder, const API::Object& object)
 {
     API::Object::Type type = object.type();
     encoder.encodeEnum(type);

Modified: trunk/Source/WebKit2/Shared/UserData.h (177765 => 177766)


--- trunk/Source/WebKit2/Shared/UserData.h	2014-12-27 20:10:43 UTC (rev 177765)
+++ trunk/Source/WebKit2/Shared/UserData.h	2014-12-27 20:25:10 UTC (rev 177766)
@@ -54,12 +54,12 @@
     void encode(IPC::ArgumentEncoder&) const;
     static bool decode(IPC::ArgumentDecoder&, UserData&);
 
+    static void encode(IPC::ArgumentEncoder&, const API::Object*);
+    static bool decode(IPC::ArgumentDecoder&, RefPtr<API::Object>&);
+
 private:
-    void encode(IPC::ArgumentEncoder&, const API::Object*) const;
-    void encode(IPC::ArgumentEncoder&, const API::Object&) const;
+    static void encode(IPC::ArgumentEncoder&, const API::Object&);
 
-    static bool decode(IPC::ArgumentDecoder&, RefPtr<API::Object>&);
-
     RefPtr<API::Object> m_object;
 };
 

Modified: trunk/Source/WebKit2/Shared/mac/ObjCObjectGraph.mm (177765 => 177766)


--- trunk/Source/WebKit2/Shared/mac/ObjCObjectGraph.mm	2014-12-27 20:10:43 UTC (rev 177765)
+++ trunk/Source/WebKit2/Shared/mac/ObjCObjectGraph.mm	2014-12-27 20:25:10 UTC (rev 177766)
@@ -32,7 +32,10 @@
 #import <wtf/Optional.h>
 
 #if WK_API_ENABLED
+#import "UserData.h"
+#import "WKAPICast.h"
 #import "WKBrowsingContextHandleInternal.h"
+#import "WKTypeRefWrapper.h"
 #endif
 
 namespace WebKit {
@@ -106,6 +109,7 @@
 
 #if WK_API_ENABLED
     WKBrowsingContextHandle,
+    WKTypeRefWrapper,
 #endif
 };
 
@@ -129,6 +133,8 @@
 #if WK_API_ENABLED
     if (dynamic_objc_cast<WKBrowsingContextHandle>(object))
         return ObjCType::WKBrowsingContextHandle;
+    if (dynamic_objc_cast<WKTypeRefWrapper>(object))
+        return ObjCType::WKTypeRefWrapper;
 #endif
 
     return Nullopt;
@@ -188,6 +194,10 @@
     case ObjCType::WKBrowsingContextHandle:
         encoder << static_cast<WKBrowsingContextHandle *>(object).pageID;
         break;
+
+    case ObjCType::WKTypeRefWrapper:
+        UserData::encode(encoder, toImpl(static_cast<WKTypeRefWrapper *>(object).object));
+        break;
 #endif
 
     default:
@@ -301,7 +311,16 @@
         result = adoptNS([[WKBrowsingContextHandle alloc] _initWithPageID:pageID]);
         break;
     }
+
+    case ObjCType::WKTypeRefWrapper: {
+        RefPtr<API::Object> object;
+        if (!UserData::decode(decoder, object))
+            return false;
+
+        result = adoptNS([[WKTypeRefWrapper alloc] initWithObject:toAPI(object.get())]);
+    }
 #endif
+
     default:
         return false;
     }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to