Chromium Code Reviews| Index: ui/message_center/notification.h |
| diff --git a/ui/message_center/notification.h b/ui/message_center/notification.h |
| index 122cd6760629823e67d51cc789869a27269cad54..6bfa769610e160786e8bb974f408436921b9fe84 100644 |
| --- a/ui/message_center/notification.h |
| +++ b/ui/message_center/notification.h |
| @@ -16,6 +16,7 @@ |
| #include "ui/message_center/notification_delegate.h" |
| #include "ui/message_center/notification_types.h" |
| #include "ui/message_center/notifier_settings.h" |
| +#include "url/gurl.h" |
| namespace message_center { |
| @@ -33,6 +34,13 @@ struct MESSAGE_CENTER_EXPORT ButtonInfo { |
| ButtonInfo(const base::string16& title); |
| }; |
| +struct MESSAGE_CENTER_EXPORT ContextMessage { |
| + ContextMessage(base::string16 msg, bool use_origin) |
| + : message(msg), use_origin_as_context(use_origin) {} |
| + base::string16 message; |
| + bool use_origin_as_context; |
|
Jun Mukai
2015/08/18 18:28:48
I really want to eliminate this flag (and the stru
Miguel Garcia
2015/08/19 15:02:59
Following our chat yesterday I implemented the cha
|
| +}; |
| + |
| class MESSAGE_CENTER_EXPORT RichNotificationData { |
| public: |
| RichNotificationData(); |
| @@ -42,7 +50,7 @@ class MESSAGE_CENTER_EXPORT RichNotificationData { |
| int priority; |
| bool never_timeout; |
| base::Time timestamp; |
| - base::string16 context_message; |
| + ContextMessage context_message; |
| gfx::Image image; |
| gfx::Image small_image; |
| std::vector<NotificationItem> items; |
| @@ -62,6 +70,7 @@ class MESSAGE_CENTER_EXPORT Notification { |
| const base::string16& message, |
| const gfx::Image& icon, |
| const base::string16& display_source, |
| + const GURL& origin_url, |
| const NotifierId& notifier_id, |
| const RichNotificationData& optional_fields, |
| NotificationDelegate* delegate); |
| @@ -92,6 +101,11 @@ class MESSAGE_CENTER_EXPORT Notification { |
| const base::string16& message() const { return message_; } |
| void set_message(const base::string16& message) { message_ = message; } |
| + // The origin URL of the script which requested the notification. |
| + // Can be empty if the notification is requested by an extension or |
| + // Chrome app. |
| + const GURL& origin_url() const { return origin_url_; } |
| + |
| // A display string for the source of the notification. |
| const base::string16& display_source() const { return display_source_; } |
| @@ -123,11 +137,15 @@ class MESSAGE_CENTER_EXPORT Notification { |
| optional_fields_.timestamp = timestamp; |
| } |
| - const base::string16& context_message() const { |
| + const ContextMessage context_message() const { |
| return optional_fields_.context_message; |
| } |
| - void set_context_message(const base::string16& context_message) { |
| - optional_fields_.context_message = context_message; |
| + |
| + void set_context_message(const base::string16& context_message, |
| + bool use_origin_as_context) { |
| + optional_fields_.context_message.message = context_message; |
| + optional_fields_.context_message.use_origin_as_context = |
| + use_origin_as_context; |
| } |
| const std::vector<NotificationItem>& items() const { |
| @@ -233,6 +251,10 @@ class MESSAGE_CENTER_EXPORT Notification { |
| base::string16 display_source_; |
| private: |
| + // The origin URL of the script which requested the notification. |
| + // Can be empty if requested through a chrome app or extension or if |
| + // it's a system notification. |
| + GURL origin_url_; |
| NotifierId notifier_id_; |
| unsigned serial_number_; |
| RichNotificationData optional_fields_; |