| 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 12c78352ede958dd95cde409aff7f040f920d9c2..5ee5b95911dde52b33844107523d68ed59f8bbc8 100644
|
| --- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| +++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| @@ -1149,6 +1149,18 @@ void ResourceFetcher::didFinishLoading(Resource* resource,
|
|
|
| void ResourceFetcher::didFailLoading(Resource* resource,
|
| const ResourceError& error) {
|
| + if (resource->resourceRequest().isCacheAwareLoadingActivated() &&
|
| + !error.isCancellation() && !error.isAccessCheck()) {
|
| + // Assume error.errorCode() == net::ERR_CACHE_MISS, resend request with
|
| + // existing ResourceLoader.
|
| + resource->deactivateCacheAwareLoading();
|
| + 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));
|
| @@ -1262,6 +1274,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);
|
| @@ -1368,6 +1383,7 @@ void ResourceFetcher::willSendRequest(unsigned long identifier,
|
| const ResourceLoaderOptions& options) {
|
| context().dispatchWillSendRequest(identifier, newRequest, redirectResponse,
|
| options.initiatorInfo);
|
| + newRequest.mayActivateCacheAwareLoading();
|
| }
|
|
|
| void ResourceFetcher::updateAllImageResourcePriorities() {
|
|
|