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 53805481da6e80d641d7c919c9e5b9dbff74b711..468ba2251fa2306fe9beb2b3ae15d381730cac10 100644 |
--- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp |
+++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp |
@@ -379,6 +379,14 @@ Resource* ResourceFetcher::resourceForStaticData(const FetchRequest& request, co |
return resource; |
} |
+Resource* ResourceFetcher::resourceForBlockedRequest(const FetchRequest& request, const ResourceFactory& factory, bool needsSynchronousCacheHit) |
+{ |
+ Resource* resource = factory.create(request.resourceRequest(), request.options(), request.charset()); |
+ resource->setNeedsSynchronousCacheHit(needsSynchronousCacheHit); |
Nate Chapin
2016/08/09 22:43:23
Is there a case where needsSynchronousCacheHit is
engedy
2016/08/17 16:41:56
Looking through the clients that use `needsSynchro
Nate Chapin
2016/08/17 20:05:05
SubstituteData is very trusted and gets to short c
engedy
2016/09/21 21:04:01
What do you think about adding a DCHECK?
Nate Chapin
2016/09/21 23:23:41
Works for me.
|
+ resource->error(ResourceError::cancelledDueToAccessCheckError(request.url())); |
+ return resource; |
+} |
+ |
void ResourceFetcher::moveCachedNonBlockingResourceToBlocking(Resource* resource, const FetchRequest& request) |
{ |
// TODO(yoav): Test that non-blocking resources (video/audio/track) continue to not-block even after being preloaded and discovered. |
@@ -423,8 +431,9 @@ Resource* ResourceFetcher::requestResource(FetchRequest& request, const Resource |
if (!request.url().isValid()) |
return nullptr; |
- if (!context().canRequest(factory.type(), request.resourceRequest(), MemoryCache::removeFragmentIdentifierIfNeeded(request.url()), request.options(), request.forPreload(), request.getOriginRestriction())) |
- return nullptr; |
+ if (!context().canRequest(factory.type(), request.resourceRequest(), MemoryCache::removeFragmentIdentifierIfNeeded(request.url()), request.options(), request.forPreload(), request.getOriginRestriction())) { |
Nate Chapin
2016/08/09 22:43:23
Is it possible to move this check later, so that w
engedy
2016/08/17 16:41:56
It is possible, but unless I misunderstood your su
Nate Chapin
2016/08/17 20:05:05
Hrm, I guess the hard case here is for the Resourc
|
+ return resourceForBlockedRequest(request, factory, substituteData.forceSynchronousLoad()); |
+ } |
unsigned long identifier = createUniqueIdentifier(); |
request.mutableResourceRequest().setPriority(computeLoadPriority(factory.type(), request, ResourcePriority::NotVisible)); |