Index: chrome/browser/history/history_backend.cc |
diff --git a/chrome/browser/history/history_backend.cc b/chrome/browser/history/history_backend.cc |
index b34cb14a5e79b13a333725e68e4e400be6380cc9..0e3f1b391f6a1061adec4f0a9bc0fdaf5268a6e6 100644 |
--- a/chrome/browser/history/history_backend.cc |
+++ b/chrome/browser/history/history_backend.cc |
@@ -1891,30 +1891,25 @@ void HistoryBackend::UpdateFaviconMappingAndFetchImpl( |
if (request->canceled()) |
return; |
- FaviconData favicon; |
+ FaviconData favicon_data; |
if (thumbnail_db_.get()) { |
+ IconType icon_type; |
const FaviconID favicon_id = |
thumbnail_db_->GetFaviconIDForFaviconURL( |
- icon_url, icon_types, &favicon.icon_type); |
+ icon_url, icon_types, &icon_type); |
if (favicon_id) { |
- scoped_refptr<base::RefCountedMemory> data; |
- favicon.known_icon = true; |
- Time last_updated; |
- if (thumbnail_db_->GetFavicon(favicon_id, &last_updated, &data, |
- NULL, NULL)) { |
- favicon.expired = (Time::Now() - last_updated) > |
- TimeDelta::FromDays(kFaviconRefetchDays); |
- favicon.image_data = data; |
- } |
+ GetFaviconFromDB(favicon_id, &favicon_data); |
if (page_url) |
- SetFaviconMapping(*page_url, favicon_id, favicon.icon_type); |
+ SetFaviconMapping(*page_url, favicon_id, icon_type); |
} |
// else case, haven't cached entry yet. Caller is responsible for |
// downloading the favicon and invoking SetFavicon. |
} |
- request->ForwardResult(request->handle(), favicon); |
+ // TODO(pkotwicz): Pass in icon_url if it exists in database instead of empty |
+ // vector. |
+ request->ForwardResult(request->handle(), favicon_data, std::vector<GURL>()); |
} |
void HistoryBackend::GetFaviconForURL( |
@@ -1924,22 +1919,14 @@ void HistoryBackend::GetFaviconForURL( |
if (request->canceled()) |
return; |
- FaviconData favicon; |
+ FaviconData favicon_data; |
// Get the favicon from DB. |
- GetFaviconFromDB(page_url, icon_types, &favicon); |
+ GetFaviconFromDB(page_url, icon_types, &favicon_data); |
- request->ForwardResult(request->handle(), favicon); |
-} |
- |
-void HistoryBackend::GetFaviconForID(scoped_refptr<GetFaviconRequest> request, |
- FaviconID id) { |
- if (request->canceled()) |
- return; |
- |
- FaviconData favicon; |
- GetFaviconFromDB(id, &favicon); |
- request->ForwardResult(request->handle(), favicon); |
+ // TODO(pkotwicz): Pass in matched icon URLs for icon_types instead of empty |
+ // vector. |
+ request->ForwardResult(request->handle(), favicon_data, std::vector<GURL>()); |
} |
void HistoryBackend::SetFavicon( |
@@ -2439,8 +2426,8 @@ BookmarkService* HistoryBackend::GetBookmarkService() { |
bool HistoryBackend::GetFaviconFromDB( |
const GURL& page_url, |
int icon_types, |
- FaviconData* favicon) { |
- DCHECK(favicon); |
+ FaviconData* favicon_data) { |
+ DCHECK(favicon_data); |
if (!db_.get() || !thumbnail_db_.get()) |
return false; |
@@ -2456,7 +2443,7 @@ bool HistoryBackend::GetFaviconFromDB( |
for (std::vector<IconMapping>::iterator i = icon_mappings.begin(); |
i != icon_mappings.end(); ++i) { |
if ((i->icon_type & icon_types) && |
- GetFaviconFromDB(i->icon_id, favicon)) { |
+ GetFaviconFromDB(i->icon_id, favicon_data)) { |
success = true; |
break; |
} |
@@ -2468,18 +2455,22 @@ bool HistoryBackend::GetFaviconFromDB( |
} |
bool HistoryBackend::GetFaviconFromDB(FaviconID favicon_id, |
- FaviconData* favicon) { |
+ FaviconData* favicon_data) { |
Time last_updated; |
scoped_refptr<base::RefCountedMemory> data; |
+ favicon_data->known_icon = true; |
sky
2012/08/23 15:50:38
How come this is set even if we don't have a favic
|
if (!thumbnail_db_->GetFavicon(favicon_id, &last_updated, &data, |
- &favicon->icon_url, &favicon->icon_type)) |
+ &favicon_data->icon_url, &favicon_data->icon_type)) |
return false; |
- favicon->expired = (Time::Now() - last_updated) > |
+ FaviconBitmapData favicon_bitmap_data; |
+ favicon_bitmap_data.expired = (Time::Now() - last_updated) > |
TimeDelta::FromDays(kFaviconRefetchDays); |
- favicon->known_icon = true; |
- favicon->image_data = data; |
+ favicon_bitmap_data.bitmap_data = data; |
+ |
+ favicon_data->bitmaps.clear(); |
+ favicon_data->bitmaps.push_back(favicon_bitmap_data); |
return true; |
} |