Chromium Code Reviews| Index: chrome/browser/favicon/favicon_tab_helper.cc |
| diff --git a/chrome/browser/favicon/favicon_tab_helper.cc b/chrome/browser/favicon/favicon_tab_helper.cc |
| index 768e950c9c49e1377436549f26eee8530ec9dd0a..88f364c16672c10c3d8d0685db5cb9195b571c5b 100644 |
| --- a/chrome/browser/favicon/favicon_tab_helper.cc |
| +++ b/chrome/browser/favicon/favicon_tab_helper.cc |
| @@ -135,6 +135,13 @@ NavigationEntry* FaviconTabHelper::GetActiveEntry() { |
| } |
| int FaviconTabHelper::StartDownload(const GURL& url, int image_size) { |
| + FaviconService* favicon_service = FaviconServiceFactory::GetForProfile( |
| + profile_->GetOriginalProfile(), Profile::IMPLICIT_ACCESS); |
| + if (favicon_service && favicon_service->IsMissingFavicon(url)) { |
| + VLOG(1) << "Skip Missing FavIcon: " << url; |
|
sky
2013/05/03 20:24:54
DVLOG ?
mef
2013/05/03 21:45:59
Done.
|
| + return 0; |
| + } |
| + |
| return web_contents()->DownloadImage( |
| url, |
| true, |
| @@ -157,8 +164,11 @@ void FaviconTabHelper::NavigateToPendingEntry( |
| !profile_->IsOffTheRecord()) { |
| FaviconService* favicon_service = FaviconServiceFactory::GetForProfile( |
| profile_, Profile::IMPLICIT_ACCESS); |
| - if (favicon_service) |
| + if (favicon_service) { |
| favicon_service->SetFaviconOutOfDateForPage(url); |
| + if (reload_type == NavigationController::RELOAD_IGNORING_CACHE) |
| + favicon_service->ClearMissingFavicons(); |
| + } |
| } |
| } |
| @@ -179,9 +189,19 @@ void FaviconTabHelper::DidUpdateFaviconURL( |
| void FaviconTabHelper::DidDownloadFavicon( |
| int id, |
| + int http_status_code, |
| const GURL& image_url, |
| int requested_size, |
| const std::vector<SkBitmap>& bitmaps) { |
| + |
| + if (bitmaps.size() == 0 && http_status_code == 404) { |
|
sky
2013/05/03 20:24:54
.empty()
mef
2013/05/03 21:45:59
Done.
|
| + VLOG(1) << "Missing Favicon:" << image_url; |
| + FaviconService* favicon_service = FaviconServiceFactory::GetForProfile( |
| + profile_->GetOriginalProfile(), Profile::IMPLICIT_ACCESS); |
| + if (favicon_service) |
| + favicon_service->AddMissingFavicon(image_url); |
| + } |
| + |
| favicon_handler_->OnDidDownloadFavicon( |
| id, image_url, requested_size, bitmaps); |
| if (touch_icon_handler_.get()) { |