summaryrefslogtreecommitdiffstats
path: root/chrome/browser/notifications/notification.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/notifications/notification.h')
-rw-r--r--chrome/browser/notifications/notification.h76
1 files changed, 30 insertions, 46 deletions
diff --git a/chrome/browser/notifications/notification.h b/chrome/browser/notifications/notification.h
index bbbe73f..3936aea 100644
--- a/chrome/browser/notifications/notification.h
+++ b/chrome/browser/notifications/notification.h
@@ -15,13 +15,14 @@
#include "googleurl/src/gurl.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebTextDirection.h"
#include "ui/gfx/image/image.h"
+#include "ui/message_center/notification.h"
#include "ui/message_center/notification_types.h"
// Representation of a notification to be shown to the user.
// On non-Ash platforms these are rendered as HTML, sometimes described by a
// data url converted from text + icon data. On Ash they are rendered as
// formated text and icon data.
-class Notification {
+class Notification : public message_center::Notification {
public:
// Initializes a notification with HTML content.
Notification(const GURL& origin_url,
@@ -65,100 +66,83 @@ class Notification {
const string16& replace_id,
NotificationDelegate* delegate);
+ Notification(
+ message_center::NotificationType type,
+ const GURL& origin_url,
+ const string16& title,
+ const string16& body,
+ const gfx::Image& icon,
+ WebKit::WebTextDirection dir,
+ const string16& display_source,
+ const string16& replace_id,
+ const message_center::RichNotificationData& rich_notification_data,
+ NotificationDelegate* delegate);
+
Notification(const Notification& notification);
- ~Notification();
+ virtual ~Notification();
Notification& operator=(const Notification& notification);
// If this is a HTML notification.
bool is_html() const { return is_html_; }
- message_center::NotificationType type() const {
- return type_;
- }
-
// The URL (may be data:) containing the contents for the notification.
const GURL& content_url() const { return content_url_; }
- // Title and message text of the notification.
- const string16& title() const { return title_; }
- const string16& body() const { return body_; }
-
// The origin URL of the script which requested the notification.
const GURL& origin_url() const { return origin_url_; }
// A url for the icon to be shown (optional).
const GURL& icon_url() const { return icon_url_; }
- // An image for the icon to be shown (optional).
- const gfx::Image& icon() const { return icon_; }
-
- // A display string for the source of the notification.
- const string16& display_source() const { return display_source_; }
-
// A unique identifier used to update (replace) or remove a notification.
const string16& replace_id() const { return replace_id_; }
- const DictionaryValue* optional_fields() const {
- return optional_fields_.get();
- }
+ // A url for the button icons to be shown (optional).
+ const GURL& button_one_icon_url() const { return button_one_icon_url_; }
+ const GURL& button_two_icon_url() const { return button_two_icon_url_; }
- // Marks this explicitly to prevent the timeout dismiss of notification.
- // This is used by webkit notifications to keep the existing behavior.
- void DisableTimeout();
-
- void Display() const { delegate()->Display(); }
- void Error() const { delegate()->Error(); }
- bool HasClickedListener() const { return delegate()->HasClickedListener(); }
- void Click() const { delegate()->Click(); }
- void ButtonClick(int index) const { delegate()->ButtonClick(index); }
- void Close(bool by_user) const { delegate()->Close(by_user); }
- void DoneRendering() { delegate()->ReleaseRenderViewHost(); }
+ // A url for the image to be shown (optional).
+ const GURL& image_url() const { return image_url_; }
std::string notification_id() const { return delegate()->id(); }
-
int process_id() const { return delegate()->process_id(); }
content::RenderViewHost* GetRenderViewHost() const {
return delegate()->GetRenderViewHost();
}
+ void DoneRendering() { delegate()->ReleaseRenderViewHost(); }
NotificationDelegate* delegate() const { return delegate_.get(); }
private:
- // The type of notification we'd like displayed.
- message_center::NotificationType type_;
+ // Extracts optional URLs from a dictionary value.
+ void ApplyOptionalFields(const DictionaryValue* optional_fields);
// The Origin of the page/worker which created this notification.
GURL origin_url_;
- // Image data for the associated icon, used by Ash when available.
- gfx::Image icon_;
-
// URL for the icon associated with the notification. Requires delegate_
// to have a non NULL RenderViewHost.
GURL icon_url_;
// If this is a HTML notification, the content is in |content_url_|. If
- // false, the data is in |title_| and |body_|.
+ // false, the data is in |title_| and |message_|.
bool is_html_;
// The URL of the HTML content of the toast (may be a data: URL for simple
// string-based notifications).
GURL content_url_;
- // The content for a text notification.
- string16 title_;
- string16 body_;
+ // The URLs of the button images for a rich notification.
+ GURL button_one_icon_url_;
+ GURL button_two_icon_url_;
- // The display string for the source of the notification. Could be
- // the same as origin_url_, or the name of an extension.
- string16 display_source_;
+ // The URL of a large image to be displayed for a a rich notification.
+ GURL image_url_;
- // The replace ID for the notification.
+ // The user-supplied replace ID for the notification.
string16 replace_id_;
- scoped_ptr<DictionaryValue> optional_fields_;
-
// A proxy object that allows access back to the JavaScript object that
// represents the notification, for firing events.
scoped_refptr<NotificationDelegate> delegate_;