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 09a67634939a20b81c887427d9051c85f8fe3d65..1026b569d525456791599c5a32388fa2b29515e2 100644 |
--- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp |
+++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp |
@@ -376,7 +376,7 @@ ResourcePtr<Resource> ResourceFetcher::requestResource(FetchRequest& request, co |
resource = createResourceForLoading(request, request.charset(), factory); |
break; |
case Revalidate: |
- resource = createResourceForRevalidation(request, resource.get(), factory); |
+ initializeRevalidation(request, resource.get()); |
break; |
case Use: |
memoryCache()->updateForAccess(resource.get()); |
@@ -475,13 +475,13 @@ void ResourceFetcher::initializeResourceRequest(ResourceRequest& request, Resour |
context().addAdditionalRequestHeaders(request, (type == Resource::MainResource) ? FetchMainResource : FetchSubresource); |
} |
-ResourcePtr<Resource> ResourceFetcher::createResourceForRevalidation(const FetchRequest& request, Resource* resource, const ResourceFactory& factory) |
+void ResourceFetcher::initializeRevalidation(const FetchRequest& request, Resource* resource) |
{ |
ASSERT(resource); |
ASSERT(memoryCache()->contains(resource)); |
ASSERT(resource->isLoaded()); |
ASSERT(resource->canUseCacheValidator()); |
- ASSERT(!resource->resourceToRevalidate()); |
+ ASSERT(!resource->isCacheValidator()); |
ASSERT(!context().isControlledByServiceWorker()); |
ResourceRequest revalidatingRequest(resource->resourceRequest()); |
@@ -505,15 +505,7 @@ ResourcePtr<Resource> ResourceFetcher::createResourceForRevalidation(const Fetch |
revalidatingRequest.setHTTPHeaderField("Resource-Freshness", AtomicString(String::format("max-age=%.0lf,stale-while-revalidate=%.0lf,age=%.0lf", resource->freshnessLifetime(), stalenessLifetime, resource->currentAge()))); |
} |
- ResourcePtr<Resource> newResource = factory.create(revalidatingRequest, resource->encoding()); |
- WTF_LOG(ResourceLoading, "Resource %p created to revalidate %p", newResource.get(), resource); |
- |
- newResource->setResourceToRevalidate(resource); |
- newResource->setCacheIdentifier(resource->cacheIdentifier()); |
- |
- memoryCache()->remove(resource); |
- memoryCache()->add(newResource.get()); |
- return newResource; |
+ resource->setRevalidatingRequest(revalidatingRequest); |
} |
ResourcePtr<Resource> ResourceFetcher::createResourceForLoading(FetchRequest& request, const String& charset, const ResourceFactory& factory) |
@@ -539,7 +531,7 @@ void ResourceFetcher::storeResourceTimingInitiatorInformation(Resource* resource |
OwnPtr<ResourceTimingInfo> info = ResourceTimingInfo::create(resource->options().initiatorInfo.name, monotonicallyIncreasingTime(), resource->type() == Resource::MainResource); |
if (resource->isCacheValidator()) { |
- const AtomicString& timingAllowOrigin = resource->resourceToRevalidate()->response().httpHeaderField("Timing-Allow-Origin"); |
+ const AtomicString& timingAllowOrigin = resource->response().httpHeaderField("Timing-Allow-Origin"); |
if (!timingAllowOrigin.isEmpty()) |
info->setOriginalTimingAllowOrigin(timingAllowOrigin); |
} |