Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(225)

Unified Diff: third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp

Issue 1398523004: Revalidate using the same Resource, attempt #3 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}
« no previous file with comments | « third_party/WebKit/Source/core/fetch/ResourceFetcher.h ('k') | third_party/WebKit/Source/core/fetch/ResourceLoader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698