bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse) { #if USE(CFNETWORK) bool responseIsPresent; if (!decoder->decode(responseIsPresent)) return false; if (!responseIsPresent) { resourceResponse = ResourceResponse(); return true; } RetainPtr<CFDictionaryRef> dictionary; if (!CoreIPC::decode(decoder, dictionary)) return false; RetainPtr<CFURLResponseRef> cfURLResponse(AdoptCF, wkCFURLResponseCreateFromSerializableRepresentation(dictionary.get(), CoreIPC::tokenNullTypeRef())); if (!cfURLResponse) return false; resourceResponse = ResourceResponse(cfURLResponse.get()); return true; #else return false; #endif }
String ResourceResponse::platformSuggestedFilename() const { if (!cfURLResponse()) return String(); RetainPtr<CFStringRef> suggestedFilename = adoptCF(CFURLResponseCopySuggestedFilename(cfURLResponse())); return suggestedFilename.get(); }