Title: [159084] trunk/Source/WebKit2
Revision
159084
Author
[email protected]
Date
2013-11-11 17:08:50 -0800 (Mon, 11 Nov 2013)

Log Message

REGRESSION (r158927): curly-braces-escaping.html is broken on Mac WebKit2
https://bugs.webkit.org/show_bug.cgi?id=124164

Reviewed by Alexey Proskuryakov.

Back out the change to use NSSecureCoding for encoding/decoding NSURLRequest and
NSURLResponse objects; turns out the NSURL encoding/decoding doesn't preserve the raw URL bytes.

* Shared/mac/WebCoreArgumentCodersMac.mm:
(CoreIPC::encodePlatformData):
(CoreIPC::decodePlatformData):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (159083 => 159084)


--- trunk/Source/WebKit2/ChangeLog	2013-11-12 00:52:29 UTC (rev 159083)
+++ trunk/Source/WebKit2/ChangeLog	2013-11-12 01:08:50 UTC (rev 159084)
@@ -1,3 +1,17 @@
+2013-11-11  Anders Carlsson  <[email protected]>
+
+        REGRESSION (r158927): curly-braces-escaping.html is broken on Mac WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=124164
+
+        Reviewed by Alexey Proskuryakov.
+
+        Back out the change to use NSSecureCoding for encoding/decoding NSURLRequest and
+        NSURLResponse objects; turns out the NSURL encoding/decoding doesn't preserve the raw URL bytes.
+
+        * Shared/mac/WebCoreArgumentCodersMac.mm:
+        (CoreIPC::encodePlatformData):
+        (CoreIPC::decodePlatformData):
+
 2013-11-11  Ryuan Choi  <[email protected]>
 
         Unreviewed build fix on CMake Based port since r159077.

Modified: trunk/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm (159083 => 159084)


--- trunk/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm	2013-11-12 00:52:29 UTC (rev 159083)
+++ trunk/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm	2013-11-12 01:08:50 UTC (rev 159084)
@@ -39,33 +39,6 @@
 
 namespace CoreIPC {
 
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
-static void archiveAndEncodeObject(ArgumentEncoder& encoder, id object, NSString *key)
-{
-    RetainPtr<NSMutableData> data = "" alloc] init]);
-    RetainPtr<NSKeyedArchiver> archiver = adoptNS([[NSKeyedArchiver alloc] initForWritingWithMutableData:data.get()]);
-
-    [archiver setRequiresSecureCoding:YES];
-    [archiver.get() encodeObject:object forKey:key];
-    [archiver finishEncoding];
-    encoder << CoreIPC::DataReference(static_cast<const uint8_t*>([data bytes]), [data length]);
-}
-
-template<typename T>
-static bool decodeAndUnarchiveObject(ArgumentDecoder& decoder, NSString *key, RetainPtr<T>& result)
-{
-    CoreIPC::DataReference dataReference;
-    if (!decoder.decode(dataReference))
-        return false;
-
-    RetainPtr<NSData> data = "" alloc] initWithBytesNoCopy:const_cast<uint8_t*>(dataReference.data()) length:dataReference.size() freeWhenDone:NO]);
-    RetainPtr<NSKeyedUnarchiver> unarchiver = adoptNS([[NSKeyedUnarchiver alloc] initForReadingWithData:data.get()]);
-    [unarchiver setRequiresSecureCoding:YES];
-    result = [unarchiver decodeObjectOfClass:[T class] forKey:key];
-    return true;
-}
-#endif
-
 void ArgumentCoder<ResourceRequest>::encodePlatformData(ArgumentEncoder& encoder, const ResourceRequest& resourceRequest)
 {
     RetainPtr<NSURLRequest> requestToSerialize = resourceRequest.nsURLRequest(DoNotUpdateHTTPBody);
@@ -84,12 +57,8 @@
         [(NSMutableURLRequest *)requestToSerialize setHTTPBodyStream:nil];
     }
 
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
-    archiveAndEncodeObject(encoder, requestToSerialize.get(), @"request");
-#else
     RetainPtr<CFDictionaryRef> dictionary = adoptCF(WKNSURLRequestCreateSerializableRepresentation(requestToSerialize.get(), CoreIPC::tokenNullTypeRef()));
     CoreIPC::encode(encoder, dictionary.get());
-#endif
 
     // The fallback array is part of NSURLRequest, but it is not encoded by WKNSURLRequestCreateSerializableRepresentation.
     encoder << resourceRequest.responseContentDispositionEncodingFallbackArray();
@@ -106,11 +75,6 @@
         return true;
     }
 
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
-    RetainPtr<NSURLRequest> nsURLRequest;
-    if (!decodeAndUnarchiveObject(decoder, @"request", nsURLRequest))
-        return false;
-#else
     RetainPtr<CFDictionaryRef> dictionary;
     if (!CoreIPC::decode(decoder, dictionary))
         return false;
@@ -118,7 +82,6 @@
     RetainPtr<NSURLRequest> nsURLRequest = WKNSURLRequestFromSerializableRepresentation(dictionary.get(), CoreIPC::tokenNullTypeRef());
     if (!nsURLRequest)
         return false;
-#endif
 
     resourceRequest = ResourceRequest(nsURLRequest.get());
     
@@ -143,12 +106,8 @@
     if (!responseIsPresent)
         return;
 
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
-    archiveAndEncodeObject(encoder, resourceResponse.nsURLResponse(), @"response");
-#else
     RetainPtr<CFDictionaryRef> dictionary = adoptCF(WKNSURLResponseCreateSerializableRepresentation(resourceResponse.nsURLResponse(), CoreIPC::tokenNullTypeRef()));
     CoreIPC::encode(encoder, dictionary.get());
-#endif
 }
 
 bool ArgumentCoder<ResourceResponse>::decodePlatformData(ArgumentDecoder& decoder, ResourceResponse& resourceResponse)
@@ -162,17 +121,11 @@
         return true;
     }
 
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
-    RetainPtr<NSURLResponse> nsURLResponse;
-    if (!decodeAndUnarchiveObject(decoder, @"response", nsURLResponse))
-        return false;
-#else
     RetainPtr<CFDictionaryRef> dictionary;
     if (!CoreIPC::decode(decoder, dictionary))
         return false;
 
     RetainPtr<NSURLResponse> nsURLResponse = WKNSURLResponseFromSerializableRepresentation(dictionary.get(), CoreIPC::tokenNullTypeRef());
-#endif
 
     if (!nsURLResponse)
         return false;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to