 Chromium Code Reviews
 Chromium Code Reviews Issue 26563004:
  Find Favicon in priority of icon_type.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 26563004:
  Find Favicon in priority of icon_type.  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| Index: chrome/browser/favicon/favicon_service.cc | 
| diff --git a/chrome/browser/favicon/favicon_service.cc b/chrome/browser/favicon/favicon_service.cc | 
| index fd0f9eb557c4cd9931b4a70dee6df9e80020add7..36e3f49f9d1f7556b4c947d1f730072387917ba4 100644 | 
| --- a/chrome/browser/favicon/favicon_service.cc | 
| +++ b/chrome/browser/favicon/favicon_service.cc | 
| @@ -45,6 +45,21 @@ CancelableTaskTracker::TaskId RunWithEmptyResultAsync( | 
| Bind(callback, std::vector<chrome::FaviconBitmapResult>())); | 
| } | 
| +CancelableTaskTracker::TaskId GetFaviconForChromeURL( | 
| 
sky
2013/10/15 15:03:47
Add description.
 
michaelbai
2013/10/15 19:36:31
Done.
 | 
| + Profile* profile, | 
| + const GURL& page_url, | 
| + const std::vector<ui::ScaleFactor>& desired_scale_factors, | 
| + const FaviconService::FaviconResultsCallback& callback, | 
| + CancelableTaskTracker* tracker) { | 
| + CancelableTaskTracker::IsCanceledCallback is_canceled_cb; | 
| + CancelableTaskTracker::TaskId id = tracker->NewTrackedTaskId(&is_canceled_cb); | 
| + FaviconService::FaviconResultsCallback cancelable_cb = | 
| + Bind(&CancelOrRunFaviconResultsCallback, is_canceled_cb, callback); | 
| + ChromeWebUIControllerFactory::GetInstance()->GetFaviconForURL(profile, | 
| + page_url, desired_scale_factors, cancelable_cb); | 
| + return id; | 
| 
sky
2013/10/15 15:03:47
nit: indentation is off.
 
michaelbai
2013/10/15 19:36:31
Done.
 | 
| +} | 
| + | 
| } // namespace | 
| FaviconService::FaviconService(HistoryService* history_service) | 
| @@ -169,6 +184,23 @@ CancelableTaskTracker::TaskId FaviconService::GetRawFaviconForURL( | 
| tracker); | 
| } | 
| +CancelableTaskTracker::TaskId FaviconService::GetLargestRawFaviconForURL( | 
| + Profile* profile, | 
| + const GURL& page_url, | 
| + const std::vector<int>& icon_types, | 
| + int minimal_size_in_pixel, | 
| + const FaviconRawCallback& callback, | 
| + CancelableTaskTracker* tracker) { | 
| + return GetLargestRawFaviconForURLImpl( | 
| + profile, page_url, icon_types, minimal_size_in_pixel, | 
| + Bind(&FaviconService::RunFaviconRawCallbackWithBitmapResults, | 
| + base::Unretained(this), | 
| + callback, | 
| + 0, | 
| + ui::ScaleFactor()), | 
| + tracker); | 
| +} | 
| + | 
| CancelableTaskTracker::TaskId FaviconService::GetFaviconForURL( | 
| const FaviconForURLParams& params, | 
| const FaviconResultsCallback& callback, | 
| @@ -284,15 +316,8 @@ CancelableTaskTracker::TaskId FaviconService::GetFaviconForURLImpl( | 
| CancelableTaskTracker* tracker) { | 
| if (params.page_url.SchemeIs(chrome::kChromeUIScheme) || | 
| params.page_url.SchemeIs(extensions::kExtensionScheme)) { | 
| - CancelableTaskTracker::IsCanceledCallback is_canceled_cb; | 
| - CancelableTaskTracker::TaskId id = | 
| - tracker->NewTrackedTaskId(&is_canceled_cb); | 
| - | 
| - FaviconResultsCallback cancelable_cb = | 
| - Bind(&CancelOrRunFaviconResultsCallback, is_canceled_cb, callback); | 
| - ChromeWebUIControllerFactory::GetInstance()->GetFaviconForURL( | 
| - params.profile, params.page_url, desired_scale_factors, cancelable_cb); | 
| - return id; | 
| + return GetFaviconForChromeURL(params.profile, params.page_url, | 
| + desired_scale_factors, callback, tracker); | 
| } else if (history_service_) { | 
| return history_service_->GetFaviconsForURL(params.page_url, | 
| params.icon_types, | 
| @@ -305,6 +330,25 @@ CancelableTaskTracker::TaskId FaviconService::GetFaviconForURLImpl( | 
| } | 
| } | 
| +CancelableTaskTracker::TaskId FaviconService::GetLargestRawFaviconForURLImpl( | 
| + Profile* profile, | 
| + const GURL& page_url, | 
| + const std::vector<int>& icon_types, | 
| + int minimal_size_in_pixel, | 
| + const FaviconResultsCallback& callback, | 
| + CancelableTaskTracker* tracker) { | 
| + if (page_url.SchemeIs(chrome::kChromeUIScheme) || | 
| + page_url.SchemeIs(extensions::kExtensionScheme)) { | 
| + return GetFaviconForChromeURL(profile, page_url, | 
| + std::vector<ui::ScaleFactor>(), callback, tracker); | 
| + } else if (history_service_) { | 
| + return history_service_->GetLargestFaviconForURL(page_url, icon_types, | 
| + minimal_size_in_pixel, callback, tracker); | 
| + } else { | 
| + return RunWithEmptyResultAsync(callback, tracker); | 
| + } | 
| +} | 
| + | 
| void FaviconService::RunFaviconImageCallbackWithBitmapResults( | 
| const FaviconImageCallback& callback, | 
| int desired_size_in_dip, |