Chromium Code Reviews| 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 aab6e32f909db869ae8dbc90db1b6bae95c83f27..ac0881ea45584084e232cd4c99ed10c8374b9e5a 100644 |
| --- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp |
| +++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp |
| @@ -1108,6 +1108,16 @@ void ResourceFetcher::didFinishLoading(Resource* resource, |
| void ResourceFetcher::didFailLoading(Resource* resource, |
| const ResourceError& error) { |
| + if (resource->resourceRequest().isCacheAwareLoadingActivated()) { |
| + // Assume error.errorCode() == net::ERR_CACHE_MISS, resend request with |
|
hiroshige
2016/10/03 08:08:02
- We have to drop the isCacheAwareLoadingActivated
yhirano
2016/10/04 05:27:10
But we don't need the former if we have the latter
Shao-Chuan Lee
2016/10/04 09:08:04
Now we check isCancellation() and isAccessCheck()
Shao-Chuan Lee
2016/10/04 09:46:25
Now dropping flags in Resource::finish() instead o
Shao-Chuan Lee
2016/10/07 08:10:06
Now dropping flags in didFinishLoading().
|
| + // existing ResourceLoader. |
| + resource->willReloadAfterDiskCacheMiss(); |
| + resource->loader()->start(resource->resourceRequest(), |
| + context().loadingTaskRunner(), |
| + context().defersLoading()); |
| + return; |
| + } |
| + |
| TRACE_EVENT_ASYNC_END0("blink.net", "Resource", resource->identifier()); |
| removeResourceLoader(resource->loader()); |
| m_resourceTimingInfoMap.take(const_cast<Resource*>(resource)); |
| @@ -1220,6 +1230,9 @@ bool ResourceFetcher::startLoad(Resource* resource) { |
| if (sourceOrigin && sourceOrigin->hasSuborigin()) |
| request.setSkipServiceWorker(WebURLRequest::SkipServiceWorker::All); |
| + // TODO(632580): Workaround to persist cache-aware state, remove after fixed. |
| + resource->setResourceRequest(request); |
| + |
| ResourceLoader* loader = ResourceLoader::create(this, resource); |
| if (resource->shouldBlockLoadEvent()) |
| m_loaders.add(loader); |
| @@ -1332,6 +1345,7 @@ void ResourceFetcher::willSendRequest(unsigned long identifier, |
| const ResourceLoaderOptions& options) { |
| context().dispatchWillSendRequest(identifier, newRequest, redirectResponse, |
| options.initiatorInfo); |
| + newRequest.mayActivateCacheAwareLoading(); |
| } |
| void ResourceFetcher::updateAllImageResourcePriorities() { |