Chromium Code Reviews| Index: chrome/browser/ui/webui/extensions/extension_icon_source.cc |
| =================================================================== |
| --- chrome/browser/ui/webui/extensions/extension_icon_source.cc (revision 173105) |
| +++ chrome/browser/ui/webui/extensions/extension_icon_source.cc (working copy) |
| @@ -37,6 +37,10 @@ |
| namespace { |
| +// Maximum size for the loaded icon. Actual loaded size can be larger than |
| +// this because of scaling factor. |
| +const int kMaxIconSize = 512; |
| + |
| scoped_refptr<base::RefCountedMemory> BitmapToMemory(const SkBitmap* image) { |
| base::RefCountedBytes* image_bytes = new base::RefCountedBytes; |
| gfx::PNGCodec::EncodeBGRASkBitmap(*image, false, &image_bytes->data()); |
| @@ -120,6 +124,9 @@ |
| } |
| ExtensionIconRequest* request = GetData(request_id); |
| + if (request->size>kMaxIconSize) { |
|
Matt Perry
2012/12/14 18:57:08
Move these ifs below.
Also, familiarize yourself
|
| + request->size = kMaxIconSize; |
| + } |
| ExtensionResource icon = |
| request->extension->GetIconResource(request->size, request->match); |
| @@ -166,6 +173,9 @@ |
| void ExtensionIconSource::LoadDefaultImage(int request_id) { |
| ExtensionIconRequest* request = GetData(request_id); |
| const SkBitmap* default_image = NULL; |
| + if (request->size>kMaxIconSize) { |
| + request->size = kMaxIconSize; |
| + } |
| if (request->extension->is_app()) |
| default_image = GetDefaultAppImage(); |
| @@ -188,6 +198,9 @@ |
| void ExtensionIconSource::LoadExtensionImage(const ExtensionResource& icon, |
| int request_id) { |
| ExtensionIconRequest* request = GetData(request_id); |
| + if (request->size>kMaxIconSize) { |
| + request->size = kMaxIconSize; |
| + } |
| extensions::ImageLoader::Get(profile_)->LoadImageAsync( |
| request->extension, icon, |
| gfx::Size(request->size, request->size), |
| @@ -217,7 +230,9 @@ |
| int request_id, |
| const history::FaviconBitmapResult& bitmap_result) { |
| ExtensionIconRequest* request = GetData(request_id); |
| - |
| + if (request->size>kMaxIconSize) { |
| + request->size = kMaxIconSize; |
| + } |
| // Fallback to the default icon if there wasn't a favicon. |
| if (!bitmap_result.is_valid()) { |
| LoadDefaultImage(request_id); |
| @@ -245,6 +260,9 @@ |
| void ExtensionIconSource::LoadIconFailed(int request_id) { |
| ExtensionIconRequest* request = GetData(request_id); |
| + if (request->size>kMaxIconSize) { |
| + request->size = kMaxIconSize; |
| + } |
| ExtensionResource icon = |
| request->extension->GetIconResource(request->size, request->match); |