| OLD | NEW |
| 1 /* | 1 /* |
| 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) | 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) |
| 3 Copyright (C) 2001 Dirk Mueller <mueller@kde.org> | 3 Copyright (C) 2001 Dirk Mueller <mueller@kde.org> |
| 4 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
rights reserved. | 4 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
rights reserved. |
| 5 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ | 5 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ |
| 6 | 6 |
| 7 This library is free software; you can redistribute it and/or | 7 This library is free software; you can redistribute it and/or |
| 8 modify it under the terms of the GNU Library General Public | 8 modify it under the terms of the GNU Library General Public |
| 9 License as published by the Free Software Foundation; either | 9 License as published by the Free Software Foundation; either |
| 10 version 2 of the License, or (at your option) any later version. | 10 version 2 of the License, or (at your option) any later version. |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 bool shouldDeferImageLoad(const KURL&) const; | 94 bool shouldDeferImageLoad(const KURL&) const; |
| 95 | 95 |
| 96 LocalFrame* frame() const; // Can be null | 96 LocalFrame* frame() const; // Can be null |
| 97 FetchContext& context() const; | 97 FetchContext& context() const; |
| 98 Document* document() const { return m_document; } // Can be null | 98 Document* document() const { return m_document; } // Can be null |
| 99 | 99 |
| 100 void garbageCollectDocumentResources(); | 100 void garbageCollectDocumentResources(); |
| 101 | 101 |
| 102 int requestCount() const { return m_requestCount; } | 102 int requestCount() const { return m_requestCount; } |
| 103 | 103 |
| 104 bool isPreloaded(const String& urlString) const; | |
| 105 void clearPreloads(); | |
| 106 void preload(Resource::Type, FetchRequest&, const String& charset); | |
| 107 void printPreloadStats(); | |
| 108 | |
| 109 void stopFetching(); | 104 void stopFetching(); |
| 110 bool isFetching() const; | 105 bool isFetching() const; |
| 111 | 106 |
| 112 // ResourceLoaderHost | 107 // ResourceLoaderHost |
| 113 virtual void incrementRequestCount(const Resource*) override; | 108 virtual void incrementRequestCount(const Resource*) override; |
| 114 virtual void decrementRequestCount(const Resource*) override; | 109 virtual void decrementRequestCount(const Resource*) override; |
| 115 virtual void didLoadResource(Resource*) override; | 110 virtual void didLoadResource(Resource*) override; |
| 116 virtual void didFinishLoading(const Resource*, double finishTime, int64_t en
codedDataLength) override; | 111 virtual void didFinishLoading(const Resource*, double finishTime, int64_t en
codedDataLength) override; |
| 117 virtual void didChangeLoadingPriority(const Resource*, ResourceLoadPriority,
int intraPriorityValue) override; | 112 virtual void didChangeLoadingPriority(const Resource*, ResourceLoadPriority,
int intraPriorityValue) override; |
| 118 virtual void didFailLoading(const Resource*, const ResourceError&) override; | 113 virtual void didFailLoading(const Resource*, const ResourceError&) override; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 139 static const ResourceLoaderOptions& defaultResourceOptions(); | 134 static const ResourceLoaderOptions& defaultResourceOptions(); |
| 140 private: | 135 private: |
| 141 | 136 |
| 142 explicit ResourceFetcher(Document*); | 137 explicit ResourceFetcher(Document*); |
| 143 | 138 |
| 144 bool shouldLoadNewResource(Resource::Type) const; | 139 bool shouldLoadNewResource(Resource::Type) const; |
| 145 | 140 |
| 146 ResourcePtr<Resource> requestResource(Resource::Type, FetchRequest&); | 141 ResourcePtr<Resource> requestResource(Resource::Type, FetchRequest&); |
| 147 ResourcePtr<Resource> createResourceForRevalidation(const FetchRequest&, Res
ource*); | 142 ResourcePtr<Resource> createResourceForRevalidation(const FetchRequest&, Res
ource*); |
| 148 ResourcePtr<Resource> createResourceForLoading(Resource::Type, FetchRequest&
, const String& charset); | 143 ResourcePtr<Resource> createResourceForLoading(Resource::Type, FetchRequest&
, const String& charset); |
| 149 void requestPreload(Resource::Type, FetchRequest&, const String& charset); | |
| 150 | 144 |
| 151 enum RevalidationPolicy { Use, Revalidate, Reload, Load }; | 145 enum RevalidationPolicy { Use, Revalidate, Reload, Load }; |
| 152 RevalidationPolicy determineRevalidationPolicy(Resource::Type, const FetchRe
quest&, Resource* existingResource) const; | 146 RevalidationPolicy determineRevalidationPolicy(Resource::Type, const FetchRe
quest&, Resource* existingResource) const; |
| 153 | 147 |
| 154 void determineRequestContext(ResourceRequest&, Resource::Type); | 148 void determineRequestContext(ResourceRequest&, Resource::Type); |
| 155 ResourceRequestCachePolicy resourceRequestCachePolicy(const ResourceRequest&
, Resource::Type); | 149 ResourceRequestCachePolicy resourceRequestCachePolicy(const ResourceRequest&
, Resource::Type); |
| 156 void addAdditionalRequestHeaders(ResourceRequest&, Resource::Type); | 150 void addAdditionalRequestHeaders(ResourceRequest&, Resource::Type); |
| 157 | 151 |
| 158 bool canRequest(Resource::Type, const KURL&, const ResourceLoaderOptions&, b
ool forPreload, FetchRequest::OriginRestriction) const; | 152 bool canRequest(Resource::Type, const KURL&, const ResourceLoaderOptions&, F
etchRequest::OriginRestriction) const; |
| 159 | 153 |
| 160 static bool resourceNeedsLoad(Resource*, const FetchRequest&, RevalidationPo
licy); | 154 static bool resourceNeedsLoad(Resource*, const FetchRequest&, RevalidationPo
licy); |
| 161 | 155 |
| 162 void notifyLoadedFromMemoryCache(Resource*); | 156 void notifyLoadedFromMemoryCache(Resource*); |
| 163 | 157 |
| 164 void garbageCollectDocumentResourcesTimerFired(Timer<ResourceFetcher>*); | 158 void garbageCollectDocumentResourcesTimerFired(Timer<ResourceFetcher>*); |
| 165 void scheduleDocumentResourcesGC(); | 159 void scheduleDocumentResourcesGC(); |
| 166 | 160 |
| 167 bool clientDefersImage(const KURL&) const; | 161 bool clientDefersImage(const KURL&) const; |
| 168 void reloadImagesIfNotDeferred(); | 162 void reloadImagesIfNotDeferred(); |
| 169 | 163 |
| 170 HashSet<String> m_validatedURLs; | 164 HashSet<String> m_validatedURLs; |
| 171 mutable DocumentResourceMap m_documentResources; | 165 mutable DocumentResourceMap m_documentResources; |
| 172 Document* m_document; | 166 Document* m_document; |
| 173 | 167 |
| 174 int m_requestCount; | 168 int m_requestCount; |
| 175 | 169 |
| 176 OwnPtr<ListHashSet<Resource*> > m_preloads; | |
| 177 | |
| 178 Timer<ResourceFetcher> m_garbageCollectDocumentResourcesTimer; | 170 Timer<ResourceFetcher> m_garbageCollectDocumentResourcesTimer; |
| 179 | 171 |
| 180 OwnPtr<ResourceLoaderSet> m_loaders; | 172 OwnPtr<ResourceLoaderSet> m_loaders; |
| 181 OwnPtr<ResourceLoaderSet> m_multipartLoaders; | 173 OwnPtr<ResourceLoaderSet> m_multipartLoaders; |
| 182 | 174 |
| 183 // Used in hit rate histograms. | 175 // Used in hit rate histograms. |
| 184 class DeadResourceStatsRecorder { | 176 class DeadResourceStatsRecorder { |
| 185 public: | 177 public: |
| 186 DeadResourceStatsRecorder(); | 178 DeadResourceStatsRecorder(); |
| 187 ~DeadResourceStatsRecorder(); | 179 ~DeadResourceStatsRecorder(); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 m_loader->m_allowStaleResources = m_previousState; | 212 m_loader->m_allowStaleResources = m_previousState; |
| 221 } | 213 } |
| 222 private: | 214 private: |
| 223 ResourceFetcher* m_loader; | 215 ResourceFetcher* m_loader; |
| 224 bool m_previousState; | 216 bool m_previousState; |
| 225 }; | 217 }; |
| 226 | 218 |
| 227 } // namespace blink | 219 } // namespace blink |
| 228 | 220 |
| 229 #endif | 221 #endif |
| OLD | NEW |