Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1287)

Unified Diff: Source/core/loader/cache/CachedResourceLoader.h

Issue 19574002: Refactoring: Introduce ResouceLoaderHost interface for unloading ResourceLoader. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Another attempt Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/loader/cache/CachedResource.cpp ('k') | Source/core/loader/cache/CachedResourceLoader.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/loader/cache/CachedResourceLoader.h
diff --git a/Source/core/loader/cache/CachedResourceLoader.h b/Source/core/loader/cache/CachedResourceLoader.h
index 9fab79c180a430b48e0f84a15eebb6406afd8e40..b0b05bf06725359519155c540d4ab27c24c773d6 100644
--- a/Source/core/loader/cache/CachedResourceLoader.h
+++ b/Source/core/loader/cache/CachedResourceLoader.h
@@ -26,6 +26,7 @@
#ifndef CachedResourceLoader_h
#define CachedResourceLoader_h
+#include "core/loader/ResourceLoaderHost.h"
#include "core/loader/cache/CachePolicy.h"
#include "core/loader/cache/CachedResource.h"
#include "core/loader/cache/CachedResourceHandle.h"
@@ -52,6 +53,7 @@ class CachedXSLStyleSheet;
class Document;
class DocumentLoader;
class Frame;
+class FrameLoader;
class ImageLoader;
class KURL;
@@ -63,14 +65,17 @@ class KURL;
// RefPtr<CachedResourceLoader> for their lifetime (and will create one if they
// are initialized without a Frame), so a Document can keep a CachedResourceLoader
// alive past detach if scripts still reference the Document.
-class CachedResourceLoader : public RefCounted<CachedResourceLoader> {
+class CachedResourceLoader : public RefCounted<CachedResourceLoader>, public ResourceLoaderHost {
WTF_MAKE_NONCOPYABLE(CachedResourceLoader); WTF_MAKE_FAST_ALLOCATED;
friend class ImageLoader;
friend class ResourceCacheValidationSuppressor;
public:
static PassRefPtr<CachedResourceLoader> create(DocumentLoader* documentLoader) { return adoptRef(new CachedResourceLoader(documentLoader)); }
- ~CachedResourceLoader();
+ virtual ~CachedResourceLoader();
+
+ using RefCounted<CachedResourceLoader>::ref;
+ using RefCounted<CachedResourceLoader>::deref;
CachedResourceHandle<CachedImage> requestImage(CachedResourceRequest&);
CachedResourceHandle<CachedCSSStyleSheet> requestCSSStyleSheet(CachedResourceRequest&);
@@ -110,11 +115,8 @@ public:
DocumentLoader* documentLoader() const { return m_documentLoader; }
void clearDocumentLoader() { m_documentLoader = 0; }
- void loadDone(CachedResource*);
void garbageCollectDocumentResources();
- void incrementRequestCount(const CachedResource*);
- void decrementRequestCount(const CachedResource*);
int requestCount() const { return m_requestCount; }
bool isPreloaded(const String& urlString) const;
@@ -126,11 +128,34 @@ public:
bool canRequest(CachedResource::Type, const KURL&, const ResourceLoaderOptions&, bool forPreload = false);
bool canAccess(CachedResource*);
- static const ResourceLoaderOptions& defaultCachedResourceOptions();
+ // ResourceLoaderHost
+ virtual void incrementRequestCount(const CachedResource*) OVERRIDE;
+ virtual void decrementRequestCount(const CachedResource*) OVERRIDE;
+ virtual void didLoadResource(CachedResource*) OVERRIDE;
+ virtual void didFinishLoading(const CachedResource*, double finishTime, const ResourceLoaderOptions&) OVERRIDE;
+ virtual void didChangeLoadingPriority(const CachedResource*, ResourceLoadPriority) OVERRIDE;
+ virtual void didFailLoading(const CachedResource*, const ResourceError&, const ResourceLoaderOptions&) OVERRIDE;
+ virtual void willSendRequest(const CachedResource*, ResourceRequest&, const ResourceResponse& redirectResponse, const ResourceLoaderOptions&) OVERRIDE;
+ virtual void didReceiveResponse(const CachedResource*, const ResourceResponse&, const ResourceLoaderOptions&) OVERRIDE;
+ virtual void didReceiveData(const CachedResource*, const char* data, int dataLength, int encodedDataLength, const ResourceLoaderOptions&) OVERRIDE;
+ virtual void subresourceLoaderFinishedLoadingOnePart(ResourceLoader*) OVERRIDE;
+ virtual void didInitializeResourceLoader(ResourceLoader*) OVERRIDE;
+ virtual void willTerminateResourceLoader(ResourceLoader*) OVERRIDE;
+ virtual void willStartLoadingResource(ResourceRequest&) OVERRIDE;
+ virtual bool defersLoading() const OVERRIDE;
+ virtual bool isLoadedBy(ResourceLoaderHost*) const OVERRIDE;
+ virtual bool shouldRequest(CachedResource*, const ResourceRequest&, const ResourceLoaderOptions&) OVERRIDE;
+ virtual void refResourceLoaderHost() OVERRIDE;
+ virtual void derefResourceLoaderHost() OVERRIDE;
+ virtual Frame* inspectedFrame() const OVERRIDE;
+ static const ResourceLoaderOptions& defaultCachedResourceOptions();
private:
+
explicit CachedResourceLoader(DocumentLoader*);
+ FrameLoader* frameLoader();
+
CachedResourceHandle<CachedResource> requestResource(CachedResource::Type, CachedResourceRequest&);
CachedResourceHandle<CachedResource> revalidateResource(const CachedResourceRequest&, CachedResource*);
CachedResourceHandle<CachedResource> loadResource(CachedResource::Type, CachedResourceRequest&, const String& charset);
« no previous file with comments | « Source/core/loader/cache/CachedResource.cpp ('k') | Source/core/loader/cache/CachedResourceLoader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698