| 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);
 | 
| 
 |