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

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

Issue 355043002: Fix loading of data: URI images wrt loadsImagesAutomatically setting (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Now correctly Created 6 years, 6 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
« no previous file with comments | « LayoutTests/loader/data-uri-images-load-when-loading-images-automatically-disabled-expected.txt ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/fetch/ResourceFetcher.cpp
diff --git a/Source/core/fetch/ResourceFetcher.cpp b/Source/core/fetch/ResourceFetcher.cpp
index efdfebe248f27e81664462777d8a915ad169bfdf..5cc9584f7626212d3bdd2a8b547c28b4bc21872d 100644
--- a/Source/core/fetch/ResourceFetcher.cpp
+++ b/Source/core/fetch/ResourceFetcher.cpp
@@ -291,7 +291,8 @@ ResourcePtr<ImageResource> ResourceFetcher::fetchImage(FetchRequest& request)
preCacheDataURIImage(request);
request.setDefer(clientDefersImage(request.resourceRequest().url()) ? FetchRequest::DeferredByClient : FetchRequest::NoDefer);
- return toImageResource(requestResource(Resource::Image, request));
+ ResourcePtr<Resource> resource = requestResource(Resource::Image, request);
+ return resource && resource->type() == Resource::Image ? toImageResource(resource) : 0;
}
void ResourceFetcher::preCacheDataURIImage(const FetchRequest& request)
@@ -1205,7 +1206,12 @@ void ResourceFetcher::requestPreload(Resource::Type type, FetchRequest& request,
request.setCharset(encoding);
request.setForPreload(true);
- ResourcePtr<Resource> resource = requestResource(type, request);
+ ResourcePtr<Resource> resource;
+ // Loading images involves several special cases, so use dedicated fetch method instead.
+ if (type == Resource::Image)
+ resource = fetchImage(request);
+ if (!resource)
+ resource = requestResource(type, request);
if (!resource || (m_preloads && m_preloads->contains(resource.get())))
return;
TRACE_EVENT_ASYNC_STEP_INTO0("net", "Resource", resource.get(), "Preload");
« no previous file with comments | « LayoutTests/loader/data-uri-images-load-when-loading-images-automatically-disabled-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698