return request;
}
-void didReceiveChallenge(CFURLConnectionRef conn, CFURLAuthChallengeRef challenge, const void* clientInfo)
-{
- ResourceLoader* job = (ResourceLoader*)clientInfo;
-
- // Do nothing right now
-}
-
-void didCancelChallenge(CFURLConnectionRef conn, CFURLAuthChallengeRef challenge, const void* clientInfo)
-{
- ResourceLoader* job = (ResourceLoader*)clientInfo;
-
- // Do nothing right now
-}
-
void didReceiveResponse(CFURLConnectionRef conn, CFURLResponseRef response, const void* clientInfo)
{
ResourceLoader* job = (ResourceLoader*)clientInfo;
job->client()->receivedAllData(job, 0);
job->client()->receivedAllData(job);
+ job->kill();
}
void didFail(CFURLConnectionRef conn, CFStreamError error, const void* clientInfo)
job->setError(1);
job->client()->receivedAllData(job, 0);
job->client()->receivedAllData(job);
+ job->kill();
}
CFCachedURLResponseRef willCacheResponse(CFURLConnectionRef conn, CFCachedURLResponseRef cachedResponse, const void* clientInfo)
return cachedResponse;
}
+void didReceiveChallenge(CFURLConnectionRef conn, CFURLAuthChallengeRef challenge, const void* clientInfo)
+{
+ ResourceLoader* job = (ResourceLoader*)clientInfo;
+
+ // Do nothing right now
+}
+
const unsigned BUF_LENGTH = 500;
const char* dummyBytes = "GET / HTTP/1.1\r\n";
void addHeadersFromString(CFHTTPMessageRef request, CFStringRef headerString)
{
}
-#if defined(LOADER_THREAD)
static CFRunLoopRef loaderRL = 0;
void runLoaderThread(void *unused)
{
CFRunLoopRun();
}
-#endif
bool ResourceLoader::start(DocLoader* docLoader)
{
CFHTTPMessageRef httpRequest = CFHTTPMessageCreateRequest(0, requestMethod, url, kCFHTTPVersion1_1);
CFRelease(requestMethod);
+ ref();
+ d->m_loading = true;
str = queryMetaData("customHTTPHeader");
CFStringRef headerString = CFStringCreateWithCharacters(0, (const UniChar *)str.characters(), str.length());
if (headerString) {
}
CFURLRequestRef request = CFURLRequestCreateHTTPRequest(0, httpRequest, bodyStream, kCFURLRequestCachePolicyProtocolDefault, 30.0, 0);
- CFURLConnectionClient client = {0, this, 0, 0, 0, willSendRequest, didReceiveChallenge, didCancelChallenge, didReceiveResponse, didReceiveData, didFinishLoading, didFail};
+ CFURLConnectionClient client = {0, this, 0, 0, 0, willSendRequest, didReceiveResponse, didReceiveData, NULL, didFinishLoading, didFail, willCacheResponse, didReceiveChallenge};
d->m_connection = CFURLConnectionCreate(0, request, &client);
CFRelease(request);
- CFURLConnectionSetMaximumBufferSize(d->m_connection, 32*1024); // Buffer up to 32K at a time
-#if defined(LOADER_THREAD)
if (!loaderRL) {
_beginthread(runLoaderThread, 0, 0);
while (loaderRL == 0) {
Sleep(10);
}
}
-#endif
- CFURLConnectionScheduleWithRunLoop(d->m_connection, CFRunLoopGetCurrent(), kCFRunLoopCommonModes);
-#if defined(LOADER_THREAD)
+ CFURLConnectionScheduleWithCurrentMessageQueue(d->m_connection);
CFURLConnectionScheduleDownloadWithRunLoop(d->m_connection, loaderRL, kCFRunLoopDefaultMode);
-#endif
CFURLConnectionStart(d->m_connection);
#if defined(LOG_RESOURCELOADER_EVENTS)
CFRelease(d->m_connection);
d->m_connection = 0;
}
+
+ // Copied directly from ResourceLoaderWin.cpp
+ setError(1);
+ d->client->receivedAllData(this, 0);
+ d->client->receivedAllData(this);
}
} // namespace WebCore