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