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) |
| 155 return 0; | 155 return 0; |
| 156 ResourceResponse response(url, mimetype, data->size(), charset, String()); | 156 ResourceResponse response(url, mimetype, data->size(), charset, String()); |
| (...skipping 138 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 // data: URI images are a special case because they must ignore autoLoadImag es setting. |
| 874 ResourcePtr<Resource> resource = type == Resource::Image && request.resource Request().url().protocolIsData() ? | |
|
eseidel
2014/06/26 16:24:35
Do we want to just push this logic down into creat
mnaganov (inactive)
2014/06/26 16:42:40
I don't think so, because imageResourceFromDataURI
| |
| 875 imageResourceFromDataURIRequest(request.resourceRequest(), request.optio ns()) : | |
| 876 createResource(type, request.resourceRequest(), charset); | |
| 874 | 877 |
| 875 memoryCache()->add(resource.get()); | 878 memoryCache()->add(resource.get()); |
| 876 return resource; | 879 return resource; |
| 877 } | 880 } |
| 878 | 881 |
| 879 void ResourceFetcher::storeResourceTimingInitiatorInformation(Resource* resource ) | 882 void ResourceFetcher::storeResourceTimingInitiatorInformation(Resource* resource ) |
| 880 { | 883 { |
| 881 if (resource->options().requestInitiatorContext != DocumentContext) | 884 if (resource->options().requestInitiatorContext != DocumentContext) |
| 882 return; | 885 return; |
| 883 | 886 |
| (...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1485 } | 1488 } |
| 1486 } | 1489 } |
| 1487 | 1490 |
| 1488 void ResourceFetcher::trace(Visitor* visitor) | 1491 void ResourceFetcher::trace(Visitor* visitor) |
| 1489 { | 1492 { |
| 1490 visitor->trace(m_document); | 1493 visitor->trace(m_document); |
| 1491 ResourceLoaderHost::trace(visitor); | 1494 ResourceLoaderHost::trace(visitor); |
| 1492 } | 1495 } |
| 1493 | 1496 |
| 1494 } | 1497 } |
| OLD | NEW |