bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest) { #if USE(CFNETWORK) bool requestIsPresent; if (!decoder->decode(requestIsPresent)) return false; if (!requestIsPresent) { resourceRequest = ResourceRequest(); return true; } RetainPtr<CFDictionaryRef> dictionary; if (!CoreIPC::decode(decoder, dictionary)) return false; RetainPtr<CFURLRequestRef> cfURLRequest(AdoptCF, wkCFURLRequestCreateFromSerializableRepresentation(dictionary.get(), CoreIPC::tokenNullTypeRef())); if (!cfURLRequest) return false; RetainPtr<CFMutableURLRequestRef> mutableCFURLRequest(AdoptCF, CFURLRequestCreateMutableCopy(0, cfURLRequest.get())); #if USE(CFURLSTORAGESESSIONS) wkSetRequestStorageSession(ResourceHandle::currentStorageSession(), mutableCFURLRequest.get()); #endif resourceRequest = ResourceRequest(mutableCFURLRequest.get()); return true; #else return false; #endif }
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; CFURLRequestRef cfURLRequest = wkCFURLRequestCreateFromSerializableRepresentation(dictionary.get(), CoreIPC::tokenNullTypeRef()); if (!cfURLRequest) return false; resourceRequest = WebCore::ResourceRequest(cfURLRequest); return true; #else return false; #endif }