Chromium Code Reviews| Index: chrome/browser/notifications/sync_notifier/synced_notification.cc | 
| diff --git a/chrome/browser/notifications/sync_notifier/synced_notification.cc b/chrome/browser/notifications/sync_notifier/synced_notification.cc | 
| index 266d198431abdae7c89bcfee88c983c38795f25b..19b937ce3731f90653266eb70e128886d93206b6 100644 | 
| --- a/chrome/browser/notifications/sync_notifier/synced_notification.cc | 
| +++ b/chrome/browser/notifications/sync_notifier/synced_notification.cc | 
| @@ -6,6 +6,7 @@ | 
| #include "base/basictypes.h" | 
| #include "base/strings/string_util.h" | 
| +#include "base/strings/stringprintf.h" | 
| #include "base/strings/utf_string_conversions.h" | 
| #include "base/time/time.h" | 
| #include "base/values.h" | 
| @@ -15,9 +16,16 @@ | 
| #include "chrome/browser/notifications/sync_notifier/chrome_notifier_delegate.h" | 
| #include "chrome/browser/notifications/sync_notifier/chrome_notifier_service.h" | 
| #include "content/public/browser/browser_thread.h" | 
| +#include "skia/ext/image_operations.h" | 
| #include "sync/protocol/sync.pb.h" | 
| #include "sync/protocol/synced_notification_specifics.pb.h" | 
| +#include "third_party/skia/include/core/SkPaint.h" | 
| +#include "ui/gfx/canvas.h" | 
| +#include "ui/gfx/color_utils.h" | 
| #include "ui/gfx/image/image.h" | 
| +#include "ui/gfx/size.h" | 
| +#include "ui/gfx/skbitmap_operations.h" | 
| +#include "ui/message_center/message_center_style.h" | 
| #include "ui/message_center/message_center_util.h" | 
| #include "ui/message_center/notification_types.h" | 
| @@ -326,6 +334,27 @@ void SyncedNotification::Show(NotificationUIManager* notification_manager, | 
| replace_key, | 
| rich_notification_data, | 
| delegate.get()); | 
| + if (!app_icon_bitmap_.IsEmpty()) { | 
| 
 
Pete Williamson
2014/01/30 00:00:21
Nit: It would be nice to move this change to line
 
dewittj
2014/01/30 00:41:56
Done.
 
 | 
| + // Since we can't control the size of images we download, resize using a | 
| + // high quality filter down to the appropriate icon size. | 
| + // TODO(dewittj): Remove this when correct resources are sent via the | 
| + // protobuf. | 
| + SkBitmap new_app_icon = | 
| + skia::ImageOperations::Resize(app_icon_bitmap_.AsBitmap(), | 
| + skia::ImageOperations::RESIZE_BEST, | 
| + message_center::kSmallImageSize, | 
| + message_center::kSmallImageSize); | 
| + | 
| + // The app icon should be in grayscale. | 
| + // TODO(dewittj): Remove this when correct resources are sent via the | 
| + // protobuf. | 
| + color_utils::HSL shift = {-1, 0, 0.6}; | 
| + SkBitmap grayscale = | 
| + SkBitmapOperations::CreateHSLShiftedBitmap(new_app_icon, shift); | 
| + gfx::Image small_image = | 
| + gfx::Image(gfx::ImageSkia(gfx::ImageSkiaRep(grayscale, 1.0f))); | 
| + ui_notification.set_small_image(small_image); | 
| + } | 
| // In case the notification is not supposed to be toasted, pretend that it | 
| // has already been shown. |