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

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

Issue 1889973002: Refactoring starting a resource load (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 3948e207db0502630466315551d47a537432a672..9084183318fbdfca39f9c01f39a6e2cba169b803 100644
--- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
+++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
@@ -210,14 +210,6 @@ ResourceFetcher::~ResourceFetcher()
{
}
-WebTaskRunner* ResourceFetcher::loadingTaskRunner()
-{
- if (!m_context)
- return nullptr;
-
- return m_context->loadingTaskRunner();
-}
-
Resource* ResourceFetcher::cachedResource(const KURL& resourceURL) const
{
KURL url = MemoryCache::removeFragmentIdentifierIfNeeded(resourceURL);
@@ -489,13 +481,11 @@ Resource* ResourceFetcher::requestResource(FetchRequest& request, const Resource
if (!resourceNeedsLoad(resource, request, policy))
return resource;
- if (!context().shouldLoadNewResource(factory.type())) {
+ if (!startLoad(resource)) {
if (memoryCache()->contains(resource))
memoryCache()->remove(resource);
return nullptr;
}
-
- resource->load(this);
ASSERT(!resource->errorOccurred() || request.options().synchronousPolicy == RequestSynchronously);
return resource;
}
@@ -821,10 +811,31 @@ void ResourceFetcher::reloadImagesIfNotDeferred()
{
for (Resource* resource : m_documentResources.values()) {
if (resource->getType() == Resource::Image && resource->stillNeedsLoad() && !shouldDeferImageLoad(resource->url()))
- const_cast<Resource*>(resource)->load(this);
+ startLoad(resource);
}
}
+bool ResourceFetcher::startLoad(Resource* resource)
+{
+ ASSERT(resource->stillNeedsLoad());
Yoav Weiss 2016/04/20 08:52:08 I believe ASSERT is now deprecated and DCHECK is t
Nate Chapin 2016/05/18 23:56:04 Done.
+ if (!context().shouldLoadNewResource(resource->getType()))
+ return false;
+
+ ResourceRequest& request(resource->prepareRequestForLoadStart());
+ KURL url = request.url();
+
+ ResourceLoader* loader = ResourceLoader::create(this, resource);
+ resource->setLoader(loader);
+ willStartLoadingResource(resource, loader, request);
+ loader->start(request, context().loadingTaskRunner(), context().defersLoading());
+
+ // If the request reference is null (i.e., a synchronous revalidation will
+ // null the request), don't make the request non-null by setting the url.
+ if (!request.isNull())
+ request.setURL(url);
+ return true;
+}
+
void ResourceFetcher::didLoadResource(Resource* resource)
{
context().didLoadResource(resource);
@@ -958,7 +969,7 @@ void ResourceFetcher::moveResourceLoaderToNonBlocking(ResourceLoader* loader)
void ResourceFetcher::willStartLoadingResource(Resource* resource, ResourceLoader* loader, ResourceRequest& request)
{
- if (loader->cachedResource()->shouldBlockLoadEvent()) {
+ if (resource->shouldBlockLoadEvent()) {
if (!m_loaders)
m_loaders = ResourceLoaderSet::create();
m_loaders->add(loader);

Powered by Google App Engine
This is Rietveld 408576698