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 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); |