Diff
Modified: trunk/Source/WebKit2/ChangeLog (89059 => 89060)
--- trunk/Source/WebKit2/ChangeLog 2011-06-16 19:54:03 UTC (rev 89059)
+++ trunk/Source/WebKit2/ChangeLog 2011-06-16 20:01:14 UTC (rev 89060)
@@ -1,3 +1,27 @@
+2011-06-16 Anders Carlsson <[email protected]>
+
+ Reviewed by Sam Weinig.
+
+ Cleanup ResourceRequest, ResourceResponse and ResourceError argument coders
+ https://bugs.webkit.org/show_bug.cgi?id=62803
+
+ Get rid of the free encode/decode functions and move the template specializations to their
+ respective implementation files instead.
+
+ * Shared/WebCoreArgumentCoders.h:
+ * Shared/gtk/WebCoreArgumentCodersGtk.cpp:
+ (CoreIPC::::encode):
+ (CoreIPC::::decode):
+ * Shared/mac/WebCoreArgumentCodersMac.mm:
+ (CoreIPC::::encode):
+ (CoreIPC::::decode):
+ * Shared/qt/WebCoreArgumentCodersQt.cpp:
+ (CoreIPC::::encode):
+ (CoreIPC::::decode):
+ * Shared/win/WebCoreArgumentCodersWin.cpp:
+ (CoreIPC::::encode):
+ (CoreIPC::::decode):
+
2011-06-16 Chang Shu <[email protected]>
Reviewed by Sam Weinig.
Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h (89059 => 89060)
--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h 2011-06-16 19:54:03 UTC (rev 89059)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h 2011-06-16 20:01:14 UTC (rev 89060)
@@ -130,52 +130,18 @@
};
#endif
-// These two functions are implemented in a platform specific manner.
-void encodeResourceRequest(ArgumentEncoder*, const WebCore::ResourceRequest&);
-bool decodeResourceRequest(ArgumentDecoder*, WebCore::ResourceRequest&);
-
template<> struct ArgumentCoder<WebCore::ResourceRequest> {
- static void encode(ArgumentEncoder* encoder, const WebCore::ResourceRequest& resourceRequest)
- {
- encodeResourceRequest(encoder, resourceRequest);
- }
-
- static bool decode(ArgumentDecoder* decoder, WebCore::ResourceRequest& resourceRequest)
- {
- return decodeResourceRequest(decoder, resourceRequest);
- }
+ static void encode(ArgumentEncoder*, const WebCore::ResourceRequest&);
+ static bool decode(ArgumentDecoder*, WebCore::ResourceRequest&);
};
-// These two functions are implemented in a platform specific manner.
-void encodeResourceResponse(ArgumentEncoder*, const WebCore::ResourceResponse&);
-bool decodeResourceResponse(ArgumentDecoder*, WebCore::ResourceResponse&);
-
template<> struct ArgumentCoder<WebCore::ResourceResponse> {
- static void encode(ArgumentEncoder* encoder, const WebCore::ResourceResponse& resourceResponse)
- {
- encodeResourceResponse(encoder, resourceResponse);
- }
-
- static bool decode(ArgumentDecoder* decoder, WebCore::ResourceResponse& resourceResponse)
- {
- return decodeResourceResponse(decoder, resourceResponse);
- }
+ static void encode(ArgumentEncoder*, const WebCore::ResourceResponse&);
+ static bool decode(ArgumentDecoder*, WebCore::ResourceResponse&);
};
-
-// These two functions are implemented in a platform specific manner.
-void encodeResourceError(ArgumentEncoder*, const WebCore::ResourceError&);
-bool decodeResourceError(ArgumentDecoder*, WebCore::ResourceError&);
-
template<> struct ArgumentCoder<WebCore::ResourceError> {
- static void encode(ArgumentEncoder* encoder, const WebCore::ResourceError& resourceError)
- {
- encodeResourceError(encoder, resourceError);
- }
-
- static bool decode(ArgumentDecoder* decoder, WebCore::ResourceError& resourceError)
- {
- return decodeResourceError(decoder, resourceError);
- }
+ static void encode(ArgumentEncoder*, const WebCore::ResourceError&);
+ static bool decode(ArgumentDecoder*, WebCore::ResourceError&);
};
template<> struct ArgumentCoder<WebCore::WindowFeatures> {
Modified: trunk/Source/WebKit2/Shared/gtk/WebCoreArgumentCodersGtk.cpp (89059 => 89060)
--- trunk/Source/WebKit2/Shared/gtk/WebCoreArgumentCodersGtk.cpp 2011-06-16 19:54:03 UTC (rev 89059)
+++ trunk/Source/WebKit2/Shared/gtk/WebCoreArgumentCodersGtk.cpp 2011-06-16 20:01:14 UTC (rev 89060)
@@ -28,74 +28,63 @@
#include "ResourceRequest.h"
#include "WebCoreArgumentCoders.h"
+using namespace WebCore;
+
namespace CoreIPC {
-void encodeResourceRequest(ArgumentEncoder* encoder, const WebCore::ResourceRequest& resourceRequest)
+void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
{
- encoder->encode(CoreIPC::In(resourceRequest.url().string()));
- encoder->encode(CoreIPC::In(resourceRequest.httpMethod()));
+ encoder->encode(resourceRequest.url().string());
+ encoder->encode(resourceRequest.httpMethod());
- const WebCore::HTTPHeaderMap& headers = resourceRequest.httpHeaderFields();
- encoder->encode(CoreIPC::In(static_cast<uint32_t>(headers.size())));
- if (!headers.isEmpty()) {
- WebCore::HTTPHeaderMap::const_iterator end = headers.end();
- for (WebCore::HTTPHeaderMap::const_iterator it = headers.begin(); it != end; ++it)
- encoder->encode(CoreIPC::In(it->first, it->second));
- }
+ const HTTPHeaderMap& headers = resourceRequest.httpHeaderFields();
+ encoder->encode(headers);
- WebCore::FormData* httpBody = resourceRequest.httpBody();
- encoder->encode(CoreIPC::In(static_cast<bool>(httpBody)));
+ FormData* httpBody = resourceRequest.httpBody();
+ encoder->encode(static_cast<bool>(httpBody));
if (httpBody)
- encoder->encode(CoreIPC::In(httpBody->flattenToString()));
+ encoder->encode(httpBody->flattenToString());
- encoder->encode(CoreIPC::In(resourceRequest.firstPartyForCookies().string()));
- encoder->encode(CoreIPC::In(static_cast<uint32_t>(resourceRequest.soupMessageFlags())));
+ encoder->encode(resourceRequest.firstPartyForCookies().string());
+ encoder->encode(static_cast<uint32_t>(resourceRequest.soupMessageFlags()));
}
-bool decodeResourceRequest(ArgumentDecoder* decoder, WebCore::ResourceRequest& resourceRequest)
+bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
{
- WebCore::ResourceRequest request;
+ ResourceRequest request;
String url;
- if (!decoder->decode(CoreIPC::Out(url)))
+ if (!decoder->decode(url))
return false;
- request.setURL(WebCore::KURL(WebCore::KURL(), url));
+ request.setURL(KURL(KURL(), url));
String httpMethod;
- if (!decoder->decode(CoreIPC::Out(httpMethod)))
+ if (!decoder->decode(httpMethod))
return false;
request.setHTTPMethod(httpMethod);
- uint32_t size;
- if (!decoder->decode(CoreIPC::Out(size)))
+ HTTPHeaderMap headers;
+ if (!decoder->decode(headers))
return false;
- if (size) {
- AtomicString name;
- String value;
- for (uint32_t i = 0; i < size; ++i) {
- if (!decoder->decode(CoreIPC::Out(name, value)))
- return false;
- request.setHTTPHeaderField(name, value);
- }
- }
+ request.addHTTPHeaderFields(headers);
bool hasHTTPBody;
- if (!decoder->decode(CoreIPC::Out(hasHTTPBody)))
+ if (!decoder->decode(hasHTTPBody))
return false;
if (hasHTTPBody) {
String httpBody;
- if (!decoder->decode(CoreIPC::Out(httpBody)))
+ if (!decoder->decode(httpBody))
return false;
- request.setHTTPBody(WebCore::FormData::create(httpBody.utf8()));
+ request.setHTTPBody(FormData::create(httpBody.utf8()));
}
String firstPartyForCookies;
- if (!decoder->decode(CoreIPC::Out(firstPartyForCookies)))
+ if (!decoder->decode(firstPartyForCookies))
return false;
- request.setFirstPartyForCookies(WebCore::KURL(WebCore::KURL(), firstPartyForCookies));
+ request.setFirstPartyForCookies(KURL(KURL(), firstPartyForCookies));
uint32_t soupMessageFlags;
- if (!decoder->decode(CoreIPC::Out(soupMessageFlags)))
+ if (!decoder->decode(soupMessageFlags))
return false;
request.setSoupMessageFlags(static_cast<SoupMessageFlags>(soupMessageFlags));
@@ -103,81 +92,69 @@
return true;
}
-void encodeResourceResponse(ArgumentEncoder* encoder, const WebCore::ResourceResponse& resourceResponse)
+
+void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
{
- encoder->encode(CoreIPC::In(resourceResponse.url().string()));
- encoder->encode(CoreIPC::In(static_cast<int32_t>(resourceResponse.httpStatusCode())));
+ encoder->encode(resourceResponse.url().string());
+ encoder->encode(static_cast<int32_t>(resourceResponse.httpStatusCode()));
- const WebCore::HTTPHeaderMap& headers = resourceResponse.httpHeaderFields();
- encoder->encode(CoreIPC::In(static_cast<uint32_t>(headers.size())));
- if (!headers.isEmpty()) {
- WebCore::HTTPHeaderMap::const_iterator end = headers.end();
- for (WebCore::HTTPHeaderMap::const_iterator it = headers.begin(); it != end; ++it)
- encoder->encode(CoreIPC::In(it->first, it->second));
- }
+ encoder->encode(headers);
- encoder->encode(CoreIPC::In(static_cast<uint32_t>(resourceResponse.soupMessageFlags())));
- encoder->encode(CoreIPC::In(resourceResponse.mimeType()));
- encoder->encode(CoreIPC::In(resourceResponse.textEncodingName()));
- encoder->encode(CoreIPC::In(static_cast<int64_t>(resourceResponse.expectedContentLength())));
- encoder->encode(CoreIPC::In(resourceResponse.httpStatusText()));
- encoder->encode(CoreIPC::In(resourceResponse.suggestedFilename()));
+ 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 decodeResourceResponse(ArgumentDecoder* decoder, WebCore::ResourceResponse& resourceResponse)
+bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
{
- WebCore::ResourceResponse response;
+ ResourceResponse response;
String url;
- if (!decoder->decode(CoreIPC::Out(url)))
+ if (!decoder->decode(url))
return false;
- response.setURL(WebCore::KURL(WebCore::KURL(), url));
+ response.setURL(KURL(KURL(), url));
int32_t httpStatusCode;
- if (!decoder->decode(CoreIPC::Out(httpStatusCode)))
+ if (!decoder->decode(httpStatusCode))
return false;
response.setHTTPStatusCode(httpStatusCode);
- uint32_t size;
- if (!decoder->decode(CoreIPC::Out(size)))
+ HTTPHeaderMap headers;
+ if (!decoder->decode(headers))
return false;
- if (size) {
- AtomicString name;
- String value;
- for (uint32_t i = 0; i < size; ++i) {
- if (!decoder->decode(CoreIPC::Out(name, value)))
- return false;
- response.setHTTPHeaderField(name, value);
- }
- }
+ for (HTTPHeaderMap::const_iterator it = headers.begin(), end = headers.end(); it != end; ++it)
+ response.setHTTPHeaderField(it->first, it->second);
uint32_t soupMessageFlags;
- if (!decoder->decode(CoreIPC::Out(soupMessageFlags)))
+ if (!decoder->decode(soupMessageFlags))
return false;
response.setSoupMessageFlags(static_cast<SoupMessageFlags>(soupMessageFlags));
String mimeType;
- if (!decoder->decode(CoreIPC::Out(mimeType)))
+ if (!decoder->decode(mimeType))
return false;
response.setMimeType(mimeType);
String textEncodingName;
- if (!decoder->decode(CoreIPC::Out(textEncodingName)))
+ if (!decoder->decode(textEncodingName))
return false;
response.setTextEncodingName(textEncodingName);
int64_t contentLength;
- if (!decoder->decode(CoreIPC::Out(contentLength)))
+ if (!decoder->decode(contentLength))
return false;
response.setExpectedContentLength(contentLength);
String httpStatusText;
- if (!decoder->decode(CoreIPC::Out(httpStatusText)))
+ if (!decoder->decode(httpStatusText))
return false;
response.setHTTPStatusText(httpStatusText);
String suggestedFilename;
- if (!decoder->decode(CoreIPC::Out(suggestedFilename)))
+ if (!decoder->decode(suggestedFilename))
return false;
response.setSuggestedFilename(suggestedFilename);
@@ -185,20 +162,34 @@
return true;
}
-void encodeResourceError(ArgumentEncoder* encoder, const WebCore::ResourceError& resourceError)
+
+void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
{
- encoder->encode(CoreIPC::In(resourceError.domain(), resourceError.errorCode(), resourceError.failingURL(), resourceError.localizedDescription()));
+ encoder->encode(resourceError.domain());
+ encoder->encode(resourceError.errorCode());
+ encoder->encode(resourceError.failingURL());
+ encoder->encode(resourceError.localizedDescription());
}
-bool decodeResourceError(ArgumentDecoder* decoder, WebCore::ResourceError& resourceError)
+bool ArgumentCoder<ResourceError>::decode(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(CoreIPC::Out(domain, errorCode, failingURL, localizedDescription)))
+ if (!decoder->decode(localizedDescription))
return false;
- resourceError = WebCore::ResourceError(domain, errorCode, failingURL, localizedDescription);
+
+ resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription);
return true;
}
Modified: trunk/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm (89059 => 89060)
--- trunk/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm 2011-06-16 19:54:03 UTC (rev 89059)
+++ trunk/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm 2011-06-16 20:01:14 UTC (rev 89060)
@@ -35,7 +35,7 @@
namespace CoreIPC {
-void encodeResourceRequest(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
+void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
{
bool requestIsPresent = resourceRequest.nsURLRequest();
encoder->encode(requestIsPresent);
@@ -44,10 +44,10 @@
return;
RetainPtr<CFDictionaryRef> dictionary(AdoptCF, WKNSURLRequestCreateSerializableRepresentation(resourceRequest.nsURLRequest(), CoreIPC::tokenNullTypeRef()));
- encode(encoder, dictionary.get());
+ CoreIPC::encode(encoder, dictionary.get());
}
-bool decodeResourceRequest(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
+bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
{
bool requestIsPresent;
if (!decoder->decode(requestIsPresent))
@@ -59,7 +59,7 @@
}
RetainPtr<CFDictionaryRef> dictionary;
- if (!decode(decoder, dictionary))
+ if (!CoreIPC::decode(decoder, dictionary))
return false;
NSURLRequest *nsURLRequest = WKNSURLRequestFromSerializableRepresentation(dictionary.get(), CoreIPC::tokenNullTypeRef());
@@ -70,7 +70,7 @@
return true;
}
-void encodeResourceResponse(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
+void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
{
bool responseIsPresent = resourceResponse.nsURLResponse();
encoder->encode(responseIsPresent);
@@ -79,10 +79,10 @@
return;
RetainPtr<CFDictionaryRef> dictionary(AdoptCF, WKNSURLResponseCreateSerializableRepresentation(resourceResponse.nsURLResponse(), CoreIPC::tokenNullTypeRef()));
- encode(encoder, dictionary.get());
+ CoreIPC::encode(encoder, dictionary.get());
}
-bool decodeResourceResponse(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
+bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
{
bool responseIsPresent;
if (!decoder->decode(responseIsPresent))
@@ -94,7 +94,7 @@
}
RetainPtr<CFDictionaryRef> dictionary;
- if (!decode(decoder, dictionary))
+ if (!CoreIPC::decode(decoder, dictionary))
return false;
NSURLResponse* nsURLResponse = WKNSURLResponseFromSerializableRepresentation(dictionary.get(), CoreIPC::tokenNullTypeRef());
@@ -110,7 +110,7 @@
return string.impl() ? [NSString stringWithCharacters:reinterpret_cast<const UniChar*>(string.characters()) length:string.length()] : @"";
}
-void encodeResourceError(ArgumentEncoder* encoder, const ResourceError& resourceError)
+void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
{
bool errorIsNull = resourceError.isNull();
encoder->encode(errorIsNull);
@@ -144,7 +144,7 @@
encoder->encode(PlatformCertificateInfo((CFArrayRef)peerCertificateChain));
}
-bool decodeResourceError(ArgumentDecoder* decoder, ResourceError& resourceError)
+bool ArgumentCoder<ResourceError>::decode(ArgumentDecoder* decoder, ResourceError& resourceError)
{
bool errorIsNull;
if (!decoder->decode(errorIsNull))
@@ -185,14 +185,12 @@
if (certificate.certificateChain())
[userInfo setObject:(NSArray *)certificate.certificateChain() forKey:@"NSErrorPeerCertificateChainKey"];
- NSError *nsError = [[NSError alloc] initWithDomain:nsString(domain) code:code userInfo:userInfo];
+ RetainPtr<NSError> nsError(AdoptNS, [[NSError alloc] initWithDomain:nsString(domain) code:code userInfo:userInfo]);
- resourceError = ResourceError(nsError);
- [nsError release];
+ resourceError = ResourceError(nsError.get());
return true;
}
-
void ArgumentCoder<KeypressCommand>::encode(ArgumentEncoder* encoder, const KeypressCommand& keypressCommand)
{
encoder->encode(keypressCommand.commandName);
Modified: trunk/Source/WebKit2/Shared/qt/WebCoreArgumentCodersQt.cpp (89059 => 89060)
--- trunk/Source/WebKit2/Shared/qt/WebCoreArgumentCodersQt.cpp 2011-06-16 19:54:03 UTC (rev 89059)
+++ trunk/Source/WebKit2/Shared/qt/WebCoreArgumentCodersQt.cpp 2011-06-16 20:01:14 UTC (rev 89060)
@@ -29,14 +29,16 @@
#include <WebCore/NotImplemented.h>
#include <WebCore/ResourceResponse.h>
+using namespace WebCore;
+
namespace CoreIPC {
-void encodeResourceRequest(ArgumentEncoder* encoder, const WebCore::ResourceRequest& resourceRequest)
+void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
{
notImplemented();
}
-bool decodeResourceRequest(ArgumentDecoder* decoder, WebCore::ResourceRequest& resourceRequest)
+bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
{
notImplemented();
@@ -46,34 +48,49 @@
return true;
}
-void encodeResourceResponse(ArgumentEncoder* encoder, const WebCore::ResourceResponse& resourceResponse)
+
+void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
{
notImplemented();
}
-bool decodeResourceResponse(ArgumentDecoder* decoder, WebCore::ResourceResponse& resourceResponse)
+bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
{
notImplemented();
// FIXME: Ditto.
- resourceResponse = WebCore::ResourceResponse();
+ resourceResponse = ResourceResponse();
return true;
}
-void encodeResourceError(ArgumentEncoder* encoder, const WebCore::ResourceError& resourceError)
+
+void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
{
- encoder->encode(CoreIPC::In(resourceError.domain(), resourceError.errorCode(), resourceError.failingURL(), resourceError.localizedDescription()));
+ encoder->encode(resourceError.domain());
+ encoder->encode(resourceError.errorCode());
+ encoder->encode(resourceError.failingURL());
+ encoder->encode(resourceError.localizedDescription());
}
-bool decodeResourceError(ArgumentDecoder* decoder, WebCore::ResourceError& resourceError)
+bool ArgumentCoder<ResourceError>::decode(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(CoreIPC::Out(domain, errorCode, failingURL, localizedDescription)))
+ if (!decoder->decode(localizedDescription))
return false;
- resourceError = WebCore::ResourceError(domain, errorCode, failingURL, localizedDescription);
+
+ resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription);
return true;
}
Modified: trunk/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp (89059 => 89060)
--- trunk/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp 2011-06-16 19:54:03 UTC (rev 89059)
+++ trunk/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp 2011-06-16 20:01:14 UTC (rev 89060)
@@ -35,11 +35,14 @@
#include <WebKitSystemInterface/WebKitSystemInterface.h>
#endif
+using namespace WebCore;
+using namespace WebKit;
+
namespace CoreIPC {
// FIXME: These coders should really go in a WebCoreArgumentCodersCFNetwork file.
-void encodeResourceRequest(ArgumentEncoder* encoder, const WebCore::ResourceRequest& resourceRequest)
+void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
{
#if USE(CFNETWORK)
bool requestIsPresent = resourceRequest.cfURLRequest();
@@ -49,11 +52,11 @@
return;
RetainPtr<CFDictionaryRef> dictionary(AdoptCF, wkCFURLRequestCreateSerializableRepresentation(resourceRequest.cfURLRequest(), CoreIPC::tokenNullTypeRef()));
- encode(encoder, dictionary.get());
+ CoreIPC::encode(encoder, dictionary.get());
#endif
}
-bool decodeResourceRequest(ArgumentDecoder* decoder, WebCore::ResourceRequest& resourceRequest)
+bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
{
#if USE(CFNETWORK)
bool requestIsPresent;
@@ -61,31 +64,31 @@
return false;
if (!requestIsPresent) {
- resourceRequest = WebCore::ResourceRequest();
+ resourceRequest = ResourceRequest();
return true;
}
RetainPtr<CFDictionaryRef> dictionary;
- if (!decode(decoder, dictionary))
+ if (!CoreIPC::decode(decoder, dictionary))
return false;
- CFURLRequestRef cfURLRequest = wkCFURLRequestCreateFromSerializableRepresentation(dictionary.get(), CoreIPC::tokenNullTypeRef());
+ RetainPtr<CFURLRequestRef> cfURLRequest(AdoptCF, wkCFURLRequestCreateFromSerializableRepresentation(dictionary.get(), CoreIPC::tokenNullTypeRef()));
if (!cfURLRequest)
return false;
- CFMutableURLRequestRef mutableCFURLRequest = CFURLRequestCreateMutableCopy(0, cfURLRequest);
- CFRelease(cfURLRequest);
+ RetainPtr<CFMutableURLRequestRef> mutableCFURLRequest(AdoptCF, CFURLRequestCreateMutableCopy(0, cfURLRequest.get()));
#if USE(CFURLSTORAGESESSIONS)
- wkSetRequestStorageSession(WebCore::ResourceHandle::currentStorageSession(), mutableCFURLRequest);
+ wkSetRequestStorageSession(ResourceHandle::currentStorageSession(), mutableCFURLRequest.get());
#endif
- resourceRequest = WebCore::ResourceRequest(mutableCFURLRequest);
+ resourceRequest = ResourceRequest(mutableCFURLRequest.get());
return true;
#else
return false;
#endif
}
-void encodeResourceResponse(ArgumentEncoder* encoder, const WebCore::ResourceResponse& resourceResponse)
+
+void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
{
#if USE(CFNETWORK)
bool responseIsPresent = resourceResponse.cfURLResponse();
@@ -95,11 +98,11 @@
return;
RetainPtr<CFDictionaryRef> dictionary(AdoptCF, wkCFURLResponseCreateSerializableRepresentation(resourceResponse.cfURLResponse(), CoreIPC::tokenNullTypeRef()));
- encode(encoder, dictionary.get());
+ CoreIPC::encode(encoder, dictionary.get());
#endif
}
-bool decodeResourceResponse(ArgumentDecoder* decoder, WebCore::ResourceResponse& resourceResponse)
+bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
{
#if USE(CFNETWORK)
bool responseIsPresent;
@@ -107,57 +110,70 @@
return false;
if (!responseIsPresent) {
- resourceResponse = WebCore::ResourceResponse();
+ resourceResponse = ResourceResponse();
return true;
}
RetainPtr<CFDictionaryRef> dictionary;
- if (!decode(decoder, dictionary))
+ if (!CoreIPC::decode(decoder, dictionary))
return false;
- CFURLResponseRef cfURLResponse = wkCFURLResponseCreateFromSerializableRepresentation(dictionary.get(), CoreIPC::tokenNullTypeRef());
+ RetainPtr<CFURLResponseRef> cfURLResponse(AdoptCF, wkCFURLResponseCreateFromSerializableRepresentation(dictionary.get(), CoreIPC::tokenNullTypeRef()));
if (!cfURLResponse)
return false;
- resourceResponse = WebCore::ResourceResponse(cfURLResponse);
+ resourceResponse = ResourceResponse(cfURLResponse.get());
return true;
#else
return false;
#endif
}
-void encodeResourceError(ArgumentEncoder* encoder, const WebCore::ResourceError& resourceError)
+
+void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
{
- encoder->encode(CoreIPC::In(resourceError.domain(), resourceError.errorCode(), resourceError.failingURL(), resourceError.localizedDescription()));
+ encoder->encode(resourceError.domain());
+ encoder->encode(resourceError.errorCode());
+ encoder->encode(resourceError.failingURL());
+ encoder->encode(resourceError.localizedDescription());
#if USE(CFNETWORK)
- encoder->encode(WebKit::PlatformCertificateInfo(resourceError.certificate()));
+ encoder->encode(PlatformCertificateInfo(resourceError.certificate()));
#endif
}
-bool decodeResourceError(ArgumentDecoder* decoder, WebCore::ResourceError& resourceError)
+bool ArgumentCoder<ResourceError>::decode(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(CoreIPC::Out(domain, errorCode, failingURL, localizedDescription)))
+ if (!decoder->decode(localizedDescription))
return false;
#if USE(CFNETWORK)
- WebKit::PlatformCertificateInfo certificate;
+ PlatformCertificateInfo certificate;
if (!decoder->decode(certificate))
return false;
const Vector<PCCERT_CONTEXT> certificateChain = certificate.certificateChain();
if (!certificateChain.isEmpty()) {
ASSERT(certificateChain.size() == 1);
- resourceError = WebCore::ResourceError(domain, errorCode, failingURL, localizedDescription, WebCore::copyCertificateToData(certificateChain.first()).get());
+ resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription, copyCertificateToData(certificateChain.first()).get());
return true;
}
#endif
- resourceError = WebCore::ResourceError(domain, errorCode, failingURL, localizedDescription);
+ resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription);
return true;
}