Chromium Code Reviews| Index: components/history/core/browser/history_backend.cc |
| diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc |
| index 2a9e668d2b9423af8984be5d3b8469241c5d9577..6936f05d920513155f351690e416e3fdefe161fe 100644 |
| --- a/components/history/core/browser/history_backend.cc |
| +++ b/components/history/core/browser/history_backend.cc |
| @@ -1633,8 +1633,9 @@ void HistoryBackend::MergeFavicon( |
| thumbnail_db_->DeleteFaviconBitmap(bitmap_id_sizes[0].bitmap_id); |
| favicon_sizes.erase(favicon_sizes.begin()); |
| } |
| - thumbnail_db_->AddFaviconBitmap(favicon_id, bitmap_data, base::Time::Now(), |
| - pixel_size); |
| + thumbnail_db_->AddFaviconBitmap(favicon_id, bitmap_data, |
| + FaviconBitmapType::ON_VISIT, |
| + base::Time::Now(), pixel_size); |
| favicon_sizes.push_back(pixel_size); |
| } |
| @@ -1695,9 +1696,10 @@ void HistoryBackend::MergeFavicon( |
| // Add the favicon bitmap as expired as it is not consistent with the |
| // merged in data. |
| - thumbnail_db_->AddFaviconBitmap( |
| - favicon_id, bitmaps_to_copy[j].bitmap_data, base::Time(), |
| - bitmaps_to_copy[j].pixel_size); |
| + thumbnail_db_->AddFaviconBitmap(favicon_id, |
| + bitmaps_to_copy[j].bitmap_data, |
| + FaviconBitmapType::ON_VISIT, base::Time(), |
| + bitmaps_to_copy[j].pixel_size); |
| favicon_sizes.push_back(bitmaps_to_copy[j].pixel_size); |
| favicon_bitmaps_copied = true; |
| @@ -1730,14 +1732,13 @@ void HistoryBackend::SetFavicons(const GURL& page_url, |
| const GURL& icon_url, |
| const std::vector<SkBitmap>& bitmaps) { |
| SetFaviconsImpl(page_url, icon_type, icon_url, bitmaps, |
| - /*bitmaps_are_expired=*/false); |
| + FaviconBitmapType::ON_VISIT); |
| } |
| -bool HistoryBackend::SetLastResortFavicons( |
| - const GURL& page_url, |
| - favicon_base::IconType icon_type, |
| - const GURL& icon_url, |
| - const std::vector<SkBitmap>& bitmaps) { |
| +bool HistoryBackend::SetOnDemandFavicons(const GURL& page_url, |
| + favicon_base::IconType icon_type, |
| + const GURL& icon_url, |
| + const std::vector<SkBitmap>& bitmaps) { |
| if (!thumbnail_db_ || !db_) |
| return false; |
| @@ -1748,7 +1749,7 @@ bool HistoryBackend::SetLastResortFavicons( |
| } |
| return SetFaviconsImpl(page_url, icon_type, icon_url, bitmaps, |
| - /*bitmaps_are_expired=*/true); |
| + FaviconBitmapType::ON_DEMAND); |
| } |
| void HistoryBackend::SetFaviconsOutOfDateForPage(const GURL& page_url) { |
| @@ -1765,6 +1766,14 @@ void HistoryBackend::SetFaviconsOutOfDateForPage(const GURL& page_url) { |
| ScheduleCommit(); |
| } |
| +void HistoryBackend::TouchOnDemandFavicon(const GURL& icon_url) { |
| + if (!thumbnail_db_) |
| + return; |
| + |
| + thumbnail_db_->TouchOnDemandFavicon(icon_url, Time::Now()); |
| + ScheduleCommit(); |
| +} |
| + |
| void HistoryBackend::SetImportedFavicons( |
| const favicon_base::FaviconUsageDataList& favicon_usage) { |
| if (!db_ || !thumbnail_db_) |
| @@ -1830,7 +1839,7 @@ bool HistoryBackend::SetFaviconsImpl(const GURL& page_url, |
| favicon_base::IconType icon_type, |
| const GURL& icon_url, |
| const std::vector<SkBitmap>& bitmaps, |
| - bool bitmaps_are_expired) { |
| + FaviconBitmapType type) { |
| if (!thumbnail_db_ || !db_) |
| return false; |
| @@ -1846,11 +1855,9 @@ bool HistoryBackend::SetFaviconsImpl(const GURL& page_url, |
| } |
| bool favicon_data_modified = false; |
| - if (favicon_created || !bitmaps_are_expired) |
| - favicon_data_modified = SetFaviconBitmaps(icon_id, bitmaps); |
| - |
| - if (favicon_created && bitmaps_are_expired) |
| - thumbnail_db_->SetFaviconOutOfDate(icon_id); |
| + if (favicon_created || type == FaviconBitmapType::ON_VISIT) { |
| + favicon_data_modified = SetFaviconBitmaps(icon_id, bitmaps, type); |
| + } |
| std::vector<favicon_base::FaviconID> icon_ids(1u, icon_id); |
| bool mapping_changed = |
| @@ -1904,7 +1911,8 @@ void HistoryBackend::UpdateFaviconMappingsAndFetchImpl( |
| } |
| bool HistoryBackend::SetFaviconBitmaps(favicon_base::FaviconID icon_id, |
| - const std::vector<SkBitmap>& bitmaps) { |
| + const std::vector<SkBitmap>& bitmaps, |
| + FaviconBitmapType type) { |
|
pkotwicz
2017/06/07 17:40:52
Please add a comment saying that the this function
jkrcal
2017/06/09 16:38:37
Done (in the header).
|
| std::vector<FaviconBitmapIDSize> bitmap_id_sizes; |
| thumbnail_db_->GetFaviconBitmapIDSizes(icon_id, &bitmap_id_sizes); |
| @@ -1941,11 +1949,12 @@ bool HistoryBackend::SetFaviconBitmaps(favicon_base::FaviconID icon_id, |
| } else { |
| if (!favicon_bitmaps_changed && |
| IsFaviconBitmapDataEqual(bitmap_id, match_it->first)) { |
| - thumbnail_db_->SetFaviconBitmapLastUpdateTime(bitmap_id, |
| - base::Time::Now()); |
| + thumbnail_db_->SetFaviconBitmapLastUpdateTime( |
| + bitmap_id, base::Time::Now() /* new last updated time */); |
| } else { |
| - thumbnail_db_->SetFaviconBitmap(bitmap_id, match_it->first, |
| - base::Time::Now()); |
| + thumbnail_db_->SetFaviconBitmap( |
| + bitmap_id, match_it->first, |
| + base::Time::Now() /* new last updated time */); |
| favicon_bitmaps_changed = true; |
| } |
| to_add.erase(match_it); |
| @@ -1953,8 +1962,10 @@ bool HistoryBackend::SetFaviconBitmaps(favicon_base::FaviconID icon_id, |
| } |
| for (size_t i = 0; i < to_add.size(); ++i) { |
| - thumbnail_db_->AddFaviconBitmap(icon_id, to_add[i].first, base::Time::Now(), |
| - to_add[i].second); |
| + thumbnail_db_->AddFaviconBitmap( |
| + icon_id, to_add[i].first, type, |
| + base::Time::Now() /* new last updated / last requested time */, |
| + to_add[i].second); |
| favicon_bitmaps_changed = true; |
| } |