Index: webkit/browser/appcache/appcache_update_job.cc |
diff --git a/webkit/browser/appcache/appcache_update_job.cc b/webkit/browser/appcache/appcache_update_job.cc |
index 3d4a4b20f469c3e47dd8515f35fb80c49d3fda6a..e4796536511cf526d060b2f453e673bf70b4342c 100644 |
--- a/webkit/browser/appcache/appcache_update_job.cc |
+++ b/webkit/browser/appcache/appcache_update_job.cc |
@@ -1235,10 +1235,12 @@ void AppCacheUpdateJob::OnResponseInfoLoaded( |
const std::string name = "vary"; |
std::string value; |
void* iter = NULL; |
- if (!http_info->headers.get() || |
- http_info->headers->RequiresValidation(http_info->request_time, |
- http_info->response_time, |
- base::Time::Now()) || |
+ base::Time freshness_expiry = base::Time(); |
+ if (http_info->headers) { |
+ freshness_expiry = http_info->headers->GetFreshnessExpiry( |
+ http_info->request_time, http_info->response_time); |
+ } |
+ if (freshness_expiry <= base::Time::Now() || |
http_info->headers->EnumerateHeader(&iter, name, &value)) { |
LoadFromNewestCacheFailed(url, response_info); |
} else { |