Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) | 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) |
| 3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) | 3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) |
| 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) | 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) |
| 5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. | 5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. |
| 6 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ | 6 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ |
| 7 | 7 |
| 8 This library is free software; you can redistribute it and/or | 8 This library is free software; you can redistribute it and/or |
| 9 modify it under the terms of the GNU Library General Public | 9 modify it under the terms of the GNU Library General Public |
| 10 License as published by the Free Software Foundation; either | 10 License as published by the Free Software Foundation; either |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 136 return ResourceLoadPriorityVeryLow; | 136 return ResourceLoadPriorityVeryLow; |
| 137 case Resource::LinkSubresource: | 137 case Resource::LinkSubresource: |
| 138 return ResourceLoadPriorityLow; | 138 return ResourceLoadPriorityLow; |
| 139 case Resource::TextTrack: | 139 case Resource::TextTrack: |
| 140 return ResourceLoadPriorityLow; | 140 return ResourceLoadPriorityLow; |
| 141 } | 141 } |
| 142 ASSERT_NOT_REACHED(); | 142 ASSERT_NOT_REACHED(); |
| 143 return ResourceLoadPriorityUnresolved; | 143 return ResourceLoadPriorityUnresolved; |
| 144 } | 144 } |
| 145 | 145 |
| 146 static Resource* resourceFromDataURIRequest(const ResourceRequest& request, cons t ResourceLoaderOptions& resourceOptions) | 146 static Resource* imageResourceFromDataURIRequest(const ResourceRequest& request, const ResourceLoaderOptions& resourceOptions) |
| 147 { | 147 { |
| 148 const KURL& url = request.url(); | 148 const KURL& url = request.url(); |
| 149 ASSERT(url.protocolIsData()); | 149 ASSERT(url.protocolIsData()); |
| 150 | 150 |
| 151 blink::WebString mimetype; | 151 blink::WebString mimetype; |
| 152 blink::WebString charset; | 152 blink::WebString charset; |
| 153 RefPtr<SharedBuffer> data = PassRefPtr<SharedBuffer>(blink::Platform::curren t()->parseDataURL(url, mimetype, charset)); | 153 RefPtr<SharedBuffer> data = PassRefPtr<SharedBuffer>(blink::Platform::curren t()->parseDataURL(url, mimetype, charset)); |
| 154 if (!data) | 154 if (!data || mimetype == "image/svg+xml") |
|
eseidel
2014/06/26 17:37:17
Comments would be helpful. :)
| |
| 155 return 0; | 155 return 0; |
| 156 ResourceResponse response(url, mimetype, data->size(), charset, String()); | 156 ResourceResponse response(url, mimetype, data->size(), charset, String()); |
| 157 | 157 |
| 158 Resource* resource = createResource(Resource::Image, request, charset); | 158 Resource* resource = createResource(Resource::Image, request, charset); |
| 159 resource->setOptions(resourceOptions); | 159 resource->setOptions(resourceOptions); |
| 160 resource->responseReceived(response); | 160 resource->responseReceived(response); |
| 161 if (data->size()) | 161 if (data->size()) |
| 162 resource->setResourceBuffer(data); | 162 resource->setResourceBuffer(data); |
| 163 resource->finish(); | 163 resource->finish(); |
| 164 return resource; | 164 return resource; |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 295 } | 295 } |
| 296 | 296 |
| 297 void ResourceFetcher::preCacheDataURIImage(const FetchRequest& request) | 297 void ResourceFetcher::preCacheDataURIImage(const FetchRequest& request) |
| 298 { | 298 { |
| 299 const KURL& url = request.resourceRequest().url(); | 299 const KURL& url = request.resourceRequest().url(); |
| 300 ASSERT(url.protocolIsData()); | 300 ASSERT(url.protocolIsData()); |
| 301 | 301 |
| 302 if (memoryCache()->resourceForURL(url)) | 302 if (memoryCache()->resourceForURL(url)) |
| 303 return; | 303 return; |
| 304 | 304 |
| 305 if (Resource* resource = resourceFromDataURIRequest(request.resourceRequest( ), request.options())) { | 305 if (Resource* resource = imageResourceFromDataURIRequest(request.resourceReq uest(), request.options())) { |
| 306 memoryCache()->add(resource); | 306 memoryCache()->add(resource); |
| 307 scheduleDocumentResourcesGC(); | 307 scheduleDocumentResourcesGC(); |
| 308 } | 308 } |
| 309 } | 309 } |
| 310 | 310 |
| 311 ResourcePtr<FontResource> ResourceFetcher::fetchFont(FetchRequest& request) | 311 ResourcePtr<FontResource> ResourceFetcher::fetchFont(FetchRequest& request) |
| 312 { | 312 { |
| 313 return toFontResource(requestResource(Resource::Font, request)); | 313 return toFontResource(requestResource(Resource::Font, request)); |
| 314 } | 314 } |
| 315 | 315 |
| (...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 863 return newResource; | 863 return newResource; |
| 864 } | 864 } |
| 865 | 865 |
| 866 ResourcePtr<Resource> ResourceFetcher::createResourceForLoading(Resource::Type t ype, FetchRequest& request, const String& charset) | 866 ResourcePtr<Resource> ResourceFetcher::createResourceForLoading(Resource::Type t ype, FetchRequest& request, const String& charset) |
| 867 { | 867 { |
| 868 ASSERT(!memoryCache()->resourceForURL(request.resourceRequest().url())); | 868 ASSERT(!memoryCache()->resourceForURL(request.resourceRequest().url())); |
| 869 | 869 |
| 870 WTF_LOG(ResourceLoading, "Loading Resource for '%s'.", request.resourceReque st().url().elidedString().latin1().data()); | 870 WTF_LOG(ResourceLoading, "Loading Resource for '%s'.", request.resourceReque st().url().elidedString().latin1().data()); |
| 871 | 871 |
| 872 addAdditionalRequestHeaders(request.mutableResourceRequest(), type); | 872 addAdditionalRequestHeaders(request.mutableResourceRequest(), type); |
| 873 ResourcePtr<Resource> resource = createResource(type, request.resourceReques t(), charset); | 873 ResourcePtr<Resource> resource; |
| 874 // data: URI images are a special case because they must ignore autoLoadImag es setting. | |
| 875 if (type == Resource::Image && request.resourceRequest().url().protocolIsDat a()) | |
|
eseidel
2014/06/26 17:37:17
Are any other callers going to want this wrapping
| |
| 876 resource = imageResourceFromDataURIRequest(request.resourceRequest(), re quest.options()); | |
| 877 if (!resource) | |
| 878 resource = createResource(type, request.resourceRequest(), charset); | |
| 874 | 879 |
| 875 memoryCache()->add(resource.get()); | 880 memoryCache()->add(resource.get()); |
| 876 return resource; | 881 return resource; |
| 877 } | 882 } |
| 878 | 883 |
| 879 void ResourceFetcher::storeResourceTimingInitiatorInformation(Resource* resource ) | 884 void ResourceFetcher::storeResourceTimingInitiatorInformation(Resource* resource ) |
| 880 { | 885 { |
| 881 if (resource->options().requestInitiatorContext != DocumentContext) | 886 if (resource->options().requestInitiatorContext != DocumentContext) |
| 882 return; | 887 return; |
| 883 | 888 |
| (...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1485 } | 1490 } |
| 1486 } | 1491 } |
| 1487 | 1492 |
| 1488 void ResourceFetcher::trace(Visitor* visitor) | 1493 void ResourceFetcher::trace(Visitor* visitor) |
| 1489 { | 1494 { |
| 1490 visitor->trace(m_document); | 1495 visitor->trace(m_document); |
| 1491 ResourceLoaderHost::trace(visitor); | 1496 ResourceLoaderHost::trace(visitor); |
| 1492 } | 1497 } |
| 1493 | 1498 |
| 1494 } | 1499 } |
| OLD | NEW |