Chromium Code Reviews| 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; |
| } |