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;
}