class Document;
class DocumentLoader;
class LocalFrame;
-class FrameLoader;
class ImageLoader;
class KURL;
class ResourceTimingInfo;
// RefPtr<ResourceFetcher> for their lifetime (and will create one if they
// are initialized without a LocalFrame), so a Document can keep a ResourceFetcher
// alive past detach if scripts still reference the Document.
-class ResourceFetcher FINAL : public RefCountedWillBeGarbageCollectedFinalized<ResourceFetcher>, public ResourceLoaderHost {
+class ResourceFetcher final : public RefCountedWillBeGarbageCollectedFinalized<ResourceFetcher>, public ResourceLoaderHost {
WTF_MAKE_NONCOPYABLE(ResourceFetcher); WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ResourceFetcher);
friend class ImageLoader;
Resource* cachedResource(const KURL&) const;
- typedef HashMap<String, ResourcePtr<Resource> > DocumentResourceMap;
+ typedef HashMap<String, ResourcePtr<Resource>> DocumentResourceMap;
const DocumentResourceMap& allResources() const { return m_documentResources; }
bool autoLoadImages() const { return m_autoLoadImages; }
void setDocument(RawPtr<Document> document) { m_document = document; }
DocumentLoader* documentLoader() const { return m_documentLoader; }
- void clearDocumentLoader() { m_documentLoader = 0; }
+ void clearDocumentLoader() { m_documentLoader = nullptr; }
void garbageCollectDocumentResources();
bool isFetching() const;
// ResourceLoaderHost
- virtual void incrementRequestCount(const Resource*) OVERRIDE;
- virtual void decrementRequestCount(const Resource*) OVERRIDE;
- virtual void didLoadResource(Resource*) OVERRIDE;
- virtual void redirectReceived(Resource*, const ResourceResponse&) OVERRIDE;
- virtual void didFinishLoading(const Resource*, double finishTime, int64_t encodedDataLength) OVERRIDE;
- virtual void didChangeLoadingPriority(const Resource*, ResourceLoadPriority, int intraPriorityValue) OVERRIDE;
- virtual void didFailLoading(const Resource*, const ResourceError&) OVERRIDE;
- virtual void willSendRequest(unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse, const FetchInitiatorInfo&) OVERRIDE;
- virtual void didReceiveResponse(const Resource*, const ResourceResponse&) OVERRIDE;
- virtual void didReceiveData(const Resource*, const char* data, int dataLength, int encodedDataLength) OVERRIDE;
- virtual void didDownloadData(const Resource*, int dataLength, int encodedDataLength) OVERRIDE;
- virtual void subresourceLoaderFinishedLoadingOnePart(ResourceLoader*) OVERRIDE;
- virtual void didInitializeResourceLoader(ResourceLoader*) OVERRIDE;
- virtual void willTerminateResourceLoader(ResourceLoader*) OVERRIDE;
- virtual void willStartLoadingResource(Resource*, ResourceRequest&) OVERRIDE;
- virtual bool defersLoading() const OVERRIDE;
- virtual bool isLoadedBy(ResourceLoaderHost*) const OVERRIDE;
- virtual bool canAccessRedirect(Resource*, ResourceRequest&, const ResourceResponse&, ResourceLoaderOptions&) OVERRIDE;
- virtual bool canAccessResource(Resource*, SecurityOrigin*, const KURL&) const OVERRIDE;
+ virtual void incrementRequestCount(const Resource*) override;
+ virtual void decrementRequestCount(const Resource*) override;
+ virtual void didLoadResource() override;
+ virtual void redirectReceived(Resource*, const ResourceResponse&) override;
+ virtual void didFinishLoading(Resource*, double finishTime, int64_t encodedDataLength) override;
+ virtual void didChangeLoadingPriority(const Resource*, ResourceLoadPriority, int intraPriorityValue) override;
+ virtual void didFailLoading(const Resource*, const ResourceError&) override;
+ virtual void willSendRequest(unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse, const FetchInitiatorInfo&) override;
+ virtual void didReceiveResponse(const Resource*, const ResourceResponse&) override;
+ virtual void didReceiveData(const Resource*, const char* data, int dataLength, int encodedDataLength) override;
+ virtual void didDownloadData(const Resource*, int dataLength, int encodedDataLength) override;
+ virtual void subresourceLoaderFinishedLoadingOnePart(ResourceLoader*) override;
+ virtual void didInitializeResourceLoader(ResourceLoader*) override;
+ virtual void willTerminateResourceLoader(ResourceLoader*) override;
+ virtual void willStartLoadingResource(Resource*, ResourceRequest&) override;
+ virtual bool defersLoading() const override;
+ virtual bool isLoadedBy(ResourceLoaderHost*) const override;
+ virtual bool canAccessRedirect(Resource*, ResourceRequest&, const ResourceResponse&, ResourceLoaderOptions&) override;
+ virtual bool canAccessResource(Resource*, SecurityOrigin*, const KURL&) const override;
+ virtual bool isControlledByServiceWorker() const override;
#if !ENABLE(OILPAN)
- virtual void refResourceLoaderHost() OVERRIDE;
- virtual void derefResourceLoaderHost() OVERRIDE;
+ virtual void refResourceLoaderHost() override;
+ virtual void derefResourceLoaderHost() override;
#endif
+ int64_t serviceWorkerID() const;
+
enum ResourceLoadStartType {
ResourceLoadingFromNetwork,
ResourceLoadingFromCache
};
+ void maybeNotifyInsecureContent(const Resource*) const;
void requestLoadStarted(Resource*, const FetchRequest&, ResourceLoadStartType);
static const ResourceLoaderOptions& defaultResourceOptions();
-private:
+ String getCacheIdentifier() const;
+
+private:
explicit ResourceFetcher(DocumentLoader*);
bool shouldLoadNewResource(Resource::Type) const;
int m_requestCount;
- OwnPtr<ListHashSet<Resource*> > m_preloads;
+ OwnPtr<ListHashSet<Resource*>> m_preloads;
Timer<ResourceFetcher> m_garbageCollectDocumentResourcesTimer;
Timer<ResourceFetcher> m_resourceTimingReportTimer;
- typedef HashMap<Resource*, RefPtr<ResourceTimingInfo> > ResourceTimingInfoMap;
+ typedef HashMap<Resource*, RefPtr<ResourceTimingInfo>> ResourceTimingInfoMap;
ResourceTimingInfoMap m_resourceTimingInfoMap;
HashMap<RefPtr<ResourceTimingInfo>, bool> m_scheduledResourceTimingReports;