Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(754)

Unified Diff: chrome/browser/favicon/favicon_service.cc

Issue 26563004: Find Favicon in priority of icon_type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add a new method Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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,

Powered by Google App Engine
This is Rietveld 408576698