diff options
Diffstat (limited to 'WebCore/loader/DocumentLoader.h')
-rw-r--r-- | WebCore/loader/DocumentLoader.h | 311 |
1 files changed, 0 insertions, 311 deletions
diff --git a/WebCore/loader/DocumentLoader.h b/WebCore/loader/DocumentLoader.h deleted file mode 100644 index aef4f49..0000000 --- a/WebCore/loader/DocumentLoader.h +++ /dev/null @@ -1,311 +0,0 @@ -/* - * Copyright (C) 2006, 2007 Apple 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. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 OR ITS 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 DocumentLoader_h -#define DocumentLoader_h - -#include "IconDatabase.h" -#include "NavigationAction.h" -#include <wtf/RefCounted.h> -#include "PlatformString.h" -#include "ResourceError.h" -#include "ResourceRequest.h" -#include "ResourceResponse.h" -#include "SubstituteData.h" -#include <wtf/HashSet.h> -#include <wtf/RefPtr.h> -#include <wtf/Vector.h> - -namespace WebCore { - -#if ENABLE(OFFLINE_WEB_APPLICATIONS) - class ApplicationCache; - class ApplicationCacheGroup; - class ApplicationCacheResource; -#endif -#if ENABLE(ARCHIVE) // ANDROID extension: disabled to reduce code size - class Archive; - class ArchiveResource; - class ArchiveResourceCollection; -#endif - class CachedPage; - class Frame; - class FrameLoader; - class HistoryItem; - class KURL; - class MainResourceLoader; - class ResourceLoader; - class SchedulePair; - class SharedBuffer; - class SubstituteData; - class SubstituteResource; - - typedef HashSet<RefPtr<ResourceLoader> > ResourceLoaderSet; - typedef Vector<ResourceResponse> ResponseVector; - - class DocumentLoader : public RefCounted<DocumentLoader> { - public: - static PassRefPtr<DocumentLoader> create(const ResourceRequest& request, const SubstituteData& data) - { - return adoptRef(new DocumentLoader(request, data)); - } - virtual ~DocumentLoader(); - - void setFrame(Frame*); - Frame* frame() const { return m_frame; } - - virtual void attachToFrame(); - virtual void detachFromFrame(); - - FrameLoader* frameLoader() const; - MainResourceLoader* mainResourceLoader() const { return m_mainResourceLoader.get(); } - PassRefPtr<SharedBuffer> mainResourceData() const; - - const ResourceRequest& originalRequest() const; - const ResourceRequest& originalRequestCopy() const; - - const ResourceRequest& request() const; - ResourceRequest& request(); - void setRequest(const ResourceRequest&); - - const SubstituteData& substituteData() const { return m_substituteData; } - - const KURL& url() const; - const KURL& unreachableURL() const; - - const KURL& originalURL() const; - const KURL& requestURL() const; - const KURL& responseURL() const; - const String& responseMIMEType() const; - - void replaceRequestURLForAnchorScroll(const KURL&); - bool isStopping() const { return m_isStopping; } - void stopLoading(); - void setCommitted(bool committed) { m_committed = committed; } - bool isCommitted() const { return m_committed; } - bool isLoading() const { return m_loading; } - void setLoading(bool loading) { m_loading = loading; } - void updateLoading(); - void receivedData(const char*, int); - void setupForReplaceByMIMEType(const String& newMIMEType); - void finishedLoading(); - const ResourceResponse& response() const { return m_response; } - const ResourceError& mainDocumentError() const { return m_mainDocumentError; } - void mainReceivedError(const ResourceError&, bool isComplete); - void setResponse(const ResourceResponse& response) { m_response = response; } - void prepareForLoadStart(); - bool isClientRedirect() const { return m_isClientRedirect; } - void setIsClientRedirect(bool isClientRedirect) { m_isClientRedirect = isClientRedirect; } - bool isLoadingInAPISense() const; - void setPrimaryLoadComplete(bool); - void setTitle(const String&); - const String& overrideEncoding() const { return m_overrideEncoding; } - -#if PLATFORM(MAC) - void schedule(SchedulePair*); - void unschedule(SchedulePair*); -#endif - -#if ENABLE(ARCHIVE) // ANDROID extension: disabled to reduce code size - void addAllArchiveResources(Archive*); - void addArchiveResource(PassRefPtr<ArchiveResource>); - - // Return an ArchiveResource for the URL, either creating from live data or - // pulling from the ArchiveResourceCollection - PassRefPtr<ArchiveResource> subresource(const KURL&) const; - // Return the ArchiveResource for the URL only when loading an Archive - ArchiveResource* archiveResourceForURL(const KURL&) const; - - PassRefPtr<Archive> popArchiveForSubframe(const String& frameName); - void clearArchiveResources(); - void setParsedArchiveData(PassRefPtr<SharedBuffer>); - SharedBuffer* parsedArchiveData() const; - - PassRefPtr<ArchiveResource> mainResource() const; - void getSubresources(Vector<PassRefPtr<ArchiveResource> >&) const; - - bool scheduleArchiveLoad(ResourceLoader*, const ResourceRequest&, const KURL&); -#endif -#ifndef NDEBUG - bool isSubstituteLoadPending(ResourceLoader*) const; -#endif - void cancelPendingSubstituteLoad(ResourceLoader*); - - void addResponse(const ResourceResponse&); - const ResponseVector& responses() const { return m_responses; } - - const NavigationAction& triggeringAction() const { return m_triggeringAction; } - void setTriggeringAction(const NavigationAction& action) { m_triggeringAction = action; } - void setOverrideEncoding(const String& encoding) { m_overrideEncoding = encoding; } - void setLastCheckedRequest(const ResourceRequest& request) { m_lastCheckedRequest = request; } - const ResourceRequest& lastCheckedRequest() { return m_lastCheckedRequest; } - - void stopRecordingResponses(); - const String& title() const { return m_pageTitle; } - KURL urlForHistory() const; - - void loadFromCachedPage(PassRefPtr<CachedPage>); - void setLoadingFromCachedPage(bool loading) { m_loadingFromCachedPage = loading; } - bool isLoadingFromCachedPage() const { return m_loadingFromCachedPage; } - - void setDefersLoading(bool); - - bool startLoadingMainResource(unsigned long identifier); - void cancelMainResourceLoad(const ResourceError&); - - void iconLoadDecisionAvailable(); - - bool isLoadingMainResource() const; - bool isLoadingSubresources() const; - bool isLoadingPlugIns() const; - bool isLoadingMultipartContent() const; - - void stopLoadingPlugIns(); - void stopLoadingSubresources(); - - void addSubresourceLoader(ResourceLoader*); - void removeSubresourceLoader(ResourceLoader*); - void addPlugInStreamLoader(ResourceLoader*); - void removePlugInStreamLoader(ResourceLoader*); - - void subresourceLoaderFinishedLoadingOnePart(ResourceLoader*); - - void setDeferMainResourceDataLoad(bool defer) { m_deferMainResourceDataLoad = defer; } - bool deferMainResourceDataLoad() const { return m_deferMainResourceDataLoad; } - -#if ENABLE(OFFLINE_WEB_APPLICATIONS) - bool scheduleApplicationCacheLoad(ResourceLoader*, const ResourceRequest&, const KURL& originalURL); - bool shouldLoadResourceFromApplicationCache(const ResourceRequest&, ApplicationCacheResource*&); - - void setCandidateApplicationCacheGroup(ApplicationCacheGroup* group); - ApplicationCacheGroup* candidateApplicationCacheGroup() const { return m_candidateApplicationCacheGroup; } - - void setApplicationCache(PassRefPtr<ApplicationCache> applicationCache); - ApplicationCache* applicationCache() const { return m_applicationCache.get(); } - ApplicationCache* topLevelApplicationCache() const; - - ApplicationCache* mainResourceApplicationCache() const; -#endif - - protected: - DocumentLoader(const ResourceRequest&, const SubstituteData&); - - bool m_deferMainResourceDataLoad; - - private: - void setupForReplace(); - void commitIfReady(); - void clearErrors(); - void setMainDocumentError(const ResourceError&); - void commitLoad(const char*, int); - bool doesProgressiveLoad(const String& MIMEType) const; - - void deliverSubstituteResourcesAfterDelay(); - void substituteResourceDeliveryTimerFired(Timer<DocumentLoader>*); - - Frame* m_frame; - - RefPtr<MainResourceLoader> m_mainResourceLoader; - ResourceLoaderSet m_subresourceLoaders; - ResourceLoaderSet m_multipartSubresourceLoaders; - ResourceLoaderSet m_plugInStreamLoaders; - - RefPtr<SharedBuffer> m_mainResourceData; - - // A reference to actual request used to create the data source. - // This should only be used by the resourceLoadDelegate's - // identifierForInitialRequest:fromDatasource: method. It is - // not guaranteed to remain unchanged, as requests are mutable. - ResourceRequest m_originalRequest; - - SubstituteData m_substituteData; - - // A copy of the original request used to create the data source. - // We have to copy the request because requests are mutable. - ResourceRequest m_originalRequestCopy; - - // The 'working' request. It may be mutated - // several times from the original request to include additional - // headers, cookie information, canonicalization and redirects. - ResourceRequest m_request; - - ResourceResponse m_response; - - ResourceError m_mainDocumentError; - - bool m_committed; - bool m_isStopping; - bool m_loading; - bool m_gotFirstByte; - bool m_primaryLoadComplete; - bool m_isClientRedirect; - bool m_loadingFromCachedPage; - - String m_pageTitle; - - String m_overrideEncoding; - - // The action that triggered loading - we keep this around for the - // benefit of the various policy handlers. - NavigationAction m_triggeringAction; - - // The last request that we checked click policy for - kept around - // so we can avoid asking again needlessly. - ResourceRequest m_lastCheckedRequest; - - // We retain all the received responses so we can play back the - // WebResourceLoadDelegate messages if the item is loaded from the - // page cache. - ResponseVector m_responses; - bool m_stopRecordingResponses; - - typedef HashMap<RefPtr<ResourceLoader>, RefPtr<SubstituteResource> > SubstituteResourceMap; - SubstituteResourceMap m_pendingSubstituteResources; - Timer<DocumentLoader> m_substituteResourceDeliveryTimer; - -#if ENABLE(ARCHIVE) // ANDROID extension: disabled to reduce code size - OwnPtr<ArchiveResourceCollection> m_archiveResourceCollection; - RefPtr<SharedBuffer> m_parsedArchiveData; -#endif - -#if ENABLE(OFFLINE_WEB_APPLICATIONS) - // The application cache that the document loader is associated with (if any). - RefPtr<ApplicationCache> m_applicationCache; - - // Before an application cache has finished loading, this will be the candidate application - // group that the document loader is associated with. - ApplicationCacheGroup* m_candidateApplicationCacheGroup; - - // Once the main resource has finished loading, this is the application cache it was loaded from (if any). - RefPtr<ApplicationCache> m_mainResourceApplicationCache; -#endif - }; - -} - -#endif // DocumentLoader_h |