Index: chrome/browser/download/notification/download_notification_item.h |
diff --git a/chrome/browser/download/notification/download_notification_item.h b/chrome/browser/download/notification/download_notification_item.h |
index 76fb48b9e5a7e4c9d8b96d5f6850b98f4ec504be..4be50d2f6dcda278d9df8413545c379726081b4e 100644 |
--- a/chrome/browser/download/notification/download_notification_item.h |
+++ b/chrome/browser/download/notification/download_notification_item.h |
@@ -9,11 +9,13 @@ |
#include "base/strings/string_number_conversions.h" |
#include "chrome/browser/download/download_commands.h" |
+#include "chrome/browser/image_decoder.h" |
#include "chrome/browser/notifications/notification.h" |
#include "chrome/browser/notifications/notification_delegate.h" |
#include "chrome/browser/notifications/notification_test_util.h" |
#include "content/public/browser/download_item.h" |
#include "grit/theme_resources.h" |
+#include "third_party/skia/include/core/SkBitmap.h" |
#include "ui/message_center/message_center.h" |
#include "ui/message_center/message_center_observer.h" |
@@ -21,7 +23,8 @@ namespace test { |
class DownloadNotificationItemTest; |
} |
-class DownloadNotificationItem : public content::DownloadItem::Observer { |
+class DownloadNotificationItem : public content::DownloadItem::Observer, |
+ public ImageDecoder::ImageRequest { |
public: |
class Delegate { |
public: |
@@ -86,7 +89,16 @@ class DownloadNotificationItem : public content::DownloadItem::Observer { |
void CloseNotificationByUser(); |
void CloseNotificationByNonUser(); |
void UpdateNotificationData(NotificationUpdateType type); |
- void SetNotificationImage(int resource_id); |
+ |
+ // Set icon of the notification. |
+ void SetNotificationIcon(int resource_id); |
+ |
+ // Set preview image of the notification. Must be called on IO thread. |
+ void OnImageLoaded(std::string image_data); |
+ |
+ // ImageDecoder::ImageRequest overrides: |
+ void OnImageDecoded(const SkBitmap& decoded_image) override; |
+ void OnDecodeImageFailed() override; |
NotificationUIManager* notification_ui_manager() const; |
@@ -115,6 +127,11 @@ class DownloadNotificationItem : public content::DownloadItem::Observer { |
scoped_ptr<std::vector<DownloadCommands::Command>> button_actions_; |
Delegate* const delegate_; |
+ // Whether the preview image been has set or not. |
+ bool set_image_ = false; |
+ |
+ base::WeakPtrFactory<DownloadNotificationItem> weak_factory_; |
+ |
DISALLOW_COPY_AND_ASSIGN(DownloadNotificationItem); |
}; |