Title: [163470] trunk/Source/WebKit2
Revision
163470
Author
m...@apple.com
Date
2014-02-05 13:21:49 -0800 (Wed, 05 Feb 2014)

Log Message

[Cocoa] WKRemoteObjectInterface fails with doubles, NSNull, and empty NSStrings
https://bugs.webkit.org/show_bug.cgi?id=128268

Reviewed by Anders Carlsson.

* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(-[WKRemoteObjectDecoder decodeBytesForKey:returnedLength:]): When returning nullptr, also
set the length out parameter to 0.

* Shared/API/Cocoa/WKRemoteObjectInterface.mm:
(propertyListClasses): Added NSNull.

* Shared/UserData.cpp:
(WebKit::UserData::encode): Encode the Double type.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (163469 => 163470)


--- trunk/Source/WebKit2/ChangeLog	2014-02-05 21:15:42 UTC (rev 163469)
+++ trunk/Source/WebKit2/ChangeLog	2014-02-05 21:21:49 UTC (rev 163470)
@@ -1,3 +1,20 @@
+2014-02-05  Dan Bernstein  <m...@apple.com>
+
+        [Cocoa] WKRemoteObjectInterface fails with doubles, NSNull, and empty NSStrings
+        https://bugs.webkit.org/show_bug.cgi?id=128268
+
+        Reviewed by Anders Carlsson.
+
+        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
+        (-[WKRemoteObjectDecoder decodeBytesForKey:returnedLength:]): When returning nullptr, also
+        set the length out parameter to 0.
+
+        * Shared/API/Cocoa/WKRemoteObjectInterface.mm:
+        (propertyListClasses): Added NSNull.
+
+        * Shared/UserData.cpp:
+        (WebKit::UserData::encode): Encode the Double type.
+
 2014-02-05  Jer Noble  <jer.no...@apple.com>
 
         [WK2] [iOS] No video on embedded YouTube

Modified: trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm (163469 => 163470)


--- trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm	2014-02-05 21:15:42 UTC (rev 163469)
+++ trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectCoder.mm	2014-02-05 21:21:49 UTC (rev 163470)
@@ -554,8 +554,10 @@
 - (const uint8_t *)decodeBytesForKey:(NSString *)key returnedLength:(NSUInteger *)length
 {
     auto* data = ""
-    if (!data || !data->size())
+    if (!data || !data->size()) {
+        *length = 0;
         return nullptr;
+    }
 
     *length = data->size();
     return data->bytes();

Modified: trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectInterface.mm (163469 => 163470)


--- trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectInterface.mm	2014-02-05 21:15:42 UTC (rev 163469)
+++ trunk/Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectInterface.mm	2014-02-05 21:21:49 UTC (rev 163470)
@@ -55,7 +55,7 @@
 static NSSet *propertyListClasses()
 {
     // FIXME: Add more property list classes if needed.
-    static NSSet *propertyListClasses = [[NSSet alloc] initWithObjects:[NSArray class], [NSDictionary class], [NSNumber class], [NSString class], nil];
+    static NSSet *propertyListClasses = [[NSSet alloc] initWithObjects:[NSArray class], [NSDictionary class], [NSNull class], [NSNumber class], [NSString class], nil];
 
     return propertyListClasses;
 }

Modified: trunk/Source/WebKit2/Shared/UserData.cpp (163469 => 163470)


--- trunk/Source/WebKit2/Shared/UserData.cpp	2014-02-05 21:15:42 UTC (rev 163469)
+++ trunk/Source/WebKit2/Shared/UserData.cpp	2014-02-05 21:21:49 UTC (rev 163470)
@@ -138,6 +138,10 @@
         break;
     }
 
+    case API::Object::Type::Double:
+        static_cast<const API::Double&>(object).encode(encoder);
+        break;
+
     case API::Object::Type::Error:
         static_cast<const API::Error&>(object).encode(encoder);
         break;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to