| 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..743c85b1a20b02f8999fbcddb04b31895b251a18 100644
|
| --- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
|
| +++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
|
| @@ -453,16 +453,14 @@ void ResourceFetcher::updateMemoryCacheStats(Resource* resource,
|
| }
|
| }
|
|
|
| -Resource* ResourceFetcher::requestResource(
|
| - FetchRequest& request,
|
| - const ResourceFactory& factory,
|
| - const SubstituteData& substituteData) {
|
| +Resource* ResourceFetcher::prepareRequest(FetchRequest& request,
|
| + const ResourceFactory& factory,
|
| + const SubstituteData& substituteData,
|
| + unsigned long identifier,
|
| + bool& isStaticData,
|
| + bool& shouldContinue) {
|
| 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);
|
| @@ -489,6 +487,7 @@ Resource* ResourceFetcher::requestResource(
|
| factory.type(), resourceRequest,
|
| MemoryCache::removeFragmentIdentifierIfNeeded(request.url()),
|
| request.options(), request.forPreload(), request.getOriginRestriction());
|
| + Resource* resource = nullptr;
|
| if (blockedReason != ResourceRequestBlockedReason::None) {
|
| DCHECK(!substituteData.forceSynchronousLoad());
|
| return resourceForBlockedRequest(request, factory, blockedReason);
|
| @@ -501,8 +500,7 @@ Resource* ResourceFetcher::requestResource(
|
| return nullptr;
|
|
|
| bool isDataUrl = resourceRequest.url().protocolIsData();
|
| - bool isStaticData = isDataUrl || substituteData.isValid() || m_archive;
|
| - Resource* resource(nullptr);
|
| + isStaticData = isDataUrl || substituteData.isValid() || m_archive;
|
| if (isStaticData) {
|
| resource = resourceForStaticData(request, factory, substituteData);
|
| // Abort the request if the archive doesn't contain the resource, except in
|
| @@ -512,6 +510,29 @@ Resource* ResourceFetcher::requestResource(
|
| if (!resource && !isDataUrl && m_archive)
|
| return nullptr;
|
| }
|
| + resourceRequest.setAllowStoredCredentials(
|
| + request.options().allowCredentials == AllowStoredCredentials);
|
| + shouldContinue = true;
|
| + return resource;
|
| +}
|
| +
|
| +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");
|
| +
|
| + bool isStaticData = false;
|
| + bool shouldContinue = false;
|
| + Resource* resource = prepareRequest(request, factory, substituteData,
|
| + identifier, isStaticData, shouldContinue);
|
| + if (shouldContinue)
|
| + return resource;
|
| +
|
| if (!resource) {
|
| resource =
|
| memoryCache()->resourceForURL(request.url(), getCacheIdentifier());
|
| @@ -528,9 +549,6 @@ Resource* ResourceFetcher::requestResource(
|
|
|
| updateMemoryCacheStats(resource, policy, request, factory, isStaticData);
|
|
|
| - resourceRequest.setAllowStoredCredentials(
|
| - request.options().allowCredentials == AllowStoredCredentials);
|
| -
|
| switch (policy) {
|
| case Reload:
|
| memoryCache()->remove(resource);
|
|
|