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

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

Issue 1800333003: Keep multipart images in m_nonBlockingLoaders after first part loaded (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reflect comments. Created 4 years, 9 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 f7cd97d2d74b1e8baa52602f56d6fa1d452bc305..515a577be25bb1d2839280469410f3f3872e8c22 100644
--- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
+++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
@@ -927,7 +927,8 @@ bool ResourceFetcher::scheduleArchiveLoad(Resource* resource, const ResourceRequ
void ResourceFetcher::didFinishLoading(Resource* resource, double finishTime, int64_t encodedDataLength)
{
TRACE_EVENT_ASYNC_END0("blink.net", "Resource", resource);
- willTerminateResourceLoader(resource->loader());
+ // The ResourceLoader might be in |m_nonBlockingLoaders| for multipart responses.
+ ASSERT(!(m_loaders && m_loaders->contains(resource->loader())));
if (resource && resource->response().isHTTP() && resource->response().httpStatusCode() < 400) {
ResourceTimingInfoMap::iterator it = m_resourceTimingInfoMap.find(resource);
@@ -946,7 +947,7 @@ void ResourceFetcher::didFinishLoading(Resource* resource, double finishTime, in
void ResourceFetcher::didFailLoading(const Resource* resource, const ResourceError& error)
{
TRACE_EVENT_ASYNC_END0("blink.net", "Resource", resource);
- willTerminateResourceLoader(resource->loader());
+ removeResourceLoader(resource->loader());
bool isInternalRequest = resource->options().initiatorInfo.name == FetchInitiatorTypeNames::internal;
context().dispatchDidFail(resource->identifier(), error, isInternalRequest);
}
@@ -983,13 +984,12 @@ void ResourceFetcher::acceptDataFromThreadedReceiver(unsigned long identifier, c
context().dispatchDidReceiveData(identifier, data, dataLength, encodedDataLength);
}
-void ResourceFetcher::subresourceLoaderFinishedLoadingOnePart(ResourceLoader* loader)
+void ResourceFetcher::moveResourceLoaderToNonBlocking(ResourceLoader* loader)
{
if (!m_nonBlockingLoaders)
m_nonBlockingLoaders = ResourceLoaderSet::create();
m_nonBlockingLoaders->add(loader);
m_loaders->remove(loader);
- didLoadResource(loader->cachedResource());
}
void ResourceFetcher::willStartLoadingResource(Resource* resource, ResourceLoader* loader, ResourceRequest& request)
@@ -1011,7 +1011,7 @@ void ResourceFetcher::willStartLoadingResource(Resource* resource, ResourceLoade
context().dispatchWillSendRequest(resource->identifier(), request, ResourceResponse(), resource->options().initiatorInfo);
}
-void ResourceFetcher::willTerminateResourceLoader(ResourceLoader* loader)
+void ResourceFetcher::removeResourceLoader(ResourceLoader* loader)
{
if (m_loaders && m_loaders->contains(loader))
m_loaders->remove(loader);
« no previous file with comments | « third_party/WebKit/Source/core/fetch/ResourceFetcher.h ('k') | third_party/WebKit/Source/core/fetch/ResourceLoader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698