Index: chrome/browser/extensions/bookmark_app_helper.cc |
=================================================================== |
--- chrome/browser/extensions/bookmark_app_helper.cc (revision 271412) |
+++ chrome/browser/extensions/bookmark_app_helper.cc (working copy) |
@@ -153,6 +153,33 @@ |
} |
// static |
+char BookmarkAppHelper::GetIconLetterForGeneratedIcon(const GURL& url) { |
+ char icon_letter = ' '; |
+ std::string domain_and_registry( |
+ net::registry_controlled_domains::GetDomainAndRegistry( |
+ url, |
+ net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES)); |
+ if (!domain_and_registry.empty()) { |
+ icon_letter = domain_and_registry[0]; |
+ } else if (!url.host().empty()) { |
+ icon_letter = url.host()[0]; |
+ } |
+ return icon_letter; |
+} |
+ |
+// static |
+SkColor BookmarkAppHelper::GetIconColorForGeneratedIcon( |
+ const SkBitmap& base_icon) { |
+ color_utils::GridSampler sampler; |
+ SkColor background_color = color_utils::CalculateKMeanColorOfPNG( |
+ gfx::Image::CreateFrom1xBitmap(base_icon).As1xPNGBytes(), |
+ 100, |
+ 568, |
+ &sampler); |
+ return background_color; |
+} |
+ |
+// static |
void BookmarkAppHelper::GenerateIcon(std::map<int, SkBitmap>* bitmaps, |
int output_size, |
SkColor color, |
@@ -258,29 +285,12 @@ |
if (resized_bitmaps.lower_bound(*generate_sizes.rbegin()) == |
resized_bitmaps.end()) { |
GURL app_url = web_app_info_.app_url; |
+ char icon_letter = GetIconLetterForGeneratedIcon(app_url); |
+ SkColor background_color = SK_ColorBLACK; |
- // The letter that will be painted on the generated icon. |
- char icon_letter = ' '; |
- std::string domain_and_registry( |
- net::registry_controlled_domains::GetDomainAndRegistry( |
- app_url, |
- net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES)); |
- if (!domain_and_registry.empty()) { |
- icon_letter = domain_and_registry[0]; |
- } else if (!app_url.host().empty()) { |
- icon_letter = app_url.host()[0]; |
- } |
- |
- // The color that will be used for the icon's background. |
- SkColor background_color = SK_ColorBLACK; |
if (resized_bitmaps.size()) { |
- color_utils::GridSampler sampler; |
- background_color = color_utils::CalculateKMeanColorOfPNG( |
- gfx::Image::CreateFrom1xBitmap(resized_bitmaps.begin()->second) |
- .As1xPNGBytes(), |
- 100, |
- 568, |
- &sampler); |
+ background_color = GetIconColorForGeneratedIcon( |
+ resized_bitmaps.begin()->second); |
} |
for (std::set<int>::const_iterator it = generate_sizes.begin(); |