| OLD | NEW |
| 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 COMPONENTS_HISTORY_CORE_BROWSER_THUMBNAIL_DATABASE_H_ | 5 #ifndef COMPONENTS_HISTORY_CORE_BROWSER_THUMBNAIL_DATABASE_H_ |
| 6 #define COMPONENTS_HISTORY_CORE_BROWSER_THUMBNAIL_DATABASE_H_ | 6 #define COMPONENTS_HISTORY_CORE_BROWSER_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 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 bool GetFaviconBitmaps(favicon_base::FaviconID icon_id, | 78 bool GetFaviconBitmaps(favicon_base::FaviconID icon_id, |
| 79 std::vector<FaviconBitmap>* favicon_bitmaps); | 79 std::vector<FaviconBitmap>* favicon_bitmaps); |
| 80 | 80 |
| 81 // Gets the last updated time, bitmap data, and pixel size of the favicon | 81 // Gets the last updated time, bitmap data, and pixel size of the favicon |
| 82 // bitmap at |bitmap_id|. Returns true if successful. | 82 // bitmap at |bitmap_id|. Returns true if successful. |
| 83 bool GetFaviconBitmap(FaviconBitmapID bitmap_id, | 83 bool GetFaviconBitmap(FaviconBitmapID bitmap_id, |
| 84 base::Time* last_updated, | 84 base::Time* last_updated, |
| 85 scoped_refptr<base::RefCountedMemory>* png_icon_data, | 85 scoped_refptr<base::RefCountedMemory>* png_icon_data, |
| 86 gfx::Size* pixel_size); | 86 gfx::Size* pixel_size); |
| 87 | 87 |
| 88 // Gets the last requested time for the favicon bitmap at |bitmap_id|. |
| 89 // Returns true if successful. |
| 90 bool GetFaviconBitmapLastRequestedTime(FaviconBitmapID bitmap_id, |
| 91 base::Time* time); |
| 92 |
| 88 // Adds a bitmap component at |pixel_size| for the favicon with |icon_id|. | 93 // Adds a bitmap component at |pixel_size| for the favicon with |icon_id|. |
| 89 // Only favicons representing a .ico file should have multiple favicon bitmaps | 94 // Only favicons representing a .ico file should have multiple favicon bitmaps |
| 90 // per favicon. | 95 // per favicon. |
| 91 // |icon_data| is the png encoded data. | 96 // |icon_data| is the png encoded data. |
| 92 // The |time| indicates the access time, and is used to detect when the | 97 // The |time| indicates the access time, and is used to detect when the |
| 93 // favicon should be refreshed. | 98 // favicon should be refreshed. |
| 94 // |pixel_size| is the pixel dimensions of |icon_data|. | 99 // |pixel_size| is the pixel dimensions of |icon_data|. |
| 95 // Returns the id of the added bitmap or 0 if unsuccessful. | 100 // Returns the id of the added bitmap or 0 if unsuccessful. |
| 96 FaviconBitmapID AddFaviconBitmap( | 101 FaviconBitmapID AddFaviconBitmap( |
| 97 favicon_base::FaviconID icon_id, | 102 favicon_base::FaviconID icon_id, |
| 98 const scoped_refptr<base::RefCountedMemory>& icon_data, | 103 const scoped_refptr<base::RefCountedMemory>& icon_data, |
| 99 base::Time time, | 104 base::Time time, |
| 100 const gfx::Size& pixel_size); | 105 const gfx::Size& pixel_size); |
| 101 | 106 |
| 102 // Sets the bitmap data and the last updated time for the favicon bitmap at | 107 // Sets the bitmap data and the last updated time for the favicon bitmap at |
| 103 // |bitmap_id|. | 108 // |bitmap_id|. |
| 104 // Returns true if successful. | 109 // Returns true if successful. |
| 105 bool SetFaviconBitmap(FaviconBitmapID bitmap_id, | 110 bool SetFaviconBitmap(FaviconBitmapID bitmap_id, |
| 106 scoped_refptr<base::RefCountedMemory> bitmap_data, | 111 scoped_refptr<base::RefCountedMemory> bitmap_data, |
| 107 base::Time time); | 112 base::Time time); |
| 108 | 113 |
| 109 // Sets the last updated time for the favicon bitmap at |bitmap_id|. | 114 // Sets the last updated time for the favicon bitmap at |bitmap_id|. |
| 110 // Returns true if successful. | 115 // Returns true if successful. |
| 111 bool SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, | 116 bool SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, |
| 112 base::Time time); | 117 base::Time time); |
| 113 | 118 |
| 119 // Sets the last requested time for the favicon bitmap at |bitmap_id|. |
| 120 // Returns true if successful. |
| 121 bool SetFaviconBitmapLastRequestedTime(FaviconBitmapID bitmap_id, |
| 122 base::Time time); |
| 123 |
| 114 // Deletes the favicon bitmap with |bitmap_id|. | 124 // Deletes the favicon bitmap with |bitmap_id|. |
| 115 // Returns true if successful. | 125 // Returns true if successful. |
| 116 bool DeleteFaviconBitmap(FaviconBitmapID bitmap_id); | 126 bool DeleteFaviconBitmap(FaviconBitmapID bitmap_id); |
| 117 | 127 |
| 118 // Favicons ------------------------------------------------------------------ | 128 // Favicons ------------------------------------------------------------------ |
| 119 | 129 |
| 120 // Sets the the favicon as out of date. This will set |last_updated| for all | 130 // Sets the the favicon as out of date. This will set |last_updated| for all |
| 121 // of the bitmaps for |icon_id| to be out of date. | 131 // of the bitmaps for |icon_id| to be out of date. |
| 122 bool SetFaviconOutOfDate(favicon_base::FaviconID icon_id); | 132 bool SetFaviconOutOfDate(favicon_base::FaviconID icon_id); |
| 123 | 133 |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 // so failure causes any outer transaction to be rolled back. | 244 // so failure causes any outer transaction to be rolled back. |
| 235 bool RetainDataForPageUrls(const std::vector<GURL>& urls_to_keep); | 245 bool RetainDataForPageUrls(const std::vector<GURL>& urls_to_keep); |
| 236 | 246 |
| 237 private: | 247 private: |
| 238 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, RetainDataForPageUrls); | 248 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, RetainDataForPageUrls); |
| 239 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, Version3); | 249 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, Version3); |
| 240 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, Version4); | 250 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, Version4); |
| 241 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, Version5); | 251 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, Version5); |
| 242 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, Version6); | 252 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, Version6); |
| 243 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, Version7); | 253 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, Version7); |
| 254 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, Version8); |
| 244 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, WildSchema); | 255 FRIEND_TEST_ALL_PREFIXES(ThumbnailDatabaseTest, WildSchema); |
| 245 | 256 |
| 246 // Open database on a given filename. If the file does not exist, | 257 // Open database on a given filename. If the file does not exist, |
| 247 // it is created. | 258 // it is created. |
| 248 // |db| is the database to open. | 259 // |db| is the database to open. |
| 249 // |db_name| is a path to the database file. | 260 // |db_name| is a path to the database file. |
| 250 sql::InitStatus OpenDatabase(sql::Connection* db, | 261 sql::InitStatus OpenDatabase(sql::Connection* db, |
| 251 const base::FilePath& db_name); | 262 const base::FilePath& db_name); |
| 252 | 263 |
| 253 // Helper function to implement internals of Init(). This allows | 264 // Helper function to implement internals of Init(). This allows |
| 254 // Init() to retry in case of failure, since some failures run | 265 // Init() to retry in case of failure, since some failures run |
| 255 // recovery code. | 266 // recovery code. |
| 256 sql::InitStatus InitImpl(const base::FilePath& db_name); | 267 sql::InitStatus InitImpl(const base::FilePath& db_name); |
| 257 | 268 |
| 258 // Helper function to handle cleanup on upgrade failures. | 269 // Helper function to handle cleanup on upgrade failures. |
| 259 sql::InitStatus CantUpgradeToVersion(int cur_version); | 270 sql::InitStatus CantUpgradeToVersion(int cur_version); |
| 260 | 271 |
| 261 // Adds support for size in favicons table. | 272 // Adds support for size in favicons table. |
| 262 bool UpgradeToVersion6(); | 273 bool UpgradeToVersion6(); |
| 263 | 274 |
| 264 // Removes sizes column. | 275 // Removes sizes column. |
| 265 bool UpgradeToVersion7(); | 276 bool UpgradeToVersion7(); |
| 266 | 277 |
| 278 // Adds support for bitmap usage tracking. |
| 279 bool UpgradeToVersion8(); |
| 280 |
| 267 // Returns true if the |favicons| database is missing a column. | 281 // Returns true if the |favicons| database is missing a column. |
| 268 bool IsFaviconDBStructureIncorrect(); | 282 bool IsFaviconDBStructureIncorrect(); |
| 269 | 283 |
| 270 sql::Connection db_; | 284 sql::Connection db_; |
| 271 sql::MetaTable meta_table_; | 285 sql::MetaTable meta_table_; |
| 272 | 286 |
| 273 HistoryClient* history_client_; | 287 HistoryClient* history_client_; |
| 274 }; | 288 }; |
| 275 | 289 |
| 276 } // namespace history | 290 } // namespace history |
| 277 | 291 |
| 278 #endif // COMPONENTS_HISTORY_CORE_BROWSER_THUMBNAIL_DATABASE_H_ | 292 #endif // COMPONENTS_HISTORY_CORE_BROWSER_THUMBNAIL_DATABASE_H_ |
| OLD | NEW |