summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/WebCore/platform/network/ResourceHandleInternal.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/webkit/WebCore/platform/network/ResourceHandleInternal.h')
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ResourceHandleInternal.h213
1 files changed, 213 insertions, 0 deletions
diff --git a/src/3rdparty/webkit/WebCore/platform/network/ResourceHandleInternal.h b/src/3rdparty/webkit/WebCore/platform/network/ResourceHandleInternal.h
new file mode 100644
index 0000000..66aa4c1
--- /dev/null
+++ b/src/3rdparty/webkit/WebCore/platform/network/ResourceHandleInternal.h
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2004, 2006 Apple Computer, Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef ResourceHandleInternal_h
+#define ResourceHandleInternal_h
+
+#include "ResourceHandle.h"
+#include "ResourceRequest.h"
+#include "AuthenticationChallenge.h"
+#include "Timer.h"
+
+#if USE(CFNETWORK)
+#include <CFNetwork/CFURLConnectionPriv.h>
+#endif
+
+#if USE(WININET)
+#include <winsock2.h>
+#include <windows.h>
+#endif
+
+#if USE(CURL)
+#include <curl/curl.h>
+#include "FormDataStreamCurl.h"
+#endif
+
+#if USE(SOUP)
+#include <libsoup/soup.h>
+#endif
+
+#if PLATFORM(QT)
+class QWebFrame;
+class QWebNetworkJob;
+namespace WebCore {
+class QNetworkReplyHandler;
+}
+#endif
+
+#if PLATFORM(MAC)
+#ifdef __OBJC__
+@class NSURLAuthenticationChallenge;
+@class NSURLConnection;
+#else
+class NSURLAuthenticationChallenge;
+class NSURLConnection;
+#endif
+#endif
+
+// The allocations and releases in ResourceHandleInternal are
+// Cocoa-exception-free (either simple Foundation classes or
+// WebCoreResourceLoaderImp which avoids doing work in dealloc).
+
+namespace WebCore {
+ class ResourceHandleClient;
+
+ class ResourceHandleInternal : Noncopyable {
+ public:
+ ResourceHandleInternal(ResourceHandle* loader, const ResourceRequest& request, ResourceHandleClient* c, bool defersLoading, bool shouldContentSniff, bool mightDownloadFromHandle)
+ : m_client(c)
+ , m_request(request)
+ , status(0)
+ , m_defersLoading(defersLoading)
+ , m_shouldContentSniff(shouldContentSniff)
+ , m_mightDownloadFromHandle(mightDownloadFromHandle)
+#if USE(CFNETWORK)
+ , m_connection(0)
+#endif
+#if USE(WININET)
+ , m_fileHandle(INVALID_HANDLE_VALUE)
+ , m_fileLoadTimer(loader, &ResourceHandle::fileLoadTimer)
+ , m_resourceHandle(0)
+ , m_secondaryHandle(0)
+ , m_jobId(0)
+ , m_threadId(0)
+ , m_writing(false)
+ , m_formDataString(0)
+ , m_formDataLength(0)
+ , m_bytesRemainingToWrite(0)
+ , m_hasReceivedResponse(false)
+ , m_resend(false)
+#endif
+#if USE(CURL)
+ , m_handle(0)
+ , m_url(0)
+ , m_customHeaders(0)
+ , m_cancelled(false)
+ , m_formDataStream(loader)
+#endif
+#if USE(SOUP)
+ , m_msg(0)
+ , m_cancelled(false)
+ , m_gfile(0)
+ , m_input_stream(0)
+ , m_cancellable(0)
+ , m_buffer(0)
+ , m_bufsize(0)
+ , m_total(0)
+ , m_idleHandler(0)
+#endif
+#if PLATFORM(QT)
+ , m_job(0)
+ , m_frame(0)
+#endif
+#if PLATFORM(MAC)
+ , m_startWhenScheduled(false)
+ , m_currentMacChallenge(nil)
+#elif USE(CFNETWORK)
+ , m_currentCFChallenge(0)
+#endif
+ , m_failureTimer(loader, &ResourceHandle::fireFailure)
+ {
+ }
+
+ ~ResourceHandleInternal();
+
+ ResourceHandleClient* client() { return m_client; }
+ ResourceHandleClient* m_client;
+
+ ResourceRequest m_request;
+
+ int status;
+
+ bool m_defersLoading;
+ bool m_shouldContentSniff;
+ bool m_mightDownloadFromHandle;
+#if USE(CFNETWORK)
+ RetainPtr<CFURLConnectionRef> m_connection;
+#elif PLATFORM(MAC)
+ RetainPtr<NSURLConnection> m_connection;
+ RetainPtr<WebCoreResourceHandleAsDelegate> m_delegate;
+ RetainPtr<id> m_proxy;
+ bool m_startWhenScheduled;
+#endif
+#if USE(WININET)
+ HANDLE m_fileHandle;
+ Timer<ResourceHandle> m_fileLoadTimer;
+ HINTERNET m_resourceHandle;
+ HINTERNET m_secondaryHandle;
+ unsigned m_jobId;
+ DWORD m_threadId;
+ bool m_writing;
+ char* m_formDataString;
+ int m_formDataLength;
+ int m_bytesRemainingToWrite;
+ String m_postReferrer;
+ bool m_hasReceivedResponse;
+ bool m_resend;
+#endif
+#if USE(CURL)
+ CURL* m_handle;
+ char* m_url;
+ struct curl_slist* m_customHeaders;
+ ResourceResponse m_response;
+ bool m_cancelled;
+
+ FormDataStream m_formDataStream;
+ Vector<char> m_postBytes;
+#endif
+#if USE(SOUP)
+ SoupMessage* m_msg;
+ ResourceResponse m_response;
+ bool m_cancelled;
+ GFile* m_gfile;
+ GInputStream* m_input_stream;
+ GCancellable* m_cancellable;
+ char* m_buffer;
+ gsize m_bufsize, m_total;
+ guint m_idleHandler;
+#endif
+#if PLATFORM(QT)
+#if QT_VERSION < 0x040400
+ QWebNetworkJob* m_job;
+#else
+ QNetworkReplyHandler* m_job;
+#endif
+ QWebFrame* m_frame;
+#endif
+#if PLATFORM(MAC)
+ NSURLAuthenticationChallenge *m_currentMacChallenge;
+#endif
+#if USE(CFNETWORK)
+ CFURLAuthChallengeRef m_currentCFChallenge;
+#endif
+ AuthenticationChallenge m_currentWebChallenge;
+
+ ResourceHandle::FailureType m_failureType;
+ Timer<ResourceHandle> m_failureTimer;
+ };
+
+} // namespace WebCore
+
+#endif // ResourceHandleInternal_h