From 4be2d764fa6322921987b06b2b04b9a110201805 Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Thu, 30 Oct 2014 09:41:31 -0700 Subject: [PATCH] Remove Platform::parseDataURL We only use this data URL parser to pre-cache images loaded from data URLs. It's not clear we need that optimization in this system. If we do want it, we can just call the data URL parser directly. R=eseidel@chromium.org Review URL: https://codereview.chromium.org/691623003 --- engine/core/fetch/ResourceFetcher.cpp | 38 ------------------------ engine/core/fetch/ResourceFetcher.h | 1 - engine/public/platform/Platform.h | 3 -- engine/testing/platform/platform_impl.cc | 14 --------- engine/testing/platform/platform_impl.h | 3 -- viewer/platform/platform_impl.cc | 14 --------- viewer/platform/platform_impl.h | 3 -- 7 files changed, 76 deletions(-) diff --git a/engine/core/fetch/ResourceFetcher.cpp b/engine/core/fetch/ResourceFetcher.cpp index 216fd96306f..c2a99c82cd1 100644 --- a/engine/core/fetch/ResourceFetcher.cpp +++ b/engine/core/fetch/ResourceFetcher.cpp @@ -114,27 +114,6 @@ static ResourceLoadPriority loadPriority(Resource::Type type, const FetchRequest return ResourceLoadPriorityUnresolved; } -static Resource* resourceFromDataURIRequest(const ResourceRequest& request, const ResourceLoaderOptions& resourceOptions) -{ - const KURL& url = request.url(); - ASSERT(url.protocolIsData()); - - blink::WebString mimetype; - blink::WebString charset; - RefPtr data = PassRefPtr(blink::Platform::current()->parseDataURL(url, mimetype, charset)); - if (!data) - return 0; - ResourceResponse response(url, mimetype, data->size(), charset, String()); - - Resource* resource = createResource(Resource::Image, request, charset); - resource->setOptions(resourceOptions); - resource->responseReceived(response); - if (data->size()) - resource->setResourceBuffer(data); - resource->finish(); - return resource; -} - static WebURLRequest::RequestContext requestContextFromType(const ResourceFetcher* fetcher, Resource::Type type) { switch (type) { @@ -207,28 +186,11 @@ FetchContext& ResourceFetcher::context() const ResourcePtr ResourceFetcher::fetchImage(FetchRequest& request) { - if (request.resourceRequest().url().protocolIsData()) - preCacheDataURIImage(request); - request.setDefer(clientDefersImage(request.resourceRequest().url()) ? FetchRequest::DeferredByClient : FetchRequest::NoDefer); ResourcePtr resource = requestResource(Resource::Image, request); return resource && resource->type() == Resource::Image ? toImageResource(resource) : 0; } -void ResourceFetcher::preCacheDataURIImage(const FetchRequest& request) -{ - const KURL& url = request.resourceRequest().url(); - ASSERT(url.protocolIsData()); - - if (memoryCache()->resourceForURL(url)) - return; - - if (Resource* resource = resourceFromDataURIRequest(request.resourceRequest(), request.options())) { - memoryCache()->add(resource); - scheduleDocumentResourcesGC(); - } -} - ResourcePtr ResourceFetcher::fetchFont(FetchRequest& request) { ASSERT(request.resourceRequest().frameType() == WebURLRequest::FrameTypeNone); diff --git a/engine/core/fetch/ResourceFetcher.h b/engine/core/fetch/ResourceFetcher.h index bf612d13001..a65053d225a 100644 --- a/engine/core/fetch/ResourceFetcher.h +++ b/engine/core/fetch/ResourceFetcher.h @@ -147,7 +147,6 @@ private: ResourcePtr requestResource(Resource::Type, FetchRequest&); ResourcePtr createResourceForRevalidation(const FetchRequest&, Resource*); ResourcePtr createResourceForLoading(Resource::Type, FetchRequest&, const String& charset); - void preCacheDataURIImage(const FetchRequest&); void requestPreload(Resource::Type, FetchRequest&, const String& charset); enum RevalidationPolicy { Use, Revalidate, Reload, Load }; diff --git a/engine/public/platform/Platform.h b/engine/public/platform/Platform.h index 7f6183fd92e..60fb845f6d5 100644 --- a/engine/public/platform/Platform.h +++ b/engine/public/platform/Platform.h @@ -184,9 +184,6 @@ public: // A suggestion to cache this metadata in association with this URL. virtual void cacheMetadata(const WebURL&, double responseTime, const char* data, size_t dataSize) { } - // Returns the decoded data url if url had a supported mimetype and parsing was successful. - virtual WebData parseDataURL(const WebURL&, WebString& mimetype, WebString& charset) { return WebData(); } - virtual WebURLError cancelledError(const WebURL&) const { return WebURLError(); } virtual bool isReservedIPAddress(const WebURL&) const { return false; } diff --git a/engine/testing/platform/platform_impl.cc b/engine/testing/platform/platform_impl.cc index 238480db495..d47f74c016e 100644 --- a/engine/testing/platform/platform_impl.cc +++ b/engine/testing/platform/platform_impl.cc @@ -100,18 +100,4 @@ const unsigned char* PlatformImpl::getTraceCategoryEnabledFlag( return buf; } -blink::WebData PlatformImpl::parseDataURL( - const blink::WebURL& url, - blink::WebString& mimetype_out, - blink::WebString& charset_out) { - std::string mimetype, charset, data; - if (net::DataURL::Parse(url, &mimetype, &charset, &data) - && net::IsSupportedMimeType(mimetype)) { - mimetype_out = blink::WebString::fromUTF8(mimetype); - charset_out = blink::WebString::fromUTF8(charset); - return data; - } - return blink::WebData(); -} - } // namespace sky diff --git a/engine/testing/platform/platform_impl.h b/engine/testing/platform/platform_impl.h index 3242c7a57da..422a78208f1 100644 --- a/engine/testing/platform/platform_impl.h +++ b/engine/testing/platform/platform_impl.h @@ -32,9 +32,6 @@ class PlatformImpl : public blink::Platform { virtual void setSharedTimerFiredFunction(void (*func)()); virtual void setSharedTimerFireInterval(double interval_seconds); virtual void stopSharedTimer(); - virtual blink::WebData parseDataURL( - const blink::WebURL& url, blink::WebString& mime_type, - blink::WebString& charset); virtual blink::WebScrollbarBehavior* scrollbarBehavior(); virtual const unsigned char* getTraceCategoryEnabledFlag( const char* category_name); diff --git a/viewer/platform/platform_impl.cc b/viewer/platform/platform_impl.cc index 612586e4946..9fc4f50507a 100644 --- a/viewer/platform/platform_impl.cc +++ b/viewer/platform/platform_impl.cc @@ -138,20 +138,6 @@ blink::WebURLLoader* PlatformImpl::createURLLoader() { return new WebURLLoaderImpl(network_service_.get()); } -blink::WebData PlatformImpl::parseDataURL( - const blink::WebURL& url, - blink::WebString& mimetype_out, - blink::WebString& charset_out) { - std::string mimetype, charset, data; - if (net::DataURL::Parse(url, &mimetype, &charset, &data) - && net::IsSupportedMimeType(mimetype)) { - mimetype_out = blink::WebString::fromUTF8(mimetype); - charset_out = blink::WebString::fromUTF8(charset); - return data; - } - return blink::WebData(); -} - blink::WebURLError PlatformImpl::cancelledError(const blink::WebURL& url) const { blink::WebURLError error; diff --git a/viewer/platform/platform_impl.h b/viewer/platform/platform_impl.h index 0fca84fd461..277ef70f288 100644 --- a/viewer/platform/platform_impl.h +++ b/viewer/platform/platform_impl.h @@ -41,9 +41,6 @@ class PlatformImpl : public blink::Platform { virtual blink::WebCompositorSupport* compositorSupport(); virtual mojo::NetworkService* networkService(); virtual blink::WebURLLoader* createURLLoader(); - virtual blink::WebData parseDataURL( - const blink::WebURL& url, blink::WebString& mime_type, - blink::WebString& charset); virtual blink::WebURLError cancelledError(const blink::WebURL& url) const; virtual blink::WebScrollbarBehavior* scrollbarBehavior(); virtual const unsigned char* getTraceCategoryEnabledFlag(