bool cookiesEnabled(const Document* /*document*/) { CFHTTPCookieStorageAcceptPolicy policy = CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain; if (CFHTTPCookieStorageRef cookieStorage = currentCookieStorage()) policy = CFHTTPCookieStorageGetCookieAcceptPolicy(cookieStorage); return policy == CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain || policy == CFHTTPCookieStorageAcceptPolicyAlways; }
static CFURLRequestRef makeFinalRequest(const ResourceRequest& request, bool shouldContentSniff) { CFMutableURLRequestRef newRequest = CFURLRequestCreateMutableCopy(kCFAllocatorDefault, request.cfURLRequest()); if (!shouldContentSniff) wkSetCFURLRequestShouldContentSniff(newRequest, false); RetainPtr<CFMutableDictionaryRef> sslProps; if (allowsAnyHTTPSCertificateHosts().contains(request.url().host().lower())) { sslProps.adoptCF(CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)); CFDictionaryAddValue(sslProps.get(), kCFStreamSSLAllowsAnyRoot, kCFBooleanTrue); CFDictionaryAddValue(sslProps.get(), kCFStreamSSLAllowsExpiredRoots, kCFBooleanTrue); } HashMap<String, RetainPtr<CFDataRef> >::iterator clientCert = clientCerts().find(request.url().host().lower()); if (clientCert != clientCerts().end()) { if (!sslProps) sslProps.adoptCF(CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)); wkSetClientCertificateInSSLProperties(sslProps.get(), (clientCert->second).get()); } if (sslProps) CFURLRequestSetSSLProperties(newRequest, sslProps.get()); if (CFHTTPCookieStorageRef cookieStorage = currentCookieStorage()) { CFURLRequestSetHTTPCookieStorage(newRequest, cookieStorage); CFURLRequestSetHTTPCookieStorageAcceptPolicy(newRequest, CFHTTPCookieStorageGetCookieAcceptPolicy(cookieStorage)); } return newRequest; }
bool cookiesEnabled() { CFHTTPCookieStorageAcceptPolicy policy = CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain; if (CFHTTPCookieStorageRef defaultCookieStorage = wkGetDefaultHTTPCookieStorage()) policy = CFHTTPCookieStorageGetCookieAcceptPolicy(defaultCookieStorage); return policy == CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain || policy == CFHTTPCookieStorageAcceptPolicyAlways; }
static bool shouldRelaxThirdPartyCookiePolicy(NetworkingContext* context, const KURL& url) { // If a URL already has cookies, then we'll relax the 3rd party cookie policy and accept new cookies. RetainPtr<CFHTTPCookieStorageRef> cfCookieStorage = currentCFHTTPCookieStorage(context); CFHTTPCookieStorageAcceptPolicy cookieAcceptPolicy = CFHTTPCookieStorageGetCookieAcceptPolicy(cfCookieStorage.get()); if (cookieAcceptPolicy != CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain) return false; RetainPtr<CFURLRef> cfURL = adoptCF(url.createCFURL()); RetainPtr<CFArrayRef> cookies = adoptCF(CFHTTPCookieStorageCopyCookiesForURL(cfCookieStorage.get(), cfURL.get(), false)); return CFArrayGetCount(cookies.get()); }
static CFURLRequestRef makeFinalRequest(const ResourceRequest& request, bool shouldContentSniff) { CFMutableURLRequestRef newRequest = CFURLRequestCreateMutableCopy(kCFAllocatorDefault, request.cfURLRequest()); #if USE(CFURLSTORAGESESSIONS) wkSetRequestStorageSession(ResourceHandle::currentStorageSession(), newRequest); #endif if (!shouldContentSniff) wkSetCFURLRequestShouldContentSniff(newRequest, false); RetainPtr<CFMutableDictionaryRef> sslProps; sslProps.adoptCF(ResourceHandle::createSSLPropertiesFromNSURLRequest(request)); if (sslProps) CFURLRequestSetSSLProperties(newRequest, sslProps.get()); if (CFHTTPCookieStorageRef cookieStorage = currentCookieStorage()) { CFURLRequestSetHTTPCookieStorage(newRequest, cookieStorage); CFURLRequestSetHTTPCookieStorageAcceptPolicy(newRequest, CFHTTPCookieStorageGetCookieAcceptPolicy(cookieStorage)); } return newRequest; }
bool cookiesEnabled(const NetworkStorageSession& session, const KURL& /*firstParty*/, const KURL& /*url*/) { CFHTTPCookieStorageAcceptPolicy policy = CFHTTPCookieStorageGetCookieAcceptPolicy(session.cookieStorage().get()); return policy == CFHTTPCookieStorageAcceptPolicyOnlyFromMainDocumentDomain || policy == CFHTTPCookieStorageAcceptPolicyAlways; }