diff --git a/brightray/browser/linux/libnotify_notification.cc b/brightray/browser/linux/libnotify_notification.cc index 3d9fec263e..399416a572 100644 --- a/brightray/browser/linux/libnotify_notification.cc +++ b/brightray/browser/linux/libnotify_notification.cc @@ -80,6 +80,7 @@ LibnotifyNotification::~LibnotifyNotification() { void LibnotifyNotification::Show(const base::string16& title, const base::string16& body, + const std::string& tag, const GURL& icon_url, const SkBitmap& icon, const bool silent) { @@ -108,6 +109,11 @@ void LibnotifyNotification::Show(const base::string16& title, g_object_unref(pixbuf); } + if (!tag.empty()) { + GQuark id = g_quark_from_string(tag.c_str()); + g_object_set(G_OBJECT(notification_), "id", id, NULL); + } + GError* error = nullptr; libnotify_loader_.notify_notification_show(notification_, &error); if (error) { diff --git a/brightray/browser/linux/libnotify_notification.h b/brightray/browser/linux/libnotify_notification.h index 24a4debada..40d52cac41 100644 --- a/brightray/browser/linux/libnotify_notification.h +++ b/brightray/browser/linux/libnotify_notification.h @@ -22,6 +22,7 @@ class LibnotifyNotification : public Notification { // Notification: void Show(const base::string16& title, const base::string16& msg, + const std::string& tag, const GURL& icon_url, const SkBitmap& icon, const bool silent) override; diff --git a/brightray/browser/mac/cocoa_notification.h b/brightray/browser/mac/cocoa_notification.h index 8cefb3a59b..dd7d3cae4b 100644 --- a/brightray/browser/mac/cocoa_notification.h +++ b/brightray/browser/mac/cocoa_notification.h @@ -22,6 +22,7 @@ class CocoaNotification : public Notification { // Notification: void Show(const base::string16& title, const base::string16& msg, + const std::string& tag, const GURL& icon_url, const SkBitmap& icon, const bool silent) override; diff --git a/brightray/browser/mac/cocoa_notification.mm b/brightray/browser/mac/cocoa_notification.mm index fefae39788..febd2af4c9 100644 --- a/brightray/browser/mac/cocoa_notification.mm +++ b/brightray/browser/mac/cocoa_notification.mm @@ -30,6 +30,7 @@ CocoaNotification::~CocoaNotification() { void CocoaNotification::Show(const base::string16& title, const base::string16& body, + const std::string& tag, const GURL& icon_url, const SkBitmap& icon, const bool silent) { diff --git a/brightray/browser/notification.h b/brightray/browser/notification.h index 5f1396c8e3..30ac680d25 100644 --- a/brightray/browser/notification.h +++ b/brightray/browser/notification.h @@ -21,6 +21,7 @@ class Notification { // Shows the notification. virtual void Show(const base::string16& title, const base::string16& msg, + const std::string& tag, const GURL& icon_url, const SkBitmap& icon, const bool silent) = 0; diff --git a/brightray/browser/platform_notification_service.cc b/brightray/browser/platform_notification_service.cc index 7971f28100..146cd968c9 100644 --- a/brightray/browser/platform_notification_service.cc +++ b/brightray/browser/platform_notification_service.cc @@ -37,7 +37,7 @@ void OnWebNotificationAllowed( auto notification = presenter->CreateNotification(adapter.get()); if (notification) { ignore_result(adapter.release()); // it will release itself automatically. - notification->Show(data.title, data.body, data.icon, icon, data.silent); + notification->Show(data.title, data.body, data.tag, data.icon, icon, data.silent); *cancel_callback = base::Bind(&RemoveNotification, notification); } } diff --git a/brightray/browser/win/windows_toast_notification.cc b/brightray/browser/win/windows_toast_notification.cc index a744c88815..401473b9c3 100644 --- a/brightray/browser/win/windows_toast_notification.cc +++ b/brightray/browser/win/windows_toast_notification.cc @@ -84,6 +84,7 @@ WindowsToastNotification::~WindowsToastNotification() { void WindowsToastNotification::Show( const base::string16& title, const base::string16& msg, + const std::string& tag, const GURL& icon_url, const SkBitmap& icon, const bool silent) { diff --git a/brightray/browser/win/windows_toast_notification.h b/brightray/browser/win/windows_toast_notification.h index d5e5f2a82c..c603ce3d79 100644 --- a/brightray/browser/win/windows_toast_notification.h +++ b/brightray/browser/win/windows_toast_notification.h @@ -41,6 +41,7 @@ class WindowsToastNotification : public Notification { // Notification: void Show(const base::string16& title, const base::string16& msg, + const std::string& tag, const GURL& icon_url, const SkBitmap& icon, const bool silent) override;