CFURLRequestRef cfURLRequest(const ResourceRequest& request) { CFURLRef url = request.url().createCFURL(); CFURLRef mainDocumentURL = request.mainDocumentURL().createCFURL(); CFMutableURLRequestRef cfRequest = CFURLRequestCreateMutable(0, url, (CFURLRequestCachePolicy)request.cachePolicy(), request.timeoutInterval(), mainDocumentURL); CFRelease(url); CFRelease(mainDocumentURL); CFStringRef requestMethod = request.httpMethod().createCFString(); CFURLRequestSetHTTPRequestMethod(cfRequest, requestMethod); CFRelease(requestMethod); addHeadersFromHashMap(cfRequest, request.httpHeaderFields()); setHTTPBody(cfRequest, request.httpBody()); CFURLRequestSetShouldHandleHTTPCookies(cfRequest, request.allowHTTPCookies()); return cfRequest; }