mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
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
This commit is contained in:
parent
07106fceee
commit
4be2d764fa
@ -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<SharedBuffer> data = PassRefPtr<SharedBuffer>(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<ImageResource> ResourceFetcher::fetchImage(FetchRequest& request)
|
||||
{
|
||||
if (request.resourceRequest().url().protocolIsData())
|
||||
preCacheDataURIImage(request);
|
||||
|
||||
request.setDefer(clientDefersImage(request.resourceRequest().url()) ? FetchRequest::DeferredByClient : FetchRequest::NoDefer);
|
||||
ResourcePtr<Resource> 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<FontResource> ResourceFetcher::fetchFont(FetchRequest& request)
|
||||
{
|
||||
ASSERT(request.resourceRequest().frameType() == WebURLRequest::FrameTypeNone);
|
||||
|
||||
@ -147,7 +147,6 @@ private:
|
||||
ResourcePtr<Resource> requestResource(Resource::Type, FetchRequest&);
|
||||
ResourcePtr<Resource> createResourceForRevalidation(const FetchRequest&, Resource*);
|
||||
ResourcePtr<Resource> 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 };
|
||||
|
||||
@ -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; }
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user