summaryrefslogtreecommitdiffstats
path: root/WebCore/loader/appcache/ApplicationCacheGroup.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/loader/appcache/ApplicationCacheGroup.h')
-rw-r--r--WebCore/loader/appcache/ApplicationCacheGroup.h152
1 files changed, 0 insertions, 152 deletions
diff --git a/WebCore/loader/appcache/ApplicationCacheGroup.h b/WebCore/loader/appcache/ApplicationCacheGroup.h
deleted file mode 100644
index d5b7563..0000000
--- a/WebCore/loader/appcache/ApplicationCacheGroup.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2008 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.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE 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 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 ApplicationCacheGroup_h
-#define ApplicationCacheGroup_h
-
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
-
-#include <wtf/Noncopyable.h>
-#include <wtf/HashMap.h>
-#include <wtf/HashSet.h>
-
-#include "KURL.h"
-#include "PlatformString.h"
-#include "ResourceHandle.h"
-#include "ResourceHandleClient.h"
-#include "SharedBuffer.h"
-
-namespace WebCore {
-
-class ApplicationCache;
-class ApplicationCacheResource;
-class DOMApplicationCache;
-class Document;
-class DocumentLoader;
-class Frame;
-
-class ApplicationCacheGroup : Noncopyable, ResourceHandleClient {
-public:
- ApplicationCacheGroup(const KURL& manifestURL, bool isCopy = false);
- ~ApplicationCacheGroup();
-
- enum Status { Idle, Checking, Downloading };
-
- static ApplicationCache* cacheForMainRequest(const ResourceRequest&, DocumentLoader*);
-
- static void selectCache(Frame*, const KURL& manifestURL);
- static void selectCacheWithoutManifestURL(Frame*);
-
- const KURL& manifestURL() const { return m_manifestURL; }
- Status status() const { return m_status; }
-
- void setStorageID(unsigned storageID) { m_storageID = storageID; }
- unsigned storageID() const { return m_storageID; }
- void clearStorageID();
-
- void update(Frame*);
- void cacheDestroyed(ApplicationCache*);
-
- ApplicationCache* newestCache() const { return m_newestCache.get(); }
- ApplicationCache* savedNewestCachePointer() const { return m_savedNewestCachePointer; }
-
- void finishedLoadingMainResource(DocumentLoader*);
- void failedLoadingMainResource(DocumentLoader*);
- void documentLoaderDestroyed(DocumentLoader*);
-
- void setNewestCache(PassRefPtr<ApplicationCache> newestCache);
-
- bool isCopy() const { return m_isCopy; }
-private:
- typedef void (DOMApplicationCache::*ListenerFunction)();
- void callListenersOnAssociatedDocuments(ListenerFunction);
- void callListeners(ListenerFunction, const Vector<RefPtr<DocumentLoader> >& loaders);
-
- virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&);
- virtual void didReceiveData(ResourceHandle*, const char*, int, int lengthReceived);
- virtual void didFinishLoading(ResourceHandle*);
- virtual void didFail(ResourceHandle*, const ResourceError&);
-
- void didReceiveManifestResponse(const ResourceResponse&);
- void didReceiveManifestData(const char*, int);
- void didFinishLoadingManifest();
- void didFailToLoadManifest();
-
- void startLoadingEntry();
- void checkIfLoadIsComplete();
- void cacheUpdateFailed();
-
- void addEntry(const String&, unsigned type);
-
- void associateDocumentLoaderWithCache(DocumentLoader*, ApplicationCache*);
-
- void stopLoading();
-
- KURL m_manifestURL;
- Status m_status;
-
- // This is the newest cache in the group.
- RefPtr<ApplicationCache> m_newestCache;
-
- // During tear-down we save the pointer to the newest cache to prevent reference cycles.
- ApplicationCache* m_savedNewestCachePointer;
-
- // The caches in this cache group.
- HashSet<ApplicationCache*> m_caches;
-
- // The cache being updated (if any).
- RefPtr<ApplicationCache> m_cacheBeingUpdated;
-
- // When a cache group does not yet have a complete cache, this contains the document loaders
- // that should be associated with the cache once it has been downloaded.
- HashSet<DocumentLoader*> m_cacheCandidates;
-
- // These are all the document loaders that are associated with a cache in this group.
- HashSet<DocumentLoader*> m_associatedDocumentLoaders;
-
- // The URLs and types of pending cache entries.
- typedef HashMap<String, unsigned> EntryMap;
- EntryMap m_pendingEntries;
-
- // Frame used for fetching resources when updating
- Frame* m_frame;
-
- unsigned m_storageID;
-
- // Whether this cache group is a copy that's only used for transferring the cache to another file.
- bool m_isCopy;
-
- RefPtr<ResourceHandle> m_currentHandle;
- RefPtr<ApplicationCacheResource> m_currentResource;
-
- RefPtr<ApplicationCacheResource> m_manifestResource;
- RefPtr<ResourceHandle> m_manifestHandle;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(OFFLINE_WEB_APPLICATIONS)
-
-#endif // ApplicationCacheGroup_h