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 4cc53b22806845bcaaf7093046842492d6872b85..78273ced79f084fd8e5f43857398b9e09bbf0b6a 100644 |
--- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp |
+++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp |
@@ -323,10 +323,10 @@ ResourcePtr<Resource> ResourceFetcher::preCacheData(const FetchRequest& request, |
return resource; |
} |
-void ResourceFetcher::moveCachedNonBlockingResourceToBlocking(Resource* 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. |
- if (resource && resource->loader() && resource->isNonBlockingResourceType() && resource->avoidBlockingOnLoad()) { |
+ if (resource && resource->loader() && resource->isNonBlockingResourceType() && resource->avoidBlockingOnLoad() && !request.forPreload()) { |
if (m_nonBlockingLoaders) |
m_nonBlockingLoaders->remove(resource->loader()); |
if (!m_loaders) |
@@ -380,7 +380,7 @@ ResourcePtr<Resource> ResourceFetcher::requestResource(FetchRequest& request, co |
resource = memoryCache()->resourceForURL(url, getCacheIdentifier()); |
// See if we can use an existing resource from the cache. If so, we need to move it to be load blocking. |
- moveCachedNonBlockingResourceToBlocking(resource.get()); |
+ moveCachedNonBlockingResourceToBlocking(resource.get(), request); |
const RevalidationPolicy policy = determineRevalidationPolicy(factory.type(), request, resource.get(), isStaticData); |
switch (policy) { |