diff options
Diffstat (limited to 'chromium/content/renderer/image_downloader')
4 files changed, 37 insertions, 39 deletions
diff --git a/chromium/content/renderer/image_downloader/image_downloader_base.cc b/chromium/content/renderer/image_downloader/image_downloader_base.cc index 9167646ce8b..19dda4fcef9 100644 --- a/chromium/content/renderer/image_downloader/image_downloader_base.cc +++ b/chromium/content/renderer/image_downloader/image_downloader_base.cc @@ -9,15 +9,14 @@ #include "base/bind.h" #include "base/location.h" #include "base/logging.h" -#include "base/memory/ptr_util.h" #include "content/child/image_decoder.h" #include "content/public/renderer/render_frame.h" #include "content/public/renderer/render_thread.h" #include "content/renderer/fetchers/multi_resolution_image_resource_fetcher.h" #include "net/base/data_url.h" -#include "third_party/WebKit/public/platform/WebURLRequest.h" -#include "third_party/WebKit/public/platform/modules/fetch/fetch_api_request.mojom-shared.h" -#include "third_party/WebKit/public/web/WebLocalFrame.h" +#include "third_party/blink/public/platform/modules/fetch/fetch_api_request.mojom-shared.h" +#include "third_party/blink/public/platform/web_url_request.h" +#include "third_party/blink/public/web/web_local_frame.h" #include "ui/gfx/favicon_size.h" #include "ui/gfx/geometry/size.h" #include "url/url_constants.h" @@ -62,28 +61,27 @@ ImageDownloaderBase::~ImageDownloaderBase() { void ImageDownloaderBase::DownloadImage(const GURL& image_url, bool is_favicon, bool bypass_cache, - const DownloadCallback& callback) { + DownloadCallback callback) { + if (!image_url.SchemeIs(url::kDataScheme)) { + FetchImage(image_url, is_favicon, bypass_cache, std::move(callback)); + // Will complete asynchronously via ImageDownloaderBase::DidFetchImage. + return; + } + std::vector<SkBitmap> result_images; + SkBitmap data_image = ImageFromDataUrl(image_url); - if (image_url.SchemeIs(url::kDataScheme)) { - SkBitmap data_image = ImageFromDataUrl(image_url); - // Drop null or empty SkBitmap. - if (!data_image.drawsNothing()) - result_images.push_back(data_image); - } else { - if (FetchImage(image_url, is_favicon, bypass_cache, callback)) { - // Will complete asynchronously via ImageDownloaderBase::DidFetchImage - return; - } - } + // Drop null or empty SkBitmap. + if (!data_image.drawsNothing()) + result_images.push_back(data_image); - callback.Run(0, result_images); + std::move(callback).Run(0, result_images); } -bool ImageDownloaderBase::FetchImage(const GURL& image_url, +void ImageDownloaderBase::FetchImage(const GURL& image_url, bool is_favicon, bool bypass_cache, - const DownloadCallback& callback) { + DownloadCallback callback) { blink::WebLocalFrame* frame = render_frame()->GetWebFrame(); DCHECK(frame); @@ -95,13 +93,12 @@ bool ImageDownloaderBase::FetchImage(const GURL& image_url, : WebURLRequest::kRequestContextImage, bypass_cache ? blink::mojom::FetchCacheMode::kBypassCache : blink::mojom::FetchCacheMode::kDefault, - base::Bind(&ImageDownloaderBase::DidFetchImage, - base::Unretained(this), callback))); - return true; + base::BindOnce(&ImageDownloaderBase::DidFetchImage, + base::Unretained(this), std::move(callback)))); } void ImageDownloaderBase::DidFetchImage( - const DownloadCallback& callback, + DownloadCallback callback, MultiResolutionImageResourceFetcher* fetcher, const std::vector<SkBitmap>& images) { int32_t http_status_code = fetcher->http_status_code(); @@ -121,7 +118,7 @@ void ImageDownloaderBase::DidFetchImage( } // |this| may be destructed after callback is run. - callback.Run(http_status_code, images); + std::move(callback).Run(http_status_code, images); } void ImageDownloaderBase::OnDestruct() { diff --git a/chromium/content/renderer/image_downloader/image_downloader_base.h b/chromium/content/renderer/image_downloader/image_downloader_base.h index c444bc3cb84..0c479fef5ec 100644 --- a/chromium/content/renderer/image_downloader/image_downloader_base.h +++ b/chromium/content/renderer/image_downloader/image_downloader_base.h @@ -28,13 +28,13 @@ class ImageDownloaderBase : public RenderFrameObserver, ~ImageDownloaderBase() override; using DownloadCallback = - base::Callback<void(int32_t, const std::vector<SkBitmap>&)>; - // Request to aynchronously download an image. When done, |callback| will be + base::OnceCallback<void(int32_t, const std::vector<SkBitmap>&)>; + // Request to asynchronously download an image. When done, |callback| will be // called. void DownloadImage(const GURL& url, bool is_favicon, bool bypass_cache, - const DownloadCallback& callback); + DownloadCallback callback); protected: // RenderFrameObserver implementation. @@ -42,19 +42,18 @@ class ImageDownloaderBase : public RenderFrameObserver, private: // Requests to fetch an image. When done, the image downloader is notified by - // way of DidFetchImage. Returns true if the request was successfully started, - // false otherwise. If the image is a favicon, cookies will not be sent nor - // accepted during download. If the image has multiple frames, all frames are - // returned. - bool FetchImage(const GURL& image_url, + // way of DidFetchImage. If the image is a favicon, cookies will not be sent + // nor accepted during download. If the image has multiple frames, all frames + // are returned. + void FetchImage(const GURL& image_url, bool is_favicon, bool bypass_cache, - const DownloadCallback& callback); + DownloadCallback callback); // This callback is triggered when FetchImage completes, either - // succesfully or with a failure. See FetchImage for more + // successfully or with a failure. See FetchImage for more // details. - void DidFetchImage(const DownloadCallback& callback, + void DidFetchImage(DownloadCallback callback, MultiResolutionImageResourceFetcher* fetcher, const std::vector<SkBitmap>& images); diff --git a/chromium/content/renderer/image_downloader/image_downloader_impl.cc b/chromium/content/renderer/image_downloader/image_downloader_impl.cc index 6a70cc48a18..f20ad653cf1 100644 --- a/chromium/content/renderer/image_downloader/image_downloader_impl.cc +++ b/chromium/content/renderer/image_downloader/image_downloader_impl.cc @@ -119,8 +119,9 @@ void ImageDownloaderImpl::DownloadImage(const GURL& image_url, ImageDownloaderBase::DownloadImage( image_url, is_favicon, bypass_cache, - base::Bind(&ImageDownloaderImpl::DidDownloadImage, base::Unretained(this), - max_bitmap_size, base::Passed(&callback))); + base::BindOnce(&ImageDownloaderImpl::DidDownloadImage, + base::Unretained(this), max_bitmap_size, + std::move(callback))); } void ImageDownloaderImpl::DidDownloadImage( diff --git a/chromium/content/renderer/image_downloader/single_image_downloader.cc b/chromium/content/renderer/image_downloader/single_image_downloader.cc index 760b2148720..682e3ee491f 100644 --- a/chromium/content/renderer/image_downloader/single_image_downloader.cc +++ b/chromium/content/renderer/image_downloader/single_image_downloader.cc @@ -24,8 +24,9 @@ void SingleImageDownloader::DownloadImage( new ImageDownloaderBase(render_frame.get())); ImageDownloaderBase* image_downloader_ptr = image_downloader.get(); image_downloader_ptr->DownloadImage( - url, false, false, base::Bind(&SingleImageDownloader::DidDownloadImage, - base::Passed(&image_downloader), cb)); + url, false, false, + base::BindOnce(&SingleImageDownloader::DidDownloadImage, + std::move(image_downloader), cb)); } // Static |