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 1fc42794b8dc26b911c527e9d74d22d039a73e3c..e02e3d56ec6b5048d5842f0217ed8e96a01009fa 100644 |
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
@@ -683,8 +683,10 @@ void ResourceFetcher::initializeRevalidation( |
const AtomicString& eTag = |
resource->response().httpHeaderField(HTTPNames::ETag); |
if (!lastModified.isEmpty() || !eTag.isEmpty()) { |
- DCHECK_NE(context().getCachePolicy(), CachePolicyReload); |
- if (context().getCachePolicy() == CachePolicyRevalidate) { |
+ DCHECK_NE(WebCachePolicy::BypassingCache, |
+ revalidatingRequest.getCachePolicy()); |
+ if (revalidatingRequest.getCachePolicy() == |
+ WebCachePolicy::ValidatingCacheData) { |
revalidatingRequest.setHTTPHeaderField(HTTPNames::Cache_Control, |
"max-age=0"); |
} |
@@ -863,8 +865,9 @@ ResourceFetcher::determineRevalidationPolicy(Resource::Type type, |
// |
// TODO(japhet): Can we get rid of one of these settings? |
if (existingResource->isImage() && |
- !context().allowImage(m_imagesEnabled, existingResource->url())) |
+ !context().allowImage(m_imagesEnabled, existingResource->url())) { |
return Reload; |
+ } |
// Never use cache entries for downloadToFile / useStreamOnResponse requests. |
// The data will be delivered through other paths. |
@@ -876,8 +879,9 @@ ResourceFetcher::determineRevalidationPolicy(Resource::Type type, |
if (existingResource->response().wasFetchedViaServiceWorker() && |
existingResource->response().serviceWorkerResponseType() == |
WebServiceWorkerResponseTypeOpaque && |
- request.fetchRequestMode() != WebURLRequest::FetchRequestModeNoCORS) |
+ request.fetchRequestMode() != WebURLRequest::FetchRequestModeNoCORS) { |
return Reload; |
+ } |
// If resource was populated from a SubstituteData load or data: url, use it. |
if (isStaticData) |
@@ -898,8 +902,9 @@ ResourceFetcher::determineRevalidationPolicy(Resource::Type type, |
// In this case, the Resource likely has insufficient context to provide a |
// useful cache hit or revalidation. See http://crbug.com/643659 |
if (request.isConditional() || |
- existingResource->response().httpStatusCode() == 304) |
+ existingResource->response().httpStatusCode() == 304) { |
return Reload; |
+ } |
// Don't reload resources while pasting. |
if (m_allowStaleResources) |
@@ -912,9 +917,8 @@ ResourceFetcher::determineRevalidationPolicy(Resource::Type type, |
if (existingResource->isPreloaded()) |
return Use; |
- // CachePolicyHistoryBuffer uses the cache no matter what. |
- CachePolicy cachePolicy = context().getCachePolicy(); |
- if (cachePolicy == CachePolicyHistoryBuffer) |
+ // WebCachePolicy::ReturnCacheDataElseLoad uses the cache no matter what. |
+ if (request.getCachePolicy() == WebCachePolicy::ReturnCacheDataElseLoad) |
return Use; |
// Don't reuse resources with Cache-control: no-store. |
@@ -951,21 +955,19 @@ ResourceFetcher::determineRevalidationPolicy(Resource::Type type, |
return Use; |
} |
- if (request.getCachePolicy() == WebCachePolicy::BypassingCache) |
- return Reload; |
- |
- // CachePolicyReload always reloads |
- if (cachePolicy == CachePolicyReload) { |
+ // WebCachePolicy::BypassingCache always reloads |
+ if (request.getCachePolicy() == WebCachePolicy::BypassingCache) { |
RESOURCE_LOADING_DVLOG(1) << "ResourceFetcher::determineRevalidationPolicy " |
- "reloading due to CachePolicyReload."; |
+ "reloading due to " |
+ "WebCachePolicy::BypassingCache."; |
return Reload; |
} |
// We'll try to reload the resource if it failed last time. |
if (existingResource->errorOccurred()) { |
- RESOURCE_LOADING_DVLOG(1) << "ResourceFetcher::" |
- "determineRevalidationPolicye reloading due " |
- "to resource being in the error state"; |
+ RESOURCE_LOADING_DVLOG(1) << "ResourceFetcher::determineRevalidationPolicy " |
+ "reloading due to resource being in the error " |
+ "state"; |
return Reload; |
} |
@@ -973,8 +975,9 @@ ResourceFetcher::determineRevalidationPolicy(Resource::Type type, |
// validation. We restrict this only to images from memory cache which are the |
// same as the version in the current document. |
if (type == Resource::Image && |
- existingResource == cachedResource(request.url())) |
+ existingResource == cachedResource(request.url())) { |
return Use; |
+ } |
if (existingResource->mustReloadDueToVaryHeader(request)) |
return Reload; |
@@ -989,7 +992,7 @@ ResourceFetcher::determineRevalidationPolicy(Resource::Type type, |
// Check if the cache headers requires us to revalidate (cache expiration for |
// example). |
- if (cachePolicy == CachePolicyRevalidate || |
+ if (request.getCachePolicy() == WebCachePolicy::ValidatingCacheData || |
existingResource->mustRevalidateDueToCacheHeaders() || |
request.cacheControlContainsNoCache()) { |
// See if the resource has usable ETag or Last-modified headers. If the page |