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

Side by Side Diff: chrome/browser/history/thumbnail_database.h

Issue 10802066: Adds support for saving favicon size into history database. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_HISTORY_THUMBNAIL_DATABASE_H_ 5 #ifndef CHROME_BROWSER_HISTORY_THUMBNAIL_DATABASE_H_
6 #define CHROME_BROWSER_HISTORY_THUMBNAIL_DATABASE_H_ 6 #define CHROME_BROWSER_HISTORY_THUMBNAIL_DATABASE_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/gtest_prod_util.h" 10 #include "base/gtest_prod_util.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 // current thumbnail score and places it in |score| and returns 92 // current thumbnail score and places it in |score| and returns
93 // true. Returns false otherwise. 93 // true. Returns false otherwise.
94 bool ThumbnailScoreForId(URLID id, ThumbnailScore* score); 94 bool ThumbnailScoreForId(URLID id, ThumbnailScore* score);
95 95
96 // Called by the to delete all old thumbnails and make a clean table. 96 // Called by the to delete all old thumbnails and make a clean table.
97 // Returns true on success. 97 // Returns true on success.
98 bool RecreateThumbnailTable(); 98 bool RecreateThumbnailTable();
99 99
100 // Favicon Bitmaps ----------------------------------------------------------- 100 // Favicon Bitmaps -----------------------------------------------------------
101 101
102 // Returns a listing of the favicon bitmap ids and their associated pixel
103 // sizes for the favicon with |icon_id|. Returns true if the listing has at
104 // least one entry.
105 bool GetFaviconBitmapIDSizeListing(
sky 2012/08/21 20:16:56 GetFaviconBitmapIDSizes
106 FaviconID icon_id,
107 std::vector<FaviconBitmapIDSize>* bitmap_size_listing);
108
102 // Returns true if there are any matched bitmaps for the given |icon_id|. All 109 // Returns true if there are any matched bitmaps for the given |icon_id|. All
103 // matched results are returned if |favicon_bitmaps| is not NULL. 110 // matched results are returned if |favicon_bitmaps| is not NULL.
104 bool GetFaviconBitmaps(FaviconID icon_id, 111 bool GetFaviconBitmaps(FaviconID icon_id,
105 std::vector<FaviconBitmap>* favicon_bitmaps); 112 std::vector<FaviconBitmap>* favicon_bitmaps);
106 113
114 // Sets the bitmap data and the last updated time for the favicon bitmap at
115 // |bitmap_id|. Returns true if successful.
116 bool SetFaviconBitmap(FaviconBitmapID bitmap_id,
117 scoped_refptr<base::RefCountedMemory> icon_data,
118 base::Time time);
119
107 // Adds a bitmap component at |pixel_size| for the favicon with |icon_id|. 120 // Adds a bitmap component at |pixel_size| for the favicon with |icon_id|.
108 // Only favicons representing a .ico file should have multiple favicon bitmaps 121 // Only favicons representing a .ico file should have multiple favicon bitmaps
109 // per favicon. 122 // per favicon.
110 // |icon_data| is the png encoded data. 123 // |icon_data| is the png encoded data.
111 // The |time| indicates the access time, and is used to detect when the 124 // The |time| indicates the access time, and is used to detect when the
112 // favicon should be refreshed. 125 // favicon should be refreshed.
113 // |pixel_size| is the pixel dimensions of |icon_data|. 126 // |pixel_size| is the pixel dimensions of |icon_data|.
114 // Returns the id of the added bitmap or 0 if unsuccessful. 127 // Returns the id of the added bitmap or 0 if unsuccessful.
115 FaviconBitmapID AddFaviconBitmap( 128 FaviconBitmapID AddFaviconBitmap(
116 FaviconID icon_id, 129 FaviconID icon_id,
117 const scoped_refptr<base::RefCountedMemory>& icon_data, 130 const scoped_refptr<base::RefCountedMemory>& icon_data,
118 base::Time time, 131 base::Time time,
119 const gfx::Size& pixel_size); 132 const gfx::Size& pixel_size);
120 133
121 // Deletes the favicon bitmaps for the favicon with with |icon_id|. 134 // Deletes the favicon bitmap with |bitmap_id|. Returns true if successful.
122 // Returns true if successful. 135 bool DeleteFaviconBitmap(FaviconBitmapID bitmap_id);
123 bool DeleteFaviconBitmapsForFavicon(FaviconID icon_id);
124 136
125 // Favicons ------------------------------------------------------------------ 137 // Favicons ------------------------------------------------------------------
126 138
127 // Updates the sizes associated with a favicon to |sizes|. See the comment 139 // Updates the sizes associated with a favicon to |sizes|. See the comment
128 // at the top of the .cc file for the format of the |sizes| parameter. 140 // at the top of the .cc file for the format of the |sizes| parameter.
129 bool SetFaviconSizes(FaviconID icon_id, const std::string& sizes); 141 bool SetFaviconSizes(FaviconID icon_id, const std::string& sizes);
130 142
131 // Sets the the favicon as out of date. This will set |last_updated| for all 143 // Sets the the favicon as out of date. This will set |last_updated| for all
132 // of the bitmaps for |icon_id| to be out of date. 144 // of the bitmaps for |icon_id| to be out of date.
133 bool SetFaviconOutOfDate(FaviconID icon_id); 145 bool SetFaviconOutOfDate(FaviconID icon_id);
134 146
135 // Returns the id of the entry in the favicon database with the specified url 147 // Returns the id of the entry in the favicon database with the specified url
136 // and icon type. If |required_icon_type| contains multiple icon types and 148 // and icon type. If |required_icon_type| contains multiple icon types and
137 // there are more than one matched icon in database, only one icon will be 149 // there are more than one matched icon in database, only one icon will be
138 // returned in the priority of TOUCH_PRECOMPOSED_ICON, TOUCH_ICON, and 150 // returned in the priority of TOUCH_PRECOMPOSED_ICON, TOUCH_ICON, and
139 // FAVICON, and the icon type is returned in icon_type parameter if it is not 151 // FAVICON.
140 // NULL.
141 // Returns 0 if no entry exists for the specified url. 152 // Returns 0 if no entry exists for the specified url.
142 FaviconID GetFaviconIDForFaviconURL(const GURL& icon_url, 153 FaviconID GetFaviconIDForFaviconURL(const GURL& icon_url,
143 int required_icon_type, 154 int required_icon_type);
144 IconType* icon_type);
145
146 // Gets the png encoded favicon, last updated time, icon_url and icon_type for
147 // the specified favicon id.
148 // TODO(pkotwicz): Remove this function.
149 bool GetFavicon(FaviconID icon_id,
150 base::Time* last_updated,
151 scoped_refptr<base::RefCountedMemory>* png_icon_data,
152 GURL* icon_url,
153 IconType* icon_type);
154 155
155 // Gets the icon_url, icon_type and sizes for the specified |icon_id|. 156 // Gets the icon_url, icon_type and sizes for the specified |icon_id|.
156 bool GetFaviconHeader(FaviconID icon_id, 157 bool GetFaviconHeader(FaviconID icon_id,
157 GURL* icon_url, 158 GURL* icon_url,
158 IconType* icon_type, 159 IconType* icon_type,
159 std::string* sizes); 160 std::string* sizes);
160 161
161 // Adds the favicon URL and icon type to the favicon db, returning its id. 162 // Adds favicon with |icon_url| and |icon_type| to the favicon db, returning
163 // its id.
162 FaviconID AddFavicon(const GURL& icon_url, IconType icon_type); 164 FaviconID AddFavicon(const GURL& icon_url, IconType icon_type);
163 165
164 // Adds a favicon with a single bitmap. This call is equivalent to calling 166 // Adds a favicon with a single bitmap. This call is equivalent to calling
165 // AddFavicon, SetFaviconSizes, and AddFaviconBitmap. 167 // AddFavicon, SetFaviconSizes, and AddFaviconBitmap.
166 FaviconID AddFavicon(const GURL& icon_url, 168 FaviconID AddFavicon(const GURL& icon_url,
167 IconType icon_type, 169 IconType icon_type,
168 const std::string& sizes, 170 const std::string& sizes,
169 const scoped_refptr<base::RefCountedMemory>& icon_data, 171 const scoped_refptr<base::RefCountedMemory>& icon_data,
170 base::Time time, 172 base::Time time,
171 const gfx::Size& pixel_size); 173 const gfx::Size& pixel_size);
172 174
173 // Delete the favicon with the provided id. Returns false on failure 175 // Delete the favicon with the provided id. Returns false on failure
174 bool DeleteFavicon(FaviconID id); 176 bool DeleteFavicon(FaviconID id);
175 177
176 // Icon Mapping -------------------------------------------------------------- 178 // Icon Mapping --------------------------------------------------------------
177 // 179 //
178 // Returns true if there is a matched icon mapping for the given page and 180 // Returns true if there is a matched icon mapping for the given page and
179 // icon type. 181 // icon type.
180 // The matched icon mapping is returned in the icon_mapping parameter if it is 182 // The matched icon mapping is returned in the icon_mapping parameter if it is
181 // not NULL. 183 // not NULL.
182 bool GetIconMappingForPageURL(const GURL& page_url, 184
183 IconType required_icon_type, 185 // Returns true if there are icon mappings for the given page and icon type.
184 IconMapping* icon_mapping); 186 // If |required_icon_types| contains multiple icon types and there is more
187 // than one matched icon type in the database, icons of only a single type
188 // will be returned in the priority of TOUCH_PRECOMPOSED_ICON, TOUCH_ICON,
189 // and FAVICON.
190 // The matched icon mappings are returned in the |icon_mappings| parameter if
191 // it is not NULL.
192 bool GetIconMappingsForPageURL(const GURL& page_url,
193 int required_icon_types,
194 std::vector<IconMapping>* mapping_data);
185 195
186 // Returns true if there is any matched icon mapping for the given page. 196 // Returns true if there is any matched icon mapping for the given page.
187 // All matched icon mappings are returned in descent order of IconType if 197 // All matched icon mappings are returned in descent order of IconType if
188 // mapping_data is not NULL. 198 // mapping_data is not NULL.
189 bool GetIconMappingsForPageURL(const GURL& page_url, 199 bool GetIconMappingsForPageURL(const GURL& page_url,
190 std::vector<IconMapping>* mapping_data); 200 std::vector<IconMapping>* mapping_data);
191 201
192 // Adds a mapping between the given page_url and icon_id. 202 // Adds a mapping between the given page_url and icon_id.
193 // Returns the new mapping id if the adding succeeds, otherwise 0 is returned. 203 // Returns the new mapping id if the adding succeeds, otherwise 0 is returned.
194 IconMappingID AddIconMapping(const GURL& page_url, FaviconID icon_id); 204 IconMappingID AddIconMapping(const GURL& page_url, FaviconID icon_id);
195 205
196 // Updates the page and icon mapping for the given mapping_id with the given 206 // Updates the page and icon mapping for the given mapping_id with the given
197 // icon_id. 207 // icon_id.
198 // Returns true if the update succeeded. 208 // Returns true if the update succeeded.
199 bool UpdateIconMapping(IconMappingID mapping_id, FaviconID icon_id); 209 bool UpdateIconMapping(IconMappingID mapping_id, FaviconID icon_id);
200 210
201 // Deletes the icon mapping entries for the given page url. 211 // Deletes the icon mapping entries for the given page url.
202 // Returns true if the deletion succeeded. 212 // Returns true if the deletion succeeded.
203 bool DeleteIconMappings(const GURL& page_url); 213 bool DeleteIconMappings(const GURL& page_url);
204 214
215 // Deletes the icon mapping with |mapping_id|.
216 // Returns true if the deletion succeeded.
217 bool DeleteIconMapping(IconMappingID mapping_id);
218
205 // Checks whether a favicon is used by any URLs in the database. 219 // Checks whether a favicon is used by any URLs in the database.
206 bool HasMappingFor(FaviconID id); 220 bool HasMappingFor(FaviconID id);
207 221
208 // Clones the existing mappings from |old_page_url| if |new_page_url| has no 222 // Clones the existing mappings from |old_page_url| if |new_page_url| has no
209 // mappings. Otherwise, will leave mappings alone. 223 // mappings. Otherwise, will leave mappings alone.
210 bool CloneIconMapping(const GURL& old_page_url, const GURL& new_page_url); 224 bool CloneIconMappings(const GURL& old_page_url, const GURL& new_page_url);
211 225
212 // The class to enumerate icon mappings. Use InitIconMappingEnumerator to 226 // The class to enumerate icon mappings. Use InitIconMappingEnumerator to
213 // initialize. 227 // initialize.
214 class IconMappingEnumerator { 228 class IconMappingEnumerator {
215 public: 229 public:
216 IconMappingEnumerator(); 230 IconMappingEnumerator();
217 ~IconMappingEnumerator(); 231 ~IconMappingEnumerator();
218 232
219 // Get the next icon mapping, return false if no more are available. 233 // Get the next icon mapping, return false if no more are available.
220 bool GetNextIconMapping(IconMapping* icon_mapping); 234 bool GetNextIconMapping(IconMapping* icon_mapping);
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 const HistoryPublisher* history_publisher_; 375 const HistoryPublisher* history_publisher_;
362 376
363 // True if migration to TopSites has been done and the thumbnails 377 // True if migration to TopSites has been done and the thumbnails
364 // table should not be used. 378 // table should not be used.
365 bool use_top_sites_; 379 bool use_top_sites_;
366 }; 380 };
367 381
368 } // namespace history 382 } // namespace history
369 383
370 #endif // CHROME_BROWSER_HISTORY_THUMBNAIL_DATABASE_H_ 384 #endif // CHROME_BROWSER_HISTORY_THUMBNAIL_DATABASE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698