| Index: chrome/browser/profiles/profile_shortcut_manager_win.cc | 
| diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.cc b/chrome/browser/profiles/profile_shortcut_manager_win.cc | 
| index 942e4263f9f661c2f2fb07627ee4fac756d673bd..6003ee8f8d539b3a2aeb26fd0b5ec1c9b4653bc7 100644 | 
| --- a/chrome/browser/profiles/profile_shortcut_manager_win.cc | 
| +++ b/chrome/browser/profiles/profile_shortcut_manager_win.cc | 
| @@ -171,29 +171,38 @@ base::FilePath CreateOrUpdateShortcutIconForProfile( | 
| return base::FilePath(); | 
| } | 
|  | 
| -  scoped_ptr<SkBitmap> app_icon_bitmap(GetAppIconForSize(kShortcutIconSize)); | 
| -  if (!app_icon_bitmap) | 
| +  scoped_ptr<gfx::ImageFamily> family = GetAppIconImageFamily(); | 
| +  if (!family) | 
| +    return base::FilePath(); | 
| + | 
| +  // TODO(mgiuca): A better approach would be to badge each image in the | 
| +  // ImageFamily (scaling the badge to the correct size), and then re-export the | 
| +  // family (as opposed to making a family with just 48 and 256, then scaling | 
| +  // those images to about a dozen different sizes). | 
| +  SkBitmap app_icon_bitmap = | 
| +      family->CreateExact(kShortcutIconSize, kShortcutIconSize).AsBitmap(); | 
| +  if (app_icon_bitmap.isNull()) | 
| return base::FilePath(); | 
|  | 
| gfx::ImageFamily badged_bitmaps; | 
| if (!avatar_bitmap_1x.empty()) { | 
| badged_bitmaps.Add(gfx::Image::CreateFrom1xBitmap( | 
| -        BadgeIcon(*app_icon_bitmap, avatar_bitmap_1x, 1))); | 
| +        BadgeIcon(app_icon_bitmap, avatar_bitmap_1x, 1))); | 
| } | 
|  | 
| -  scoped_ptr<SkBitmap> large_app_icon_bitmap( | 
| -      GetAppIconForSize(IconUtil::kLargeIconSize)); | 
| -  if (large_app_icon_bitmap && !avatar_bitmap_2x.empty()) { | 
| +  SkBitmap large_app_icon_bitmap = | 
| +      family->CreateExact(IconUtil::kLargeIconSize, IconUtil::kLargeIconSize) | 
| +          .AsBitmap(); | 
| +  if (!large_app_icon_bitmap.isNull() && !avatar_bitmap_2x.empty()) { | 
| badged_bitmaps.Add(gfx::Image::CreateFrom1xBitmap( | 
| -        BadgeIcon(*large_app_icon_bitmap, avatar_bitmap_2x, 2))); | 
| +        BadgeIcon(large_app_icon_bitmap, avatar_bitmap_2x, 2))); | 
| } | 
|  | 
| // If we have no badged bitmaps, we should just use the default chrome icon. | 
| if (badged_bitmaps.empty()) { | 
| -    badged_bitmaps.Add(gfx::Image::CreateFrom1xBitmap(*app_icon_bitmap)); | 
| -    if (large_app_icon_bitmap) { | 
| -      badged_bitmaps.Add( | 
| -          gfx::Image::CreateFrom1xBitmap(*large_app_icon_bitmap)); | 
| +    badged_bitmaps.Add(gfx::Image::CreateFrom1xBitmap(app_icon_bitmap)); | 
| +    if (!large_app_icon_bitmap.isNull()) { | 
| +      badged_bitmaps.Add(gfx::Image::CreateFrom1xBitmap(large_app_icon_bitmap)); | 
| } | 
| } | 
| // Finally, write the .ico file containing this new bitmap. | 
|  |