Index: chrome/browser/history/history_backend.h |
diff --git a/chrome/browser/history/history_backend.h b/chrome/browser/history/history_backend.h |
index 6d50cc18f68ebc0dcb8f6be4751bcbb7353e24af..4ebf97380fd9c47334838d9fd01a8225b88f4691 100644 |
--- a/chrome/browser/history/history_backend.h |
+++ b/chrome/browser/history/history_backend.h |
@@ -40,6 +40,10 @@ class CommitLaterTask; |
class HistoryPublisher; |
class VisitFilter; |
+// The maximum number of favicon bitmaps stored for a single page. |
+// Exposed for use in unittests. |
+extern const size_t kMaxFaviconsPerPage; |
+ |
// *See the .cc file for more information on the design.* |
// |
// Internal history implementation which does most of the work of the history |
@@ -250,10 +254,12 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>, |
void GetFavicon(scoped_refptr<GetFaviconRequest> request, |
const GURL& icon_url, |
+ const gfx::Size& pixel_size, |
int icon_types); |
void GetFaviconForURL(scoped_refptr<GetFaviconRequest> request, |
const GURL& page_url, |
+ const gfx::Size& pixel_size, |
int icon_types); |
void GetFaviconForID(scoped_refptr<GetFaviconRequest> request, FaviconID id); |
@@ -261,11 +267,13 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>, |
void SetFavicon(const GURL& page_url, |
const GURL& icon_url, |
scoped_refptr<base::RefCountedMemory> data, |
+ const gfx::Size& pixel_size, |
IconType icon_type); |
void UpdateFaviconMappingAndFetch(scoped_refptr<GetFaviconRequest> request, |
const GURL& page_url, |
const GURL& icon_url, |
+ const gfx::Size& pixel_size, |
IconType icon_type); |
void SetFaviconOutOfDateForPage(const GURL& page_url); |
@@ -464,6 +472,7 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>, |
FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, MigrationVisitSource); |
FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, MigrationIconMapping); |
FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, SetFaviconMapping); |
+ FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, ExceedPageFaviconLimit); |
FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, AddOrUpdateIconMapping); |
FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetMostRecentVisits); |
FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, GetFaviconForURL); |
@@ -587,12 +596,20 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>, |
const GURL* page_url, |
const GURL& icon_url, |
scoped_refptr<GetFaviconRequest> request, |
+ const gfx::Size& requested_size, |
int icon_type); |
+ // Returns the FaviconID from |favicon_id_size_listing| whose size most |
+ // closely matches |desired_pixel_size|. |
+ FaviconID GetFaviconID( |
+ const std::vector<FaviconIDAndSize>& favicon_id_size_listing, |
+ const gfx::Size& desired_pixel_size) const; |
+ |
// Sets the favicon url id for page_url to id. This will also broadcast |
// notifications as necessary. |
void SetFaviconMapping(const GURL& page_url, |
FaviconID id, |
+ const gfx::Size& pixel_size, |
IconType icon_type); |
// Updates the FaviconID associated with the url of a page. If there is an |
@@ -602,6 +619,7 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>, |
// the replaced FaviconID is set in |replaced_icon_id|. |
bool AddOrUpdateIconMapping(const GURL& page_url, |
FaviconID id, |
+ const gfx::Size& pixel_size, |
IconType icon_type, |
FaviconID* replaced_icon_id); |
@@ -650,11 +668,12 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>, |
// If there is a favicon for |page_url| and one of the types in |icon_types|, |
// |favicon| is set appropriately and true is returned. |
bool GetFaviconFromDB(const GURL& page_url, |
+ const gfx::Size& pixel_size, |
int icon_types, |
FaviconData* favicon); |
- // Get favicon by the given |favicon_id|, the |favicon| is set appropriately |
- // and true if returned on success, otherwise false is returned. |
+ // Get favicon by the given |favicon_id|. The |favicon| is set appropriately. |
+ // Returns true on success. |
bool GetFaviconFromDB(FaviconID favicon_id, FaviconData* favicon); |
// Notify any observers of an addition to the visit database. |