| Index: chrome/browser/search/suggestions/image_fetcher_impl.h
|
| diff --git a/chrome/browser/search/suggestions/image_fetcher_impl.h b/chrome/browser/search/suggestions/image_fetcher_impl.h
|
| index 61aaf042fab052867717eab1ad0162ccd5173d6a..b5f8bc590bc72c820ef8d8bf764502986dd2a64e 100644
|
| --- a/chrome/browser/search/suggestions/image_fetcher_impl.h
|
| +++ b/chrome/browser/search/suggestions/image_fetcher_impl.h
|
| @@ -12,8 +12,7 @@
|
|
|
| #include "base/callback.h"
|
| #include "base/macros.h"
|
| -#include "components/image_fetcher/image_data_fetcher.h"
|
| -#include "components/image_fetcher/image_decoder.h"
|
| +#include "chrome/browser/bitmap_fetcher/bitmap_fetcher.h"
|
| #include "components/image_fetcher/image_fetcher.h"
|
| #include "url/gurl.h"
|
|
|
| @@ -25,11 +24,11 @@
|
| class URLRequestContextGetter;
|
| }
|
|
|
| -// TODO(markusheintz): Move the ImageFetcherImpl to components/image_fetcher
|
| namespace suggestions {
|
|
|
| // image_fetcher::ImageFetcher implementation.
|
| -class ImageFetcherImpl : public image_fetcher::ImageFetcher {
|
| +class ImageFetcherImpl : public image_fetcher::ImageFetcher,
|
| + public chrome::BitmapFetcherDelegate {
|
| public:
|
| explicit ImageFetcherImpl(net::URLRequestContextGetter* url_request_context);
|
| ~ImageFetcherImpl() override;
|
| @@ -44,21 +43,31 @@
|
| override;
|
|
|
| private:
|
| + // Inherited from BitmapFetcherDelegate.
|
| + void OnFetchComplete(const GURL& image_url, const SkBitmap* bitmap) override;
|
| +
|
| using CallbackVector =
|
| std::vector<base::Callback<void(const std::string&, const gfx::Image&)>>;
|
|
|
| - // State related to an image fetch (id, pending callbacks).
|
| + // State related to an image fetch (id, image_url, fetcher, pending
|
| + // callbacks).
|
| struct ImageRequest {
|
| ImageRequest();
|
| + // Struct takes ownership of |f|.
|
| + explicit ImageRequest(chrome::BitmapFetcher* f);
|
| ImageRequest(const ImageRequest& other);
|
| ~ImageRequest();
|
|
|
| void swap(ImageRequest* other) {
|
| std::swap(id, other->id);
|
| + std::swap(image_url, other->image_url);
|
| std::swap(callbacks, other->callbacks);
|
| + std::swap(fetcher, other->fetcher);
|
| }
|
|
|
| std::string id;
|
| + GURL image_url;
|
| + chrome::BitmapFetcher* fetcher;
|
| // Queue for pending callbacks, which may accumulate while the request is in
|
| // flight.
|
| CallbackVector callbacks;
|
| @@ -66,26 +75,13 @@
|
|
|
| using ImageRequestMap = std::map<const GURL, ImageRequest>;
|
|
|
| - // Processes image URL fetched events. This is the continuation method used
|
| - // for creating callbacks that are passed to the ImageDataFetcher.
|
| - void OnImageURLFetched(const GURL& image_url, const std::string& image_data);
|
| -
|
| - // Processes image decoded events. This is the continuation method used for
|
| - // creating callbacks that are passed to the ImageDecoder.
|
| - void OnImageDecoded(const GURL& image_url, const gfx::Image& image);
|
| -
|
| + // Map from each image URL to the request information (associated website
|
| + // url, fetcher, pending callbacks).
|
| + ImageRequestMap pending_net_requests_;
|
|
|
| image_fetcher::ImageFetcherDelegate* delegate_;
|
|
|
| net::URLRequestContextGetter* url_request_context_;
|
| -
|
| - std::unique_ptr<image_fetcher::ImageDecoder> image_decoder_;
|
| -
|
| - std::unique_ptr<image_fetcher::ImageDataFetcher> image_data_fetcher_;
|
| -
|
| - // Map from each image URL to the request information (associated website
|
| - // url, fetcher, pending callbacks).
|
| - ImageRequestMap pending_net_requests_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ImageFetcherImpl);
|
| };
|
|
|