summaryrefslogtreecommitdiffstats
path: root/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp')
-rw-r--r--Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp b/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp
index 684378a..9513e90 100644
--- a/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp
+++ b/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp
@@ -38,6 +38,12 @@ namespace CoreIPC {
void encodeResourceRequest(ArgumentEncoder* encoder, const WebCore::ResourceRequest& resourceRequest)
{
#if USE(CFNETWORK)
+ bool requestIsPresent = resourceRequest.cfURLRequest();
+ encoder->encode(requestIsPresent);
+
+ if (!requestIsPresent)
+ return;
+
RetainPtr<CFDictionaryRef> dictionary(AdoptCF, wkCFURLRequestCreateSerializableRepresentation(resourceRequest.cfURLRequest(), CoreIPC::tokenNullTypeRef()));
encode(encoder, dictionary.get());
#endif
@@ -46,6 +52,15 @@ void encodeResourceRequest(ArgumentEncoder* encoder, const WebCore::ResourceRequ
bool decodeResourceRequest(ArgumentDecoder* decoder, WebCore::ResourceRequest& resourceRequest)
{
#if USE(CFNETWORK)
+ bool requestIsPresent;
+ if (!decoder->decode(requestIsPresent))
+ return false;
+
+ if (!requestIsPresent) {
+ resourceRequest = WebCore::ResourceRequest();
+ return true;
+ }
+
RetainPtr<CFDictionaryRef> dictionary;
if (!decode(decoder, dictionary))
return false;
@@ -79,7 +94,8 @@ bool decodeResourceResponse(ArgumentDecoder* decoder, WebCore::ResourceResponse&
{
#if USE(CFNETWORK)
bool responseIsPresent;
- decoder->decode(responseIsPresent);
+ if (!decoder->decode(responseIsPresent))
+ return false;
if (!responseIsPresent) {
resourceResponse = WebCore::ResourceResponse();