diff options
author | initial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-27 00:20:51 +0000 |
---|---|---|
committer | initial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-27 00:20:51 +0000 |
commit | f5b16fed647e941aa66933178da85db2860d639b (patch) | |
tree | f00e9856c04aad3b558a140955e7674add33f051 /webkit/pending/DocLoader.h | |
parent | 920c091ac3ee15079194c82ae8a7a18215f3f23c (diff) | |
download | chromium_src-f5b16fed647e941aa66933178da85db2860d639b.zip chromium_src-f5b16fed647e941aa66933178da85db2860d639b.tar.gz chromium_src-f5b16fed647e941aa66933178da85db2860d639b.tar.bz2 |
Add webkit to the repository.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/pending/DocLoader.h')
-rw-r--r-- | webkit/pending/DocLoader.h | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/webkit/pending/DocLoader.h b/webkit/pending/DocLoader.h new file mode 100644 index 0000000..f6ff336 --- /dev/null +++ b/webkit/pending/DocLoader.h @@ -0,0 +1,117 @@ +/* + Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) + Copyright (C) 2001 Dirk Mueller <mueller@kde.org> + Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + + This class provides all functionality needed for loading images, style sheets and html + pages from the web. It has a memory cache for these objects. +*/ + +#ifndef DocLoader_h +#define DocLoader_h + +#include "CachedResource.h" +#include "CachePolicy.h" +#include "StringHash.h" +#include <wtf/HashMap.h> +#include <wtf/HashSet.h> + +namespace WebCore { + +class CachedCSSStyleSheet; +class CachedFont; +class CachedImage; +class CachedScript; +class CachedXSLStyleSheet; +class Document; +class Frame; +class HTMLImageLoader; +class KURL; + +// The DocLoader manages the loading of scripts/images/stylesheets for a single document. +class DocLoader +{ +friend class Cache; +friend class HTMLImageLoader; + +public: + DocLoader(Document*); + ~DocLoader(); + + CachedImage* requestImage(const String& url); + CachedCSSStyleSheet* requestCSSStyleSheet(const String& url, const String& charset, bool isUserStyleSheet = false); + CachedCSSStyleSheet* requestUserCSSStyleSheet(const String& url, const String& charset); + CachedScript* requestScript(const String& url, const String& charset); + CachedFont* requestFont(const String& url); + +#if ENABLE(XSLT) + CachedXSLStyleSheet* requestXSLStyleSheet(const String& url); +#endif +#if ENABLE(XBL) + CachedXBLDocument* requestXBLDocument(const String &url); +#endif + + CachedResource* cachedResource(const String& url) const { return m_docResources.get(url); } + const HashMap<String, CachedResource*>& allCachedResources() const { return m_docResources; } + + bool autoLoadImages() const { return m_autoLoadImages; } + void setAutoLoadImages(bool); + + CachePolicy cachePolicy() const { return m_cachePolicy; } + void setCachePolicy(CachePolicy); + + Frame* frame() const; // Can be NULL + Document* doc() const { return m_doc; } + + void removeCachedResource(CachedResource*) const; + + void setLoadInProgress(bool); + bool loadInProgress() const { return m_loadInProgress; } + + void setAllowStaleResources(bool allowStaleResources) { m_allowStaleResources = allowStaleResources; } + +#if USE(LOW_BANDWIDTH_DISPLAY) + void replaceDocument(Document* doc) { m_doc = doc; } +#endif + + void incrementRequestCount(); + void decrementRequestCount(); + int requestCount(); +private: + CachedResource* requestResource(CachedResource::Type, const String& url, const String* charset = 0, bool skipCanLoadCheck = false, bool sendResourceLoadCallbacks = true); + + void checkForReload(const KURL&); + void checkCacheObjectStatus(CachedResource*); + + Cache* m_cache; + HashSet<String> m_reloadedURLs; + mutable HashMap<String, CachedResource*> m_docResources; + CachePolicy m_cachePolicy; + Document* m_doc; + + int m_requestCount; + + //29 bits left + bool m_autoLoadImages : 1; + bool m_loadInProgress : 1; + bool m_allowStaleResources : 1; +}; + +} + +#endif |