Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(301)

Unified Diff: third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp

Issue 1563263002: Add HTMLPreloadScanner support for <link rel=preload> (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed a test as well as 2 bugs that other tests revealed Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698