Chromium Code Reviews| Index: third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
| diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
| index 3dca6d80058321a5f2fec128765abdcdbe449aa3..b324e6321baa1ee304bb179c0427c7dae13cd83f 100644 |
| --- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
| +++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
| @@ -453,16 +453,13 @@ void ResourceFetcher::updateMemoryCacheStats(Resource* resource, |
| } |
| } |
| -Resource* ResourceFetcher::requestResource( |
| - FetchRequest& request, |
| - const ResourceFactory& factory, |
| - const SubstituteData& substituteData) { |
| +bool ResourceFetcher::prepareRequest(FetchRequest& request, |
| + const ResourceFactory& factory, |
| + const SubstituteData& substituteData, |
| + unsigned long identifier, |
| + Resource*& resource) { |
|
Nate Chapin
2017/01/31 19:40:22
"Resource*&" is dubious. Maybe return an enum:
en
|
| ResourceRequest& resourceRequest = request.mutableResourceRequest(); |
| - unsigned long identifier = createUniqueIdentifier(); |
| - network_instrumentation::ScopedResourceLoadTracker scopedResourceLoadTracker( |
| - identifier, resourceRequest); |
| - SCOPED_BLINK_UMA_HISTOGRAM_TIMER("Blink.Fetch.RequestResourceTime"); |
| DCHECK(request.options().synchronousPolicy == RequestAsynchronously || |
| factory.type() == Resource::Raw || |
| factory.type() == Resource::XSLStyleSheet); |
| @@ -471,12 +468,8 @@ Resource* ResourceFetcher::requestResource( |
| factory.type(), request.clientHintsPreferences(), |
| request.getResourceWidth(), resourceRequest); |
| - // TODO(dproy): Remove this. http://crbug.com/659666 |
| - TRACE_EVENT1("blink", "ResourceFetcher::requestResource", "url", |
| - urlForTraceEvent(request.url())); |
| - |
| if (!request.url().isValid()) |
| - return nullptr; |
| + return false; |
| resourceRequest.setPriority(computeLoadPriority( |
| factory.type(), request.resourceRequest(), ResourcePriority::NotVisible, |
| @@ -491,18 +484,41 @@ Resource* ResourceFetcher::requestResource( |
| request.options(), request.forPreload(), request.getOriginRestriction()); |
| if (blockedReason != ResourceRequestBlockedReason::None) { |
| DCHECK(!substituteData.forceSynchronousLoad()); |
| - return resourceForBlockedRequest(request, factory, blockedReason); |
| + resource = resourceForBlockedRequest(request, factory, blockedReason); |
| + return false; |
| } |
| context().willStartLoadingResource( |
| identifier, resourceRequest, factory.type(), |
| request.options().initiatorInfo.name, request.forPreload()); |
| if (!request.url().isValid()) |
| - return nullptr; |
| + return false; |
| + |
| + resourceRequest.setAllowStoredCredentials( |
| + request.options().allowCredentials == AllowStoredCredentials); |
| + return true; |
| +} |
| + |
| +Resource* ResourceFetcher::requestResource( |
| + FetchRequest& request, |
| + const ResourceFactory& factory, |
| + const SubstituteData& substituteData) { |
| + unsigned long identifier = createUniqueIdentifier(); |
| + ResourceRequest& resourceRequest = request.mutableResourceRequest(); |
| + network_instrumentation::ScopedResourceLoadTracker scopedResourceLoadTracker( |
| + identifier, resourceRequest); |
| + SCOPED_BLINK_UMA_HISTOGRAM_TIMER("Blink.Fetch.RequestResourceTime"); |
| + // TODO(dproy): Remove this. http://crbug.com/659666 |
| + TRACE_EVENT1("blink", "ResourceFetcher::requestResource", "url", |
| + urlForTraceEvent(request.url())); |
| + |
| + Resource* resource = nullptr; |
| + |
| + if (!prepareRequest(request, factory, substituteData, identifier, resource)) |
| + return resource; |
| bool isDataUrl = resourceRequest.url().protocolIsData(); |
| bool isStaticData = isDataUrl || substituteData.isValid() || m_archive; |
| - Resource* resource(nullptr); |
| if (isStaticData) { |
| resource = resourceForStaticData(request, factory, substituteData); |
| // Abort the request if the archive doesn't contain the resource, except in |
| @@ -528,9 +544,6 @@ Resource* ResourceFetcher::requestResource( |
| updateMemoryCacheStats(resource, policy, request, factory, isStaticData); |
| - resourceRequest.setAllowStoredCredentials( |
| - request.options().allowCredentials == AllowStoredCredentials); |
| - |
| switch (policy) { |
| case Reload: |
| memoryCache()->remove(resource); |