| Index: third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| diff --git a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| index e31018cc8d8f4776e0afcfba786ac6152a05a333..76f39f123ad988d54669e81eef06fcd2ebab40cb 100644
|
| --- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| +++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| @@ -850,6 +850,12 @@ void ResourceFetcher::reloadImagesIfNotDeferred()
|
| }
|
| }
|
|
|
| +void ResourceFetcher::clearContext()
|
| +{
|
| + clearPreloads(ResourceFetcher::ClearAllPreloads);
|
| + m_context.clear();
|
| +}
|
| +
|
| int ResourceFetcher::requestCount() const
|
| {
|
| return m_loaders.size();
|
| @@ -887,11 +893,15 @@ void ResourceFetcher::clearPreloads(ClearPreloadsPolicy policy)
|
| logPreloadStats();
|
|
|
| for (auto resource : *m_preloads) {
|
| - resource->decreasePreloadCount();
|
| - if (resource->getPreloadResult() == Resource::PreloadNotReferenced && (policy == ClearAllPreloads || !resource->isLinkPreload()))
|
| - memoryCache()->remove(resource.get());
|
| + if (policy == ClearAllPreloads || !resource->isLinkPreload()) {
|
| + resource->decreasePreloadCount();
|
| + if (resource->getPreloadResult() == Resource::PreloadNotReferenced)
|
| + memoryCache()->remove(resource.get());
|
| + m_preloads->remove(resource);
|
| + }
|
| }
|
| - m_preloads.clear();
|
| + if (!m_preloads->size())
|
| + m_preloads.clear();
|
| }
|
|
|
| ArchiveResource* ResourceFetcher::createArchive(Resource* resource)
|
|
|