Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(211)

Unified Diff: components/favicon/core/favicon_service.h

Issue 2698473004: Split FaviconService and FaviconServiceImpl. (Closed)
Patch Set: Revert changes in ios/.../history_collection_view_controller_unittest.mm Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/favicon/core/DEPS ('k') | components/favicon/core/favicon_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/favicon/core/favicon_service.h
diff --git a/components/favicon/core/favicon_service.h b/components/favicon/core/favicon_service.h
index 9585934169f21c7407aff49adb9fa1718a3a30af..10a8174747ea6890cb385dae6e1d2b2649ff97c1 100644
--- a/components/favicon/core/favicon_service.h
+++ b/components/favicon/core/favicon_service.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -11,9 +11,6 @@
#include <vector>
#include "base/callback.h"
-#include "base/containers/hash_tables.h"
-#include "base/macros.h"
-#include "base/memory/ref_counted.h"
#include "base/task/cancelable_task_tracker.h"
#include "components/favicon_base/favicon_callback.h"
#include "components/favicon_base/favicon_types.h"
@@ -22,25 +19,10 @@
class GURL;
-namespace history {
-class HistoryService;
-}
-
namespace favicon {
-class FaviconClient;
-
-// The favicon service provides methods to access favicons. It calls the history
-// backend behind the scenes. The callbacks are run asynchronously, even in the
-// case of an error.
class FaviconService : public KeyedService {
public:
- // The FaviconClient must outlive the constructed FaviconService.
- FaviconService(std::unique_ptr<FaviconClient> favicon_client,
- history::HistoryService* history_service);
-
- ~FaviconService() override;
-
// We usually pass parameters with pointer to avoid copy. This function is a
// helper to run FaviconResultsCallback with pointer parameters.
static void FaviconResultsCallbackRunner(
@@ -57,22 +39,22 @@ class FaviconService : public KeyedService {
// representations for all of the scale factors supported by the platform
// (e.g. MacOS). If data is unavailable for some or all of the scale factors,
// the bitmaps with the best matching sizes are resized.
- base::CancelableTaskTracker::TaskId GetFaviconImage(
+ virtual base::CancelableTaskTracker::TaskId GetFaviconImage(
const GURL& icon_url,
const favicon_base::FaviconImageCallback& callback,
- base::CancelableTaskTracker* tracker);
+ base::CancelableTaskTracker* tracker) = 0;
// Requests the favicon at |icon_url| of |icon_type| of size
// |desired_size_in_pixel|. If there is no favicon of size
// |desired_size_in_pixel|, the favicon bitmap which best matches
// |desired_size_in_pixel| is resized. If |desired_size_in_pixel| is 0,
// the largest favicon bitmap is returned.
- base::CancelableTaskTracker::TaskId GetRawFavicon(
+ virtual base::CancelableTaskTracker::TaskId GetRawFavicon(
const GURL& icon_url,
favicon_base::IconType icon_type,
int desired_size_in_pixel,
const favicon_base::FaviconRawBitmapCallback& callback,
- base::CancelableTaskTracker* tracker);
+ base::CancelableTaskTracker* tracker) = 0;
// The first argument for |callback| is the set of bitmaps for the passed in
// URL and icon types whose pixel sizes best match the passed in
@@ -81,12 +63,12 @@ class FaviconService : public KeyedService {
// result for each of the resource scale factors. There are less entries if a
// single/ result is the best bitmap to use for several resource scale
// factors.
- base::CancelableTaskTracker::TaskId GetFavicon(
+ virtual base::CancelableTaskTracker::TaskId GetFavicon(
const GURL& icon_url,
favicon_base::IconType icon_type,
int desired_size_in_dip,
const favicon_base::FaviconResultsCallback& callback,
- base::CancelableTaskTracker* tracker);
+ base::CancelableTaskTracker* tracker) = 0;
//////////////////////////////////////////////////////////////////////////////
// Methods to request favicon bitmaps from the history backend for |page_url|.
@@ -99,10 +81,10 @@ class FaviconService : public KeyedService {
// supported by the platform (e.g. MacOS). If data is unavailable for some or
// all of the scale factors, the bitmaps with the best matching sizes are
// resized.
- base::CancelableTaskTracker::TaskId GetFaviconImageForPageURL(
+ virtual base::CancelableTaskTracker::TaskId GetFaviconImageForPageURL(
const GURL& page_url,
const favicon_base::FaviconImageCallback& callback,
- base::CancelableTaskTracker* tracker);
+ base::CancelableTaskTracker* tracker) = 0;
// Requests the favicon for the page at |page_url| with one of |icon_types|
// and with |desired_size_in_pixel|. |icon_types| can be any combination of
@@ -113,12 +95,12 @@ class FaviconService : public KeyedService {
// |desired_size_in_pixel| is resized. If |desired_size_in_pixel| is 0,
// the largest favicon bitmap is returned. Results with a higher priority
// IconType are preferred over an exact match of the favicon bitmap size.
- base::CancelableTaskTracker::TaskId GetRawFaviconForPageURL(
+ virtual base::CancelableTaskTracker::TaskId GetRawFaviconForPageURL(
const GURL& page_url,
int icon_types,
int desired_size_in_pixel,
const favicon_base::FaviconRawBitmapCallback& callback,
- base::CancelableTaskTracker* tracker);
+ base::CancelableTaskTracker* tracker) = 0;
// See HistoryService::GetLargestFaviconForPageURL().
virtual base::CancelableTaskTracker::TaskId GetLargestRawFaviconForPageURL(
@@ -126,14 +108,14 @@ class FaviconService : public KeyedService {
const std::vector<int>& icon_types,
int minimum_size_in_pixels,
const favicon_base::FaviconRawBitmapCallback& callback,
- base::CancelableTaskTracker* tracker);
+ base::CancelableTaskTracker* tracker) = 0;
- base::CancelableTaskTracker::TaskId GetFaviconForPageURL(
+ virtual base::CancelableTaskTracker::TaskId GetFaviconForPageURL(
const GURL& page_url,
int icon_types,
int desired_size_in_dip,
const favicon_base::FaviconResultsCallback& callback,
- base::CancelableTaskTracker* tracker);
+ base::CancelableTaskTracker* tracker) = 0;
// Set the favicon mappings to |page_url| for |icon_types| in the history
// database.
@@ -155,42 +137,42 @@ class FaviconService : public KeyedService {
// in addition to 1x from the favicons which were just mapped to |page_url|
// are returned. If |desired_size_in_dip| is 0, the largest favicon bitmap is
// returned.
- base::CancelableTaskTracker::TaskId UpdateFaviconMappingsAndFetch(
+ virtual base::CancelableTaskTracker::TaskId UpdateFaviconMappingsAndFetch(
const GURL& page_url,
const std::vector<GURL>& icon_urls,
int icon_types,
int desired_size_in_dip,
const favicon_base::FaviconResultsCallback& callback,
- base::CancelableTaskTracker* tracker);
+ base::CancelableTaskTracker* tracker) = 0;
// Used to request a bitmap for the favicon with |favicon_id| which is not
// resized from the size it is stored at in the database. If there are
// multiple favicon bitmaps for |favicon_id|, the largest favicon bitmap is
// returned.
- base::CancelableTaskTracker::TaskId GetLargestRawFaviconForID(
+ virtual base::CancelableTaskTracker::TaskId GetLargestRawFaviconForID(
favicon_base::FaviconID favicon_id,
const favicon_base::FaviconRawBitmapCallback& callback,
- base::CancelableTaskTracker* tracker);
+ base::CancelableTaskTracker* tracker) = 0;
// Marks all types of favicon for the page as being out of date.
- void SetFaviconOutOfDateForPage(const GURL& page_url);
+ virtual void SetFaviconOutOfDateForPage(const GURL& page_url) = 0;
// Allows the importer to set many favicons for many pages at once. The pages
// must exist, any favicon sets for unknown pages will be discarded. Existing
// favicons will not be overwritten.
- void SetImportedFavicons(
- const favicon_base::FaviconUsageDataList& favicon_usage);
+ virtual void SetImportedFavicons(
+ const favicon_base::FaviconUsageDataList& favicon_usage) = 0;
// Set the favicon for |page_url| for |icon_type| in the thumbnail database.
// Unlike SetFavicons(), this method will not delete preexisting bitmap data
// which is associated to |page_url| if at all possible. Use this method if
// the favicon bitmaps for any of ui::GetSupportedScaleFactors() are not
// known.
- void MergeFavicon(const GURL& page_url,
- const GURL& icon_url,
- favicon_base::IconType icon_type,
- scoped_refptr<base::RefCountedMemory> bitmap_data,
- const gfx::Size& pixel_size);
+ virtual void MergeFavicon(const GURL& page_url,
+ const GURL& icon_url,
+ favicon_base::IconType icon_type,
+ scoped_refptr<base::RefCountedMemory> bitmap_data,
+ const gfx::Size& pixel_size) = 0;
// Set the favicon for |page_url| for |icon_type| in the thumbnail database.
// |icon_url| is the single favicon to map to |page_url|. Mappings from
@@ -202,53 +184,15 @@ class FaviconService : public KeyedService {
// TODO(pkotwicz): Save unresized favicon bitmaps to the database.
// TODO(pkotwicz): Support adding favicons for multiple icon URLs to the
// thumbnail database.
- void SetFavicons(const GURL& page_url,
- const GURL& icon_url,
- favicon_base::IconType icon_type,
- const gfx::Image& image);
+ virtual void SetFavicons(const GURL& page_url,
+ const GURL& icon_url,
+ favicon_base::IconType icon_type,
+ const gfx::Image& image) = 0;
// Avoid repeated requests to download missing favicon.
- void UnableToDownloadFavicon(const GURL& icon_url);
- bool WasUnableToDownloadFavicon(const GURL& icon_url) const;
- void ClearUnableToDownloadFavicons();
-
- private:
- typedef uint32_t MissingFaviconURLHash;
-
- // Helper function for GetFaviconImageForPageURL(), GetRawFaviconForPageURL()
- // and GetFaviconForPageURL().
- base::CancelableTaskTracker::TaskId GetFaviconForPageURLImpl(
- const GURL& page_url,
- int icon_types,
- const std::vector<int>& desired_sizes_in_pixel,
- const favicon_base::FaviconResultsCallback& callback,
- base::CancelableTaskTracker* tracker);
-
- // Intermediate callback for GetFaviconImage() and GetFaviconImageForPageURL()
- // so that history service can deal solely with FaviconResultsCallback.
- // Builds favicon_base::FaviconImageResult from |favicon_bitmap_results| and
- // runs |callback|.
- void RunFaviconImageCallbackWithBitmapResults(
- const favicon_base::FaviconImageCallback& callback,
- int desired_size_in_dip,
- const std::vector<favicon_base::FaviconRawBitmapResult>&
- favicon_bitmap_results);
-
- // Intermediate callback for GetRawFavicon() and GetRawFaviconForPageURL()
- // so that history service can deal solely with FaviconResultsCallback.
- // Resizes favicon_base::FaviconRawBitmapResult if necessary and runs
- // |callback|.
- void RunFaviconRawBitmapCallbackWithBitmapResults(
- const favicon_base::FaviconRawBitmapCallback& callback,
- int desired_size_in_pixel,
- const std::vector<favicon_base::FaviconRawBitmapResult>&
- favicon_bitmap_results);
-
- base::hash_set<MissingFaviconURLHash> missing_favicon_urls_;
- std::unique_ptr<FaviconClient> favicon_client_;
- history::HistoryService* history_service_;
-
- DISALLOW_COPY_AND_ASSIGN(FaviconService);
+ virtual void UnableToDownloadFavicon(const GURL& icon_url) = 0;
+ virtual bool WasUnableToDownloadFavicon(const GURL& icon_url) const = 0;
+ virtual void ClearUnableToDownloadFavicons() = 0;
};
} // namespace favicon
« no previous file with comments | « components/favicon/core/DEPS ('k') | components/favicon/core/favicon_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698