void SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse(CFURLResponseRef cfResponse) { LOG(Network, "CFNet - SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse(handle=%p) (%s)", m_handle, m_handle->firstRequest().url().string().utf8().data()); if (!m_handle->client()) return; #if PLATFORM(COCOA) // Avoid MIME type sniffing if the response comes back as 304 Not Modified. CFHTTPMessageRef msg = wkGetCFURLResponseHTTPResponse(cfResponse); int statusCode = msg ? CFHTTPMessageGetResponseStatusCode(msg) : 0; if (statusCode != 304) adjustMIMETypeIfNecessary(cfResponse); #if !PLATFORM(IOS) if (_CFURLRequestCopyProtocolPropertyForKey(m_handle->firstRequest().cfURLRequest(DoNotUpdateHTTPBody), CFSTR("ForceHTMLMIMEType"))) wkSetCFURLResponseMIMEType(cfResponse, CFSTR("text/html")); #endif // !PLATFORM(IOS) #else if (!CFURLResponseGetMIMEType(cfResponse)) { // We should never be applying the default MIMEType if we told the networking layer to do content sniffing for handle. ASSERT(!m_handle->shouldContentSniff()); setDefaultMIMEType(cfResponse); } #endif #if USE(QUICK_LOOK) m_handle->setQuickLookHandle(QuickLookHandle::create(m_handle, this, cfResponse)); if (m_handle->quickLookHandle()) cfResponse = m_handle->quickLookHandle()->cfResponse(); #endif m_handle->client()->didReceiveResponse(m_handle, cfResponse); }
static void didReceiveResponse(CFURLConnectionRef conn, CFURLResponseRef cfResponse, const void* clientInfo) { #if LOG_DISABLED UNUSED_PARAM(conn); #endif ResourceHandle* handle = static_cast<ResourceHandle*>(const_cast<void*>(clientInfo)); LOG(Network, "CFNet - didReceiveResponse(conn=%p, handle=%p) (%s)", conn, handle, handle->firstRequest().url().string().utf8().data()); if (!handle->client()) return; #if PLATFORM(MAC) // Avoid MIME type sniffing if the response comes back as 304 Not Modified. CFHTTPMessageRef msg = wkGetCFURLResponseHTTPResponse(cfResponse); int statusCode = msg ? CFHTTPMessageGetResponseStatusCode(msg) : 0; if (statusCode != 304) adjustMIMETypeIfNecessary(cfResponse); if (_CFURLRequestCopyProtocolPropertyForKey(handle->firstRequest().cfURLRequest(), CFSTR("ForceHTMLMIMEType"))) wkSetCFURLResponseMIMEType(cfResponse, CFSTR("text/html")); #else if (!CFURLResponseGetMIMEType(cfResponse)) { // We should never be applying the default MIMEType if we told the networking layer to do content sniffing for handle. ASSERT(!handle->shouldContentSniff()); setDefaultMIMEType(cfResponse); } #endif handle->client()->didReceiveResponse(handle, cfResponse); }