Chromium Code Reviews| 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..af47c0e975722a592036c4e3cb042817fe1a508c 100644 |
| --- a/chrome/browser/favicon/favicon_service.cc |
| +++ b/chrome/browser/favicon/favicon_service.cc |
| @@ -45,6 +45,22 @@ CancelableTaskTracker::TaskId RunWithEmptyResultAsync( |
| Bind(callback, std::vector<chrome::FaviconBitmapResult>())); |
| } |
| +// Return the TaskId of to retreive the favicon from chrome specific URL. |
|
pkotwicz
2013/10/16 16:59:41
Nit: "of to retreive" -> "to retrieve"
michaelbai
2013/10/16 18:17:05
Done.
|
| +CancelableTaskTracker::TaskId GetFaviconForChromeURL( |
| + 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; |
| +} |
| + |
| } // namespace |
| FaviconService::FaviconService(HistoryService* history_service) |
| @@ -169,6 +185,31 @@ 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_pixels, |
| + const FaviconRawCallback& callback, |
| + CancelableTaskTracker* tracker) { |
| + |
|
sky
2013/10/16 13:27:16
nit: remove newline.
michaelbai
2013/10/16 18:17:05
Done.
|
| + FaviconResultsCallback favicon_results_callback = |
| + Bind(&FaviconService::RunFaviconRawCallbackWithBitmapResults, |
| + base::Unretained(this), callback, 0, ui::ScaleFactor()); |
| + |
| + if (page_url.SchemeIs(chrome::kChromeUIScheme) || |
| + page_url.SchemeIs(extensions::kExtensionScheme)) { |
| + std::vector<ui::ScaleFactor> scale_factor; |
| + scale_factor.push_back(ui::SCALE_FACTOR_100P); |
| + return GetFaviconForChromeURL(profile, page_url, scale_factor, |
| + favicon_results_callback, tracker); |
| + } else if (history_service_) { |
| + return history_service_->GetLargestFaviconForURL(page_url, icon_types, |
| + minimal_size_in_pixels, favicon_results_callback, tracker); |
| + } |
| + return RunWithEmptyResultAsync(favicon_results_callback, tracker); |
| +} |
| + |
| CancelableTaskTracker::TaskId FaviconService::GetFaviconForURL( |
| const FaviconForURLParams& params, |
| const FaviconResultsCallback& callback, |
| @@ -284,15 +325,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, |
| @@ -300,9 +334,8 @@ CancelableTaskTracker::TaskId FaviconService::GetFaviconForURLImpl( |
| desired_scale_factors, |
| callback, |
| tracker); |
| - } else { |
| - return RunWithEmptyResultAsync(callback, tracker); |
| } |
| + return RunWithEmptyResultAsync(callback, tracker); |
| } |
| void FaviconService::RunFaviconImageCallbackWithBitmapResults( |