⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resourcehandleinternal.h

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 H
字号:
/* * 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>class Frame;#endif#if PLATFORM(QT)class QWebFrame;class QWebNetworkJob;namespace WebCore {class QNetworkReplyHandler;}#endif#if PLATFORM(MAC)#ifdef __OBJC__@class NSURLAuthenticationChallenge;@class NSURLConnection;#elseclass 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_reportedHeaders(false)            , m_gfile(0)            , m_inputStream(0)            , m_cancellable(0)            , m_buffer(0)            , m_bufferSize(0)            , m_total(0)            , m_idleHandler(0)            , m_frame(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;        bool m_reportedHeaders;        GFile* m_gfile;        GInputStream* m_inputStream;        GCancellable* m_cancellable;        char* m_buffer;        gsize m_bufferSize, m_total;        guint m_idleHandler;        Frame* m_frame;#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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -