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

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

Issue 2390583002: [WIP] WebFonts cache-aware timeout adaption (Closed)
Patch Set: remove flag in finish() instead of responseReceived() Created 4 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 aab6e32f909db869ae8dbc90db1b6bae95c83f27..d0bb7293a9b1613834bf4e4d486df54adad94e73 100644
--- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
+++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
@@ -1108,6 +1108,17 @@ 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.
Takashi Toyoshima 2016/10/05 07:06:18 Is it difficult to have an explicit method to know
Shao-Chuan Lee 2016/10/05 10:16:10 Should we add a field for this in WebURLError and
Shao-Chuan Lee 2016/10/07 08:10:06 Done.
+ 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 +1231,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 +1346,7 @@ void ResourceFetcher::willSendRequest(unsigned long identifier,
const ResourceLoaderOptions& options) {
context().dispatchWillSendRequest(identifier, newRequest, redirectResponse,
options.initiatorInfo);
+ newRequest.mayActivateCacheAwareLoading();
}
void ResourceFetcher::updateAllImageResourcePriorities() {

Powered by Google App Engine
This is Rietveld 408576698