Title: [131168] trunk/Source
Revision
131168
Author
kbal...@webkit.org
Date
2012-10-12 04:14:43 -0700 (Fri, 12 Oct 2012)

Log Message

[WK2] Serialization of Resource[Request,Response,Error] should be shared across ports
https://bugs.webkit.org/show_bug.cgi?id=90142

Reviewed by Simon Hausmann.

Source/WebCore:

Added a setter for the certificate of ResourceError.

No change in behavior so no new tests.

* platform/network/cf/ResourceError.h:
(ResourceError):
* platform/network/cf/ResourceErrorCF.cpp:
(WebCore):
(WebCore::ResourceError::setCertificate):

Source/WebKit2:

Share common serialization code across Qt and soup ports.
All of these ports serialize the WebCore representation
of these types.

* Shared/WebCoreArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC):
(CoreIPC::::decode):
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/WebCoreArgumentCodersMac.mm:
(CoreIPC::::encodePlatformData):
(CoreIPC::::decodePlatformData):
* Shared/qt/WebCoreArgumentCodersQt.cpp:
(CoreIPC::::encodePlatformData):
(CoreIPC::::decodePlatformData):
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(CoreIPC::::encodePlatformData):
(CoreIPC::::decodePlatformData):
* Shared/win/WebCoreArgumentCodersWin.cpp:
(CoreIPC::::encodePlatformData):
(CoreIPC::::decodePlatformData):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (131167 => 131168)


--- trunk/Source/WebCore/ChangeLog	2012-10-12 10:29:21 UTC (rev 131167)
+++ trunk/Source/WebCore/ChangeLog	2012-10-12 11:14:43 UTC (rev 131168)
@@ -1,3 +1,20 @@
+2012-10-12  Balazs Kelemen  <kbal...@webkit.org>
+
+        [WK2] Serialization of Resource[Request,Response,Error] should be shared across ports
+        https://bugs.webkit.org/show_bug.cgi?id=90142
+
+        Reviewed by Simon Hausmann.
+
+        Added a setter for the certificate of ResourceError.
+
+        No change in behavior so no new tests.
+
+        * platform/network/cf/ResourceError.h:
+        (ResourceError):
+        * platform/network/cf/ResourceErrorCF.cpp:
+        (WebCore):
+        (WebCore::ResourceError::setCertificate):
+
 2012-10-12  MORITA Hajime  <morr...@google.com>
 
         [V8] PerContextEnabled methods should be installed when the constructor is created

Modified: trunk/Source/WebCore/platform/network/cf/ResourceError.h (131167 => 131168)


--- trunk/Source/WebCore/platform/network/cf/ResourceError.h	2012-10-12 10:29:21 UTC (rev 131167)
+++ trunk/Source/WebCore/platform/network/cf/ResourceError.h	2012-10-12 11:14:43 UTC (rev 131168)
@@ -65,6 +65,7 @@
 #if PLATFORM(WIN)
     ResourceError(const String& domain, int errorCode, const String& failingURL, const String& localizedDescription, CFDataRef certificate);
     PCCERT_CONTEXT certificate() const;
+    void setCertificate(CFDataRef);
 #endif
     ResourceError(CFStreamError error);
     CFStreamError cfStreamError() const;

Modified: trunk/Source/WebCore/platform/network/cf/ResourceErrorCF.cpp (131167 => 131168)


--- trunk/Source/WebCore/platform/network/cf/ResourceErrorCF.cpp	2012-10-12 10:29:21 UTC (rev 131167)
+++ trunk/Source/WebCore/platform/network/cf/ResourceErrorCF.cpp	2012-10-12 11:14:43 UTC (rev 131168)
@@ -62,6 +62,11 @@
     
     return reinterpret_cast<PCCERT_CONTEXT>(CFDataGetBytePtr(m_certificate.get()));
 }
+
+void ResourceError::setCertificate(CFDataRef certificate)
+{
+    m_certificate = certificate;
+}
 #endif // PLATFORM(WIN)
 
 const CFStringRef failingURLStringKey = CFSTR("NSErrorFailingURLStringKey");

Modified: trunk/Source/WebKit2/ChangeLog (131167 => 131168)


--- trunk/Source/WebKit2/ChangeLog	2012-10-12 10:29:21 UTC (rev 131167)
+++ trunk/Source/WebKit2/ChangeLog	2012-10-12 11:14:43 UTC (rev 131168)
@@ -1,5 +1,34 @@
 2012-10-12  Balazs Kelemen  <kbal...@webkit.org>
 
+        [WK2] Serialization of Resource[Request,Response,Error] should be shared across ports
+        https://bugs.webkit.org/show_bug.cgi?id=90142
+
+        Reviewed by Simon Hausmann.
+
+        Share common serialization code across Qt and soup ports.
+        All of these ports serialize the WebCore representation
+        of these types.
+
+        * Shared/WebCoreArgumentCoders.cpp:
+        (CoreIPC::::encode):
+        (CoreIPC):
+        (CoreIPC::::decode):
+        * Shared/WebCoreArgumentCoders.h:
+        * Shared/mac/WebCoreArgumentCodersMac.mm:
+        (CoreIPC::::encodePlatformData):
+        (CoreIPC::::decodePlatformData):
+        * Shared/qt/WebCoreArgumentCodersQt.cpp:
+        (CoreIPC::::encodePlatformData):
+        (CoreIPC::::decodePlatformData):
+        * Shared/soup/WebCoreArgumentCodersSoup.cpp:
+        (CoreIPC::::encodePlatformData):
+        (CoreIPC::::decodePlatformData):
+        * Shared/win/WebCoreArgumentCodersWin.cpp:
+        (CoreIPC::::encodePlatformData):
+        (CoreIPC::::decodePlatformData):
+
+2012-10-12  Balazs Kelemen  <kbal...@webkit.org>
+
         Unreviewed, rolling out r130389.
         http://trac.webkit.org/changeset/130389
         https://bugs.webkit.org/show_bug.cgi?id=98048

Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp (131167 => 131168)


--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp	2012-10-12 10:29:21 UTC (rev 131167)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp	2012-10-12 11:14:43 UTC (rev 131168)
@@ -41,6 +41,9 @@
 #include <WebCore/KURL.h>
 #include <WebCore/PluginData.h>
 #include <WebCore/ProtectionSpace.h>
+#include <WebCore/ResourceError.h>
+#include <WebCore/ResourceRequest.h>
+#include <WebCore/ResourceResponse.h>
 #include <WebCore/TextCheckerClient.h>
 #include <WebCore/ViewportArguments.h>
 #include <WebCore/WindowFeatures.h>
@@ -387,7 +390,213 @@
     return true;
 }
 
+void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
+{
+    if (kShouldSerializeWebCoreData) {
+        encoder->encode(resourceRequest.url().string());
+        encoder->encode(resourceRequest.httpMethod());
 
+        const HTTPHeaderMap& headers = resourceRequest.httpHeaderFields();
+        encoder->encode(headers);
+
+        FormData* httpBody = resourceRequest.httpBody();
+        encoder->encode(static_cast<bool>(httpBody));
+        if (httpBody)
+            encoder->encode(httpBody->flattenToString());
+
+        encoder->encode(resourceRequest.firstPartyForCookies().string());
+    }
+
+    encodePlatformData(encoder, resourceRequest);
+}
+
+bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
+{
+    if (kShouldSerializeWebCoreData) {
+        ResourceRequest request;
+
+        String url;
+        if (!decoder->decode(url))
+            return false;
+        request.setURL(KURL(KURL(), url));
+
+        String httpMethod;
+        if (!decoder->decode(httpMethod))
+            return false;
+        request.setHTTPMethod(httpMethod);
+
+        HTTPHeaderMap headers;
+        if (!decoder->decode(headers))
+            return false;
+        request.addHTTPHeaderFields(headers);
+
+        bool hasHTTPBody;
+        if (!decoder->decode(hasHTTPBody))
+            return false;
+        if (hasHTTPBody) {
+            String httpBody;
+            if (!decoder->decode(httpBody))
+                return false;
+            request.setHTTPBody(FormData::create(httpBody.utf8()));
+        }
+
+        String firstPartyForCookies;
+        if (!decoder->decode(firstPartyForCookies))
+            return false;
+        request.setFirstPartyForCookies(KURL(KURL(), firstPartyForCookies));
+
+        resourceRequest = request;
+    }
+
+    return decodePlatformData(decoder, resourceRequest);
+}
+
+void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
+{
+    if (kShouldSerializeWebCoreData) {
+        bool responseIsNull = resourceResponse.isNull();
+        encoder->encode(responseIsNull);
+        if (responseIsNull)
+            return;
+
+        encoder->encode(resourceResponse.url().string());
+        encoder->encode(static_cast<int32_t>(resourceResponse.httpStatusCode()));
+
+        const HTTPHeaderMap& headers = resourceResponse.httpHeaderFields();
+        encoder->encode(headers);
+
+        encoder->encode(resourceResponse.mimeType());
+        encoder->encode(resourceResponse.textEncodingName());
+        encoder->encode(static_cast<int64_t>(resourceResponse.expectedContentLength()));
+        encoder->encode(resourceResponse.httpStatusText());
+        encoder->encode(resourceResponse.suggestedFilename());
+    }
+
+    encodePlatformData(encoder, resourceResponse);
+}
+
+bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
+{
+    if (kShouldSerializeWebCoreData) {
+        bool responseIsNull;
+        if (!decoder->decode(responseIsNull))
+            return false;
+        if (responseIsNull) {
+            resourceResponse = ResourceResponse();
+            return true;
+        }
+
+        ResourceResponse response;
+
+        String url;
+        if (!decoder->decode(url))
+            return false;
+        response.setURL(KURL(KURL(), url));
+
+        int32_t httpStatusCode;
+        if (!decoder->decode(httpStatusCode))
+            return false;
+        response.setHTTPStatusCode(httpStatusCode);
+
+        HTTPHeaderMap headers;
+        if (!decoder->decode(headers))
+            return false;
+        for (HTTPHeaderMap::const_iterator it = headers.begin(), end = headers.end(); it != end; ++it)
+            response.setHTTPHeaderField(it->first, it->second);
+
+        String mimeType;
+        if (!decoder->decode(mimeType))
+            return false;
+        response.setMimeType(mimeType);
+
+        String textEncodingName;
+        if (!decoder->decode(textEncodingName))
+            return false;
+        response.setTextEncodingName(textEncodingName);
+
+        int64_t contentLength;
+        if (!decoder->decode(contentLength))
+            return false;
+        response.setExpectedContentLength(contentLength);
+
+        String httpStatusText;
+        if (!decoder->decode(httpStatusText))
+            return false;
+        response.setHTTPStatusText(httpStatusText);
+
+        String suggestedFilename;
+        if (!decoder->decode(suggestedFilename))
+            return false;
+        response.setSuggestedFilename(suggestedFilename);
+
+        resourceResponse = response;
+    }
+
+    return decodePlatformData(decoder, resourceResponse);
+}
+
+void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
+{
+    if (kShouldSerializeWebCoreData) {
+        bool errorIsNull = resourceError.isNull();
+        encoder->encode(errorIsNull);
+        if (errorIsNull)
+            return;
+
+        encoder->encode(resourceError.domain());
+        encoder->encode(resourceError.errorCode());
+        encoder->encode(resourceError.failingURL());
+        encoder->encode(resourceError.localizedDescription());
+        encoder->encode(resourceError.isCancellation());
+        encoder->encode(resourceError.isTimeout());
+    }
+
+    encodePlatformData(encoder, resourceError);
+}
+
+bool ArgumentCoder<ResourceError>::decode(ArgumentDecoder* decoder, ResourceError& resourceError)
+{
+    if (kShouldSerializeWebCoreData) {
+        bool errorIsNull;
+        if (!decoder->decode(errorIsNull))
+            return false;
+        if (errorIsNull) {
+            resourceError = ResourceError();
+            return true;
+        }
+
+        String domain;
+        if (!decoder->decode(domain))
+            return false;
+
+        int errorCode;
+        if (!decoder->decode(errorCode))
+            return false;
+
+        String failingURL;
+        if (!decoder->decode(failingURL))
+            return false;
+
+        String localizedDescription;
+        if (!decoder->decode(localizedDescription))
+            return false;
+
+        bool isCancellation;
+        if (!decoder->decode(isCancellation))
+            return false;
+
+        bool isTimeout;
+        if (!decoder->decode(isTimeout))
+            return false;
+
+        resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription);
+        resourceError.setIsCancellation(isCancellation);
+        resourceError.setIsTimeout(isTimeout);
+    }
+
+    return decodePlatformData(decoder, resourceError);
+}
+
 void ArgumentCoder<WindowFeatures>::encode(ArgumentEncoder* encoder, const WindowFeatures& windowFeatures)
 {
     encoder->encode(windowFeatures.x);

Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h (131167 => 131168)


--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h	2012-10-12 10:29:21 UTC (rev 131167)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h	2012-10-12 11:14:43 UTC (rev 131168)
@@ -163,17 +163,42 @@
 };
 
 template<> struct ArgumentCoder<WebCore::ResourceRequest> {
+#if PLATFORM(MAC) || PLATFORM(WIN)
+    static const bool kShouldSerializeWebCoreData = false;
+#else
+    static const bool kShouldSerializeWebCoreData = true;
+#endif
+
     static void encode(ArgumentEncoder*, const WebCore::ResourceRequest&);
     static bool decode(ArgumentDecoder*, WebCore::ResourceRequest&);
+    static void encodePlatformData(ArgumentEncoder*, const WebCore::ResourceRequest&);
+    static bool decodePlatformData(ArgumentDecoder*, WebCore::ResourceRequest&);
 };
 
 template<> struct ArgumentCoder<WebCore::ResourceResponse> {
+#if PLATFORM(MAC) || PLATFORM(WIN)
+    static const bool kShouldSerializeWebCoreData = false;
+#else
+    static const bool kShouldSerializeWebCoreData = true;
+#endif
+
     static void encode(ArgumentEncoder*, const WebCore::ResourceResponse&);
     static bool decode(ArgumentDecoder*, WebCore::ResourceResponse&);
+    static void encodePlatformData(ArgumentEncoder*, const WebCore::ResourceResponse&);
+    static bool decodePlatformData(ArgumentDecoder*, WebCore::ResourceResponse&);
 };
+
 template<> struct ArgumentCoder<WebCore::ResourceError> {
+#if PLATFORM(MAC)
+    static const bool kShouldSerializeWebCoreData = false;
+#else
+    static const bool kShouldSerializeWebCoreData = true;
+#endif
+
     static void encode(ArgumentEncoder*, const WebCore::ResourceError&);
     static bool decode(ArgumentDecoder*, WebCore::ResourceError&);
+    static void encodePlatformData(ArgumentEncoder*, const WebCore::ResourceError&);
+    static bool decodePlatformData(ArgumentDecoder*, WebCore::ResourceError&);
 };
 
 template<> struct ArgumentCoder<WebCore::WindowFeatures> {

Modified: trunk/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm (131167 => 131168)


--- trunk/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm	2012-10-12 10:29:21 UTC (rev 131167)
+++ trunk/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm	2012-10-12 11:14:43 UTC (rev 131168)
@@ -38,7 +38,7 @@
 
 namespace CoreIPC {
 
-void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
+void ArgumentCoder<ResourceRequest>::encodePlatformData(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
 {
     bool requestIsPresent = resourceRequest.nsURLRequest();
     encoder->encode(requestIsPresent);
@@ -50,7 +50,7 @@
     CoreIPC::encode(encoder, dictionary.get());
 }
 
-bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
+bool ArgumentCoder<ResourceRequest>::decodePlatformData(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
 {
     bool requestIsPresent;
     if (!decoder->decode(requestIsPresent))
@@ -73,7 +73,7 @@
     return true;
 }
 
-void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
+void ArgumentCoder<ResourceResponse>::encodePlatformData(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
 {
     bool responseIsPresent = resourceResponse.nsURLResponse();
     encoder->encode(responseIsPresent);
@@ -85,7 +85,7 @@
     CoreIPC::encode(encoder, dictionary.get());
 }
 
-bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
+bool ArgumentCoder<ResourceResponse>::decodePlatformData(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
 {
     bool responseIsPresent;
     if (!decoder->decode(responseIsPresent))
@@ -113,7 +113,7 @@
     return string.impl() ? [NSString stringWithCharacters:reinterpret_cast<const UniChar*>(string.characters()) length:string.length()] : @"";
 }
 
-void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
+void ArgumentCoder<ResourceError>::encodePlatformData(ArgumentEncoder* encoder, const ResourceError& resourceError)
 {
     bool errorIsNull = resourceError.isNull();
     encoder->encode(errorIsNull);
@@ -147,7 +147,7 @@
     encoder->encode(PlatformCertificateInfo((CFArrayRef)peerCertificateChain));
 }
 
-bool ArgumentCoder<ResourceError>::decode(ArgumentDecoder* decoder, ResourceError& resourceError)
+bool ArgumentCoder<ResourceError>::decodePlatformData(ArgumentDecoder* decoder, ResourceError& resourceError)
 {
     bool errorIsNull;
     if (!decoder->decode(errorIsNull))

Modified: trunk/Source/WebKit2/Shared/qt/WebCoreArgumentCodersQt.cpp (131167 => 131168)


--- trunk/Source/WebKit2/Shared/qt/WebCoreArgumentCodersQt.cpp	2012-10-12 10:29:21 UTC (rev 131167)
+++ trunk/Source/WebKit2/Shared/qt/WebCoreArgumentCodersQt.cpp	2012-10-12 11:14:43 UTC (rev 131168)
@@ -34,100 +34,32 @@
  
 namespace CoreIPC {
 
-void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
+void ArgumentCoder<ResourceRequest>::encodePlatformData(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
 {
-    encoder->encode(resourceRequest.url().string());
 }
 
-bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
+bool ArgumentCoder<ResourceRequest>::decodePlatformData(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
 {
-    // FIXME: Add *more* coding implementation when we want to implement something that
-    // depends on this like the policy client.
-
-    String url;
-    if (!decoder->decode(url))
-        return false;
-    resourceRequest.setURL(KURL(KURL(), url));
     return true;
 }
 
 
-void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
+void ArgumentCoder<ResourceResponse>::encodePlatformData(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
 {
-    encoder->encode(resourceResponse.url().string());
-    encoder->encode(resourceResponse.mimeType());
-    encoder->encode(static_cast<int64_t>(resourceResponse.expectedContentLength()));
-    encoder->encode(resourceResponse.textEncodingName());
-    encoder->encode(resourceResponse.suggestedFilename());
 }
 
-bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
+bool ArgumentCoder<ResourceResponse>::decodePlatformData(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
 {
-    ResourceResponse response;
-
-    String url;
-    if (!decoder->decode(url))
-        return false;
-    response.setURL(KURL(WebCore::ParsedURLString, url));
-
-    String mimeType;
-    if (!decoder->decode(mimeType))
-        return false;
-    response.setMimeType(mimeType);
-
-    int64_t contentLength;
-    if (!decoder->decode(contentLength))
-        return false;
-    response.setExpectedContentLength(contentLength);
-
-    String textEncodingName;
-    if (!decoder->decode(textEncodingName))
-        return false;
-    response.setTextEncodingName(textEncodingName);
-
-    String suggestedFilename;
-    if (!decoder->decode(suggestedFilename))
-        return false;
-    response.setSuggestedFilename(suggestedFilename);
-
-    resourceResponse = response;
     return true;
 }
 
 
-void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
+void ArgumentCoder<ResourceError>::encodePlatformData(ArgumentEncoder* encoder, const ResourceError& resourceError)
 {
-    encoder->encode(resourceError.domain());
-    encoder->encode(resourceError.errorCode());
-    encoder->encode(resourceError.failingURL());
-    encoder->encode(resourceError.localizedDescription());
-    encoder->encode(resourceError.isCancellation());
 }
 
-bool ArgumentCoder<ResourceError>::decode(ArgumentDecoder* decoder, ResourceError& resourceError)
+bool ArgumentCoder<ResourceError>::decodePlatformData(ArgumentDecoder* decoder, ResourceError& resourceError)
 {
-    String domain;
-    if (!decoder->decode(domain))
-        return false;
-
-    int errorCode;
-    if (!decoder->decode(errorCode))
-        return false;
-
-    String failingURL;
-    if (!decoder->decode(failingURL))
-        return false;
-
-    String localizedDescription;
-    if (!decoder->decode(localizedDescription))
-        return false;
-
-    bool isCancellation;
-    if (!decoder->decode(isCancellation))
-        return false;
-
-    resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription);
-    resourceError.setIsCancellation(isCancellation);
     return true;
 }
 

Modified: trunk/Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp (131167 => 131168)


--- trunk/Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp	2012-10-12 10:29:21 UTC (rev 131167)
+++ trunk/Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp	2012-10-12 11:14:43 UTC (rev 131168)
@@ -36,198 +36,42 @@
 
 namespace CoreIPC {
 
-void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
+void ArgumentCoder<ResourceRequest>::encodePlatformData(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
 {
-    encoder->encode(resourceRequest.url().string());
-    encoder->encode(resourceRequest.httpMethod());
-
-    const HTTPHeaderMap& headers = resourceRequest.httpHeaderFields();
-    encoder->encode(headers);
-
-    FormData* httpBody = resourceRequest.httpBody();
-    encoder->encode(static_cast<bool>(httpBody));
-    if (httpBody)
-        encoder->encode(httpBody->flattenToString());
-
-    encoder->encode(resourceRequest.firstPartyForCookies().string());
     encoder->encode(static_cast<uint32_t>(resourceRequest.soupMessageFlags()));
 }
 
-bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
+bool ArgumentCoder<ResourceRequest>::decodePlatformData(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
 {
-    ResourceRequest request;
-
-    String url;
-    if (!decoder->decode(url))
-        return false;
-    request.setURL(KURL(KURL(), url));
-
-    String httpMethod;
-    if (!decoder->decode(httpMethod))
-        return false;
-    request.setHTTPMethod(httpMethod);
-
-    HTTPHeaderMap headers;
-    if (!decoder->decode(headers))
-        return false;
-    request.addHTTPHeaderFields(headers);
-
-    bool hasHTTPBody;
-    if (!decoder->decode(hasHTTPBody))
-        return false;
-    if (hasHTTPBody) {
-        String httpBody;
-        if (!decoder->decode(httpBody))
-            return false;
-        request.setHTTPBody(FormData::create(httpBody.utf8()));
-    }
-
-    String firstPartyForCookies;
-    if (!decoder->decode(firstPartyForCookies))
-        return false;
-    request.setFirstPartyForCookies(KURL(KURL(), firstPartyForCookies));
-
     uint32_t soupMessageFlags;
     if (!decoder->decode(soupMessageFlags))
         return false;
-    request.setSoupMessageFlags(static_cast<SoupMessageFlags>(soupMessageFlags));
-
-    resourceRequest = request;
+    resourceRequest.setSoupMessageFlags(static_cast<SoupMessageFlags>(soupMessageFlags));
     return true;
 }
 
 
-void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
+void ArgumentCoder<ResourceResponse>::encodePlatformData(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
 {
-    bool responseIsNull = resourceResponse.isNull();
-    encoder->encode(responseIsNull);
-    if (responseIsNull)
-        return;
-
-    encoder->encode(resourceResponse.url().string());
-    encoder->encode(static_cast<int32_t>(resourceResponse.httpStatusCode()));
-
-    const HTTPHeaderMap& headers = resourceResponse.httpHeaderFields();
-    encoder->encode(headers);
-
     encoder->encode(static_cast<uint32_t>(resourceResponse.soupMessageFlags()));
-    encoder->encode(resourceResponse.mimeType());
-    encoder->encode(resourceResponse.textEncodingName());
-    encoder->encode(static_cast<int64_t>(resourceResponse.expectedContentLength()));
-    encoder->encode(resourceResponse.httpStatusText());
-    encoder->encode(resourceResponse.suggestedFilename());
 }
 
-bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
+bool ArgumentCoder<ResourceResponse>::decodePlatformData(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
 {
-    bool responseIsNull;
-    if (!decoder->decode(responseIsNull))
-        return false;
-    if (responseIsNull) {
-        resourceResponse = ResourceResponse();
-        return true;
-    }
-
-    ResourceResponse response;
-
-    String url;
-    if (!decoder->decode(url))
-        return false;
-    response.setURL(KURL(KURL(), url));
-
-    int32_t httpStatusCode;
-    if (!decoder->decode(httpStatusCode))
-        return false;
-    response.setHTTPStatusCode(httpStatusCode);
-
-    HTTPHeaderMap headers;
-    if (!decoder->decode(headers))
-        return false;
-    for (HTTPHeaderMap::const_iterator it = headers.begin(), end = headers.end(); it != end; ++it)
-        response.setHTTPHeaderField(it->key, it->value);
-
     uint32_t soupMessageFlags;
     if (!decoder->decode(soupMessageFlags))
         return false;
-    response.setSoupMessageFlags(static_cast<SoupMessageFlags>(soupMessageFlags));
-
-    String mimeType;
-    if (!decoder->decode(mimeType))
-        return false;
-    response.setMimeType(mimeType);
-
-    String textEncodingName;
-    if (!decoder->decode(textEncodingName))
-        return false;
-    response.setTextEncodingName(textEncodingName);
-
-    int64_t contentLength;
-    if (!decoder->decode(contentLength))
-        return false;
-    response.setExpectedContentLength(contentLength);
-
-    String httpStatusText;
-    if (!decoder->decode(httpStatusText))
-        return false;
-    response.setHTTPStatusText(httpStatusText);
-
-    String suggestedFilename;
-    if (!decoder->decode(suggestedFilename))
-        return false;
-    response.setSuggestedFilename(suggestedFilename);
-
-    resourceResponse = response;
+    resourceResponse.setSoupMessageFlags(static_cast<SoupMessageFlags>(soupMessageFlags));
     return true;
 }
 
 
 void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
 {
-    bool errorIsNull = resourceError.isNull();
-    encoder->encode(errorIsNull);
-    if (errorIsNull)
-        return;
-
-    encoder->encode(resourceError.domain());
-    encoder->encode(resourceError.errorCode());
-    encoder->encode(resourceError.failingURL());
-    encoder->encode(resourceError.localizedDescription());
-    encoder->encode(resourceError.isCancellation());
 }
 
 bool ArgumentCoder<ResourceError>::decode(ArgumentDecoder* decoder, ResourceError& resourceError)
 {
-    bool errorIsNull;
-    if (!decoder->decode(errorIsNull))
-        return false;
-    if (errorIsNull) {
-        resourceError = ResourceError();
-        return true;
-    }
-
-    String domain;
-    if (!decoder->decode(domain))
-        return false;
-
-    int errorCode;
-    if (!decoder->decode(errorCode))
-        return false;
-
-    String failingURL;
-    if (!decoder->decode(failingURL))
-        return false;
-
-    String localizedDescription;
-    if (!decoder->decode(localizedDescription))
-        return false;
-
-    bool isCancellation;
-    if (!decoder->decode(isCancellation))
-        return false;
-
-    resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription);
-    resourceError.setIsCancellation(isCancellation);
-
     return true;
 }
 

Modified: trunk/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp (131167 => 131168)


--- trunk/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp	2012-10-12 10:29:21 UTC (rev 131167)
+++ trunk/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp	2012-10-12 11:14:43 UTC (rev 131168)
@@ -49,7 +49,7 @@
 
 // FIXME: These coders should really go in a WebCoreArgumentCodersCFNetwork file.
 
-void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
+void ArgumentCoder<ResourceRequest>::encodePlatformData(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
 {
 #if USE(CFNETWORK)
     bool requestIsPresent = resourceRequest.cfURLRequest();
@@ -63,7 +63,7 @@
 #endif
 }
 
-bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
+bool ArgumentCoder<ResourceRequest>::decodePlatformData(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
 {
 #if USE(CFNETWORK)
     bool requestIsPresent;
@@ -95,7 +95,7 @@
 }
 
 
-void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
+void ArgumentCoder<ResourceResponse>::encodePlatformData(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
 {
 #if USE(CFNETWORK)
     bool responseIsPresent = resourceResponse.cfURLResponse();
@@ -109,7 +109,7 @@
 #endif
 }
 
-bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
+bool ArgumentCoder<ResourceResponse>::decodePlatformData(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
 {
 #if USE(CFNETWORK)
     bool responseIsPresent;
@@ -137,50 +137,25 @@
 }
 
 
-void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
+void ArgumentCoder<ResourceError>::encodePlatformData(ArgumentEncoder* encoder, const ResourceError& resourceError)
 {
-    encoder->encode(resourceError.domain());
-    encoder->encode(resourceError.errorCode());
-    encoder->encode(resourceError.failingURL()); 
-    encoder->encode(resourceError.localizedDescription());
-
 #if USE(CFNETWORK)
     encoder->encode(PlatformCertificateInfo(resourceError.certificate()));
 #endif
 }
 
-bool ArgumentCoder<ResourceError>::decode(ArgumentDecoder* decoder, ResourceError& resourceError)
+bool ArgumentCoder<ResourceError>::decodePlatformData(ArgumentDecoder* decoder, ResourceError& resourceError)
 {
-    String domain;
-    if (!decoder->decode(domain))
-        return false;
-
-    int errorCode;
-    if (!decoder->decode(errorCode))
-        return false;
-
-    String failingURL;
-    if (!decoder->decode(failingURL))
-        return false;
-
-    String localizedDescription;
-    if (!decoder->decode(localizedDescription))
-        return false;
-
 #if USE(CFNETWORK)
     PlatformCertificateInfo certificate;
     if (!decoder->decode(certificate))
         return false;
     
     const Vector<PCCERT_CONTEXT> certificateChain = certificate.certificateChain();
-    if (!certificateChain.isEmpty()) {
-        ASSERT(certificateChain.size() == 1);
-        resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription, copyCertificateToData(certificateChain.first()).get());
-        return true;
-    }
+    if (!certificateChain.isEmpty())
+        resourceError.setCertificate(copyCertificateToData(certificateChain.first()).get());
 #endif
 
-    resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription);
     return true;
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to