| Index: chrome/browser/favicon/favicon_service.cc
|
| diff --git a/chrome/browser/favicon/favicon_service.cc b/chrome/browser/favicon/favicon_service.cc
|
| index 77c5f99b5e7fadf98d4e2dbf80ee5c7e38ea70e8..4df43879d848ed378e6b650d9aedf25e9de73171 100644
|
| --- a/chrome/browser/favicon/favicon_service.cc
|
| +++ b/chrome/browser/favicon/favicon_service.cc
|
| @@ -59,25 +59,18 @@ base::CancelableTaskTracker::TaskId GetFaviconForChromeURL(
|
| tracker->NewTrackedTaskId(&is_canceled_cb);
|
| favicon_base::FaviconResultsCallback cancelable_cb =
|
| Bind(&CancelOrRunFaviconResultsCallback, is_canceled_cb, callback);
|
| - ChromeWebUIControllerFactory::GetInstance()->GetFaviconForURL(profile,
|
| - page_url, desired_sizes_in_pixel, cancelable_cb);
|
| + ChromeWebUIControllerFactory::GetInstance()->GetFaviconForURL(
|
| + profile, page_url, desired_sizes_in_pixel, cancelable_cb);
|
| return id;
|
| }
|
|
|
| -// Returns the size in pixel that a favicon should be based on |size_in_dip|
|
| -// and |scale_factor|.
|
| -int GetSizeInPixel(int size_in_dip, ui::ScaleFactor scale_factor) {
|
| - return ceil(size_in_dip * ui::GetScaleForScaleFactor(scale_factor));
|
| -}
|
| -
|
| // Returns a vector of pixel edge sizes from |size_in_dip| and
|
| -// favicon_base::GetFaviconScaleFactors().
|
| +// favicon_base::GetFaviconScales().
|
| std::vector<int> GetPixelSizesForFaviconScales(int size_in_dip) {
|
| - std::vector<ui::ScaleFactor> scale_factors =
|
| - favicon_base::GetFaviconScaleFactors();
|
| + std::vector<float> scales = favicon_base::GetFaviconScales();
|
| std::vector<int> sizes_in_pixel;
|
| - for (size_t i = 0; i < scale_factors.size(); ++i) {
|
| - sizes_in_pixel.push_back(GetSizeInPixel(size_in_dip, scale_factors[i]));
|
| + for (size_t i = 0; i < scales.size(); ++i) {
|
| + sizes_in_pixel.push_back(std::ceil(size_in_dip * scales[i]));
|
| }
|
| return sizes_in_pixel;
|
| }
|
| @@ -123,11 +116,11 @@ base::CancelableTaskTracker::TaskId FaviconService::GetRawFavicon(
|
| const GURL& icon_url,
|
| favicon_base::IconType icon_type,
|
| int desired_size_in_dip,
|
| - ui::ScaleFactor desired_scale_factor,
|
| + float desired_favicon_scale,
|
| const favicon_base::FaviconRawBitmapCallback& callback,
|
| base::CancelableTaskTracker* tracker) {
|
| int desired_size_in_pixel =
|
| - GetSizeInPixel(desired_size_in_dip, desired_scale_factor);
|
| + std::ceil(desired_size_in_dip * desired_favicon_scale);
|
| favicon_base::FaviconResultsCallback callback_runner =
|
| Bind(&FaviconService::RunFaviconRawBitmapCallbackWithBitmapResults,
|
| base::Unretained(this),
|
| @@ -201,11 +194,11 @@ base::CancelableTaskTracker::TaskId FaviconService::GetFaviconImageForPageURL(
|
|
|
| base::CancelableTaskTracker::TaskId FaviconService::GetRawFaviconForPageURL(
|
| const FaviconForPageURLParams& params,
|
| - ui::ScaleFactor desired_scale_factor,
|
| + float desired_favicon_scale,
|
| const favicon_base::FaviconRawBitmapCallback& callback,
|
| base::CancelableTaskTracker* tracker) {
|
| int desired_size_in_pixel =
|
| - GetSizeInPixel(params.desired_size_in_dip, desired_scale_factor);
|
| + std::ceil(params.desired_size_in_dip * desired_favicon_scale);
|
| std::vector<int> desired_sizes_in_pixel;
|
| desired_sizes_in_pixel.push_back(desired_size_in_pixel);
|
| return GetFaviconForPageURLImpl(
|
| @@ -235,8 +228,11 @@ FaviconService::GetLargestRawFaviconForPageURL(
|
| page_url.SchemeIs(extensions::kExtensionScheme)) {
|
| std::vector<int> desired_sizes_in_pixel;
|
| desired_sizes_in_pixel.push_back(0);
|
| - return GetFaviconForChromeURL(profile, page_url, desired_sizes_in_pixel,
|
| - favicon_results_callback, tracker);
|
| + return GetFaviconForChromeURL(profile,
|
| + page_url,
|
| + desired_sizes_in_pixel,
|
| + favicon_results_callback,
|
| + tracker);
|
| }
|
| if (history_service_) {
|
| return history_service_->GetLargestFaviconForURL(page_url, icon_types,
|
| @@ -359,8 +355,8 @@ base::CancelableTaskTracker::TaskId FaviconService::GetFaviconForPageURLImpl(
|
| base::CancelableTaskTracker* tracker) {
|
| if (params.page_url.SchemeIs(content::kChromeUIScheme) ||
|
| params.page_url.SchemeIs(extensions::kExtensionScheme)) {
|
| - return GetFaviconForChromeURL(profile_, params.page_url,
|
| - desired_sizes_in_pixel, callback, tracker);
|
| + return GetFaviconForChromeURL(
|
| + profile_, params.page_url, desired_sizes_in_pixel, callback, tracker);
|
| }
|
| if (history_service_) {
|
| return history_service_->GetFaviconsForURL(params.page_url,
|
| @@ -380,7 +376,7 @@ void FaviconService::RunFaviconImageCallbackWithBitmapResults(
|
| favicon_base::FaviconImageResult image_result;
|
| image_result.image = favicon_base::SelectFaviconFramesFromPNGs(
|
| favicon_bitmap_results,
|
| - favicon_base::GetFaviconScaleFactors(),
|
| + favicon_base::GetFaviconScales(),
|
| desired_size_in_dip);
|
| favicon_base::SetFaviconColorSpace(&image_result.image);
|
|
|
| @@ -420,10 +416,10 @@ void FaviconService::RunFaviconRawBitmapCallbackWithBitmapResults(
|
|
|
| // Convert raw bytes to SkBitmap, resize via SelectFaviconFrames(), then
|
| // convert back.
|
| - std::vector<ui::ScaleFactor> desired_scale_factors;
|
| - desired_scale_factors.push_back(ui::SCALE_FACTOR_100P);
|
| + std::vector<float> desired_favicon_scales;
|
| + desired_favicon_scales.push_back(1.0f);
|
| gfx::Image resized_image = favicon_base::SelectFaviconFramesFromPNGs(
|
| - favicon_bitmap_results, desired_scale_factors, desired_size_in_pixel);
|
| + favicon_bitmap_results, desired_favicon_scales, desired_size_in_pixel);
|
|
|
| std::vector<unsigned char> resized_bitmap_data;
|
| if (!gfx::PNGCodec::EncodeBGRASkBitmap(resized_image.AsBitmap(), false,
|
|
|