Chromium Code Reviews| Index: Source/core/fetch/ResourceFetcher.cpp |
| diff --git a/Source/core/fetch/ResourceFetcher.cpp b/Source/core/fetch/ResourceFetcher.cpp |
| index cd15e1c78b0743685f832fb03db2a66fce09cfd5..a4affeb3bab6387f35b802e2e87c78422a1d5eb1 100644 |
| --- a/Source/core/fetch/ResourceFetcher.cpp |
| +++ b/Source/core/fetch/ResourceFetcher.cpp |
| @@ -143,7 +143,7 @@ static ResourceLoadPriority loadPriority(Resource::Type type, const FetchRequest |
| return ResourceLoadPriorityUnresolved; |
| } |
| -static Resource* resourceFromDataURIRequest(const ResourceRequest& request, const ResourceLoaderOptions& resourceOptions) |
| +static Resource* imageResourceFromDataURIRequest(const ResourceRequest& request, const ResourceLoaderOptions& resourceOptions) |
| { |
| const KURL& url = request.url(); |
| ASSERT(url.protocolIsData()); |
| @@ -151,7 +151,7 @@ static Resource* resourceFromDataURIRequest(const ResourceRequest& request, cons |
| blink::WebString mimetype; |
| blink::WebString charset; |
| RefPtr<SharedBuffer> data = PassRefPtr<SharedBuffer>(blink::Platform::current()->parseDataURL(url, mimetype, charset)); |
| - if (!data) |
| + if (!data || mimetype == "image/svg+xml") |
|
eseidel
2014/06/26 17:37:17
Comments would be helpful. :)
|
| return 0; |
| ResourceResponse response(url, mimetype, data->size(), charset, String()); |
| @@ -302,7 +302,7 @@ void ResourceFetcher::preCacheDataURIImage(const FetchRequest& request) |
| if (memoryCache()->resourceForURL(url)) |
| return; |
| - if (Resource* resource = resourceFromDataURIRequest(request.resourceRequest(), request.options())) { |
| + if (Resource* resource = imageResourceFromDataURIRequest(request.resourceRequest(), request.options())) { |
| memoryCache()->add(resource); |
| scheduleDocumentResourcesGC(); |
| } |
| @@ -870,7 +870,12 @@ ResourcePtr<Resource> ResourceFetcher::createResourceForLoading(Resource::Type t |
| WTF_LOG(ResourceLoading, "Loading Resource for '%s'.", request.resourceRequest().url().elidedString().latin1().data()); |
| addAdditionalRequestHeaders(request.mutableResourceRequest(), type); |
| - ResourcePtr<Resource> resource = createResource(type, request.resourceRequest(), charset); |
| + ResourcePtr<Resource> resource; |
| + // data: URI images are a special case because they must ignore autoLoadImages setting. |
| + if (type == Resource::Image && request.resourceRequest().url().protocolIsData()) |
|
eseidel
2014/06/26 17:37:17
Are any other callers going to want this wrapping
|
| + resource = imageResourceFromDataURIRequest(request.resourceRequest(), request.options()); |
| + if (!resource) |
| + resource = createResource(type, request.resourceRequest(), charset); |
| memoryCache()->add(resource.get()); |
| return resource; |