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 9c24373f52b4a13f1cdf56c6819052d7168809e2..12bd7b8a133ab667e5e02104e2088500bc197e8e 100644 |
--- a/components/history/core/browser/history_backend.cc |
+++ b/components/history/core/browser/history_backend.cc |
@@ -1729,15 +1729,13 @@ void HistoryBackend::SetFavicons(const GURL& page_url, |
favicon_base::IconType icon_type, |
const GURL& icon_url, |
const std::vector<SkBitmap>& bitmaps) { |
- SetFaviconsImpl(page_url, icon_type, icon_url, bitmaps, |
- /*bitmaps_are_expired=*/false); |
+ SetFaviconsImpl(page_url, icon_type, icon_url, bitmaps, /*on_demand=*/false); |
} |
-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 +1746,7 @@ bool HistoryBackend::SetLastResortFavicons( |
} |
return SetFaviconsImpl(page_url, icon_type, icon_url, bitmaps, |
- /*bitmaps_are_expired=*/true); |
+ /*on_demand=*/true); |
} |
void HistoryBackend::SetFaviconsOutOfDateForPage(const GURL& page_url) { |
@@ -1765,6 +1763,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 +1836,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) { |
+ bool on_demand) { |
if (!thumbnail_db_ || !db_) |
return false; |
@@ -1846,11 +1852,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); |
jkrcal
2017/05/23 14:18:40
This operation is now performed implicitly in Thum
|
+ if (favicon_created || !on_demand) { |
+ favicon_data_modified = SetFaviconBitmaps(icon_id, bitmaps, on_demand); |
+ } |
std::vector<favicon_base::FaviconID> icon_ids(1u, icon_id); |
bool mapping_changed = |
@@ -1904,7 +1908,8 @@ void HistoryBackend::UpdateFaviconMappingsAndFetchImpl( |
} |
bool HistoryBackend::SetFaviconBitmaps(favicon_base::FaviconID icon_id, |
- const std::vector<SkBitmap>& bitmaps) { |
+ const std::vector<SkBitmap>& bitmaps, |
+ bool on_demand) { |
pkotwicz
2017/05/24 15:43:31
Maybe it would be clearer if you passed the |new_l
jkrcal
2017/06/06 15:41:55
This does not work well after merging AddFaviconBi
|
std::vector<FaviconBitmapIDSize> bitmap_id_sizes; |
thumbnail_db_->GetFaviconBitmapIDSizes(icon_id, &bitmap_id_sizes); |
@@ -1953,8 +1958,13 @@ 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); |
+ if (on_demand) { |
+ thumbnail_db_->AddOnDemandFaviconBitmap( |
+ icon_id, to_add[i].first, base::Time::Now(), to_add[i].second); |
+ } else { |
+ thumbnail_db_->AddFaviconBitmap(icon_id, to_add[i].first, |
+ base::Time::Now(), to_add[i].second); |
+ } |
favicon_bitmaps_changed = true; |
} |