| Index: third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
|
| diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
|
| index 1d35e159ac55f11d369f885c2958d02f23da2541..359fff5ad0c77bd62f8f215e568f3b418883ec0a 100644
|
| --- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
|
| +++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
|
| @@ -513,6 +513,11 @@ ResourceFetcher::PrepareRequestResult ResourceFetcher::prepareRequest(
|
| return Continue;
|
| }
|
|
|
| +void ResourceFetcher::addToDocumentResources(Resource* resource) {
|
| + m_documentResources.set(
|
| + MemoryCache::removeFragmentIdentifierIfNeeded(resource->url()), resource);
|
| +}
|
| +
|
| Resource* ResourceFetcher::requestResource(
|
| FetchRequest& request,
|
| const ResourceFactory& factory,
|
| @@ -612,8 +617,7 @@ Resource* ResourceFetcher::requestResource(
|
| identifier, resource, request,
|
| policy == Use ? ResourceLoadingFromCache : ResourceLoadingFromNetwork,
|
| isStaticData);
|
| - m_documentResources.set(
|
| - MemoryCache::removeFragmentIdentifierIfNeeded(request.url()), resource);
|
| + addToDocumentResources(resource);
|
|
|
| // Returns with an existing resource if the resource does not need to start
|
| // loading immediately. If revalidation policy was determined as |Revalidate|,
|
| @@ -1332,8 +1336,12 @@ void ResourceFetcher::updateAllImageResourcePriorities() {
|
| }
|
|
|
| void ResourceFetcher::reloadLoFiImages() {
|
| - for (const auto& documentResource : m_documentResources) {
|
| - Resource* resource = documentResource.value.get();
|
| + // We copy entries of |m_documentResources| first because
|
| + // reloadIfLoFiOrPlaceholderImage() can modify |m_documentResources|.
|
| + HeapVector<Member<Resource>> documentResources;
|
| + copyValuesToVector(m_documentResources, documentResources);
|
| + for (const auto& documentResource : documentResources) {
|
| + Resource* resource = documentResource.get();
|
| if (resource)
|
| resource->reloadIfLoFiOrPlaceholderImage(this, Resource::kReloadAlways);
|
| }
|
|
|