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

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

Issue 11418021: Revert 168079 - This CL ensures that favicons always (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 1 month 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
« no previous file with comments | « chrome/browser/favicon/favicon_service.h ('k') | chrome/browser/favicon/favicon_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/favicon/favicon_service.cc
===================================================================
--- chrome/browser/favicon/favicon_service.cc (revision 168086)
+++ chrome/browser/favicon/favicon_service.cc (working copy)
@@ -75,6 +75,7 @@
const GURL& icon_url,
history::IconType icon_type,
int desired_size_in_dip,
+ const std::vector<ui::ScaleFactor>& desired_scale_factors,
CancelableRequestConsumerBase* consumer,
const FaviconResultsCallback& callback) {
GetFaviconRequest* request = new GetFaviconRequest(callback);
@@ -83,7 +84,7 @@
std::vector<GURL> icon_urls;
icon_urls.push_back(icon_url);
history_service_->GetFavicons(request, icon_urls, icon_type,
- desired_size_in_dip, FaviconUtil::GetFaviconScaleFactors());
+ desired_size_in_dip, desired_scale_factors);
} else {
ForwardEmptyResultAsync(request);
}
@@ -95,14 +96,14 @@
const std::vector<GURL>& icon_urls,
int icon_types,
int desired_size_in_dip,
+ const std::vector<ui::ScaleFactor>& desired_scale_factors,
CancelableRequestConsumerBase* consumer,
const FaviconResultsCallback& callback) {
GetFaviconRequest* request = new GetFaviconRequest(callback);
AddRequest(request, consumer);
if (history_service_) {
history_service_->UpdateFaviconMappingsAndFetch(request, page_url,
- icon_urls, icon_types, desired_size_in_dip,
- FaviconUtil::GetFaviconScaleFactors());
+ icon_urls, icon_types, desired_size_in_dip, desired_scale_factors);
} else {
ForwardEmptyResultAsync(request);
}
@@ -118,9 +119,9 @@
params.desired_size_in_dip,
callback));
- return GetFaviconForURLImpl(params,
- FaviconUtil::GetFaviconScaleFactors(),
- request);
+ std::vector<ui::ScaleFactor> desired_scale_factors =
+ ui::GetSupportedScaleFactors();
+ return GetFaviconForURLImpl(params, desired_scale_factors, request);
}
FaviconService::Handle FaviconService::GetRawFaviconForURL(
@@ -141,11 +142,10 @@
FaviconService::Handle FaviconService::GetFaviconForURL(
const FaviconForURLParams& params,
+ const std::vector<ui::ScaleFactor>& desired_scale_factors,
const FaviconResultsCallback& callback) {
GetFaviconRequest* request = new GetFaviconRequest(callback);
- return GetFaviconForURLImpl(params,
- FaviconUtil::GetFaviconScaleFactors(),
- request);
+ return GetFaviconForURLImpl(params, desired_scale_factors, request);
}
FaviconService::Handle FaviconService::GetLargestRawFaviconForID(
@@ -282,7 +282,7 @@
history::FaviconImageResult image_result;
image_result.image = FaviconUtil::SelectFaviconFramesFromPNGs(
favicon_bitmap_results,
- FaviconUtil::GetFaviconScaleFactors(),
+ ui::GetSupportedScaleFactors(),
desired_size_in_dip);
image_result.icon_url = image_result.image.IsEmpty() ?
GURL() : favicon_bitmap_results[0].icon_url;
@@ -325,13 +325,23 @@
// Convert raw bytes to SkBitmap, resize via SelectFaviconFrames(), then
// convert back.
+ SkBitmap bitmap;
+ if (!gfx::PNGCodec::Decode(bitmap_result.bitmap_data->front(),
+ bitmap_result.bitmap_data->size(),
+ &bitmap)) {
+ callback.Run(handle, history::FaviconBitmapResult());
+ return;
+ }
+
+ std::vector<SkBitmap> bitmaps;
+ bitmaps.push_back(bitmap);
std::vector<ui::ScaleFactor> desired_scale_factors;
desired_scale_factors.push_back(desired_scale_factor);
- gfx::Image resized_image = FaviconUtil::SelectFaviconFramesFromPNGs(
- favicon_bitmap_results, desired_scale_factors, desired_size_in_dip);
+ gfx::ImageSkia resized_image = SelectFaviconFrames(bitmaps,
+ desired_scale_factors, desired_size_in_dip, NULL);
std::vector<unsigned char> resized_bitmap_data;
- if (!gfx::PNGCodec::EncodeBGRASkBitmap(resized_image.AsBitmap(), false,
+ if (!gfx::PNGCodec::EncodeBGRASkBitmap(*resized_image.bitmap(), false,
&resized_bitmap_data)) {
callback.Run(handle, history::FaviconBitmapResult());
return;
« no previous file with comments | « chrome/browser/favicon/favicon_service.h ('k') | chrome/browser/favicon/favicon_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698