Index: chrome/browser/history/history_types.h |
diff --git a/chrome/browser/history/history_types.h b/chrome/browser/history/history_types.h |
index 2408d4c5165a3c88034330705098abca9486ec2b..bd440840f405aab1f872a9bcd3b80a1888430b75 100644 |
--- a/chrome/browser/history/history_types.h |
+++ b/chrome/browser/history/history_types.h |
@@ -274,23 +274,6 @@ typedef std::vector<VisitRow> VisitVector; |
// used by HistoryBackend::AddVisits() to create new visits for a URL. |
typedef std::pair<base::Time, content::PageTransition> VisitInfo; |
-// Favicons ------------------------------------------------------------------- |
- |
-// Used by the importer to set favicons for imported bookmarks. |
-struct ImportedFaviconUsage { |
- ImportedFaviconUsage(); |
- ~ImportedFaviconUsage(); |
- |
- // The URL of the favicon. |
- GURL favicon_url; |
- |
- // The raw png-encoded data. |
- std::vector<unsigned char> png_data; |
- |
- // The list of URLs using this favicon. |
- std::set<GURL> urls; |
-}; |
- |
// PageVisit ------------------------------------------------------------------ |
// Represents a simplified version of a visit for external users. Normally, |
@@ -772,28 +755,59 @@ struct IconMapping { |
IconType icon_type; |
}; |
-// Defines the favicon stored in history backend. |
+// Defines a favicon bitmap stored in the history backend. |
+struct FaviconBitmapData { |
+ FaviconBitmapData(); |
+ ~FaviconBitmapData(); |
+ |
+ // Returns true if |bitmap_data| contains a valid bitmap. |
+ bool is_valid() const; |
+ |
+ // Indicates whether |bitmap_data| is expired. |
+ bool expired; |
+ |
+ // The bits of the bitmap. |
+ scoped_refptr<base::RefCountedMemory> bitmap_data; |
+ |
+ // The pixel dimensions of |bitmap_data|. |
+ gfx::Size pixel_size; |
+}; |
+ |
+// Defines the result of a query for favicon data. |
struct FaviconData { |
FaviconData(); |
~FaviconData(); |
- // Returns true if the icon is known and image has data. |
- bool is_valid(); |
+ // Returns true if the icon is known, |bitmaps| has at least one |
+ // FaviconBitmapData element and all of the FaviconBitmapData in |
+ // |urls| are valid. |
+ bool has_valid_bitmaps() const; |
- // Indicates whether the icon is known by the history backend. |
- bool known_icon; |
+ // Returns true if the data for at least one of the bitmaps is expired. |
+ bool expired() const; |
- // The bits of image. |
- scoped_refptr<base::RefCountedMemory> image_data; |
+ // Returns the |bitmap_data| of the first entry in |bitmaps|. If |bitmaps| is |
+ // empty a scoped_reptr pointing to NULL is returned instead. |
+ scoped_refptr<base::RefCountedMemory> first_bitmap() const; |
- // Indicates whether image is expired. |
- bool expired; |
+ // Indicates whether the icon is known to the history backend. |
+ bool known_icon; |
// The icon's URL. |
GURL icon_url; |
- // The type of favicon. |
- history::IconType icon_type; |
+ // The type of the favicon. |
+ IconType icon_type; |
+ |
+ // The sizes at which the favicon is available at from the web. For instance |
sky
2012/08/23 15:50:38
'available at' -> available
|
+ // if this object represents a .ico file with bitmaps of pixel sizes 16x16 |
+ // and 32x32, |sizes| will have two entries. |bitmaps| does not necessarily |
+ // have entries for each entry in |sizes|. |
sky
2012/08/23 15:50:38
Document ordering of sizes.
pkotwicz
2012/08/27 02:24:35
My implementation doesn't specify an ordering of s
|
+ std::vector<gfx::Size> sizes; |
+ |
+ // The bitmaps whose pixel sizes best match the optimal favicon size of 16x16 |
sky
2012/08/23 15:50:38
Won't this depend upon the query?
|
+ // for 1x and 32x32 for 2x. |
+ std::vector<FaviconBitmapData> bitmaps; |
}; |
// Defines a favicon bitmap stored in the history backend. |
@@ -817,6 +831,21 @@ struct FaviconBitmap { |
gfx::Size pixel_size; |
}; |
+// Used by the importer to set favicons for imported bookmarks. |
+struct ImportedFaviconUsage { |
+ ImportedFaviconUsage(); |
+ ~ImportedFaviconUsage(); |
+ |
+ // The URL of the favicon. |
+ GURL favicon_url; |
+ |
+ // The raw png-encoded data. |
+ std::vector<unsigned char> png_data; |
+ |
+ // The list of URLs using this favicon. |
+ std::set<GURL> urls; |
+}; |
+ |
// Abbreviated information about a visit. |
struct BriefVisitInfo { |
URLID url_id; |