Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(544)

Unified Diff: chrome/browser/notifications/notification_ui_manager_mac.mm

Issue 15715008: Reland 201932: Add API function chrome.notifications.getAll (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/notifications/notification_ui_manager_mac.mm
diff --git a/chrome/browser/notifications/notification_ui_manager_mac.mm b/chrome/browser/notifications/notification_ui_manager_mac.mm
index 59339ed40bf91895d2bb76a061fc24ed3463761d..8fe70f570a5a9425a40a40680c4585ccca816826 100644
--- a/chrome/browser/notifications/notification_ui_manager_mac.mm
+++ b/chrome/browser/notifications/notification_ui_manager_mac.mm
@@ -11,6 +11,7 @@
#include "chrome/browser/notifications/notification.h"
#include "chrome/browser/notifications/balloon_notification_ui_manager.h"
#include "chrome/browser/notifications/message_center_notification_manager.h"
+#include "chrome/browser/profiles/profile.h"
#include "ui/message_center/message_center_util.h"
@class NSUserNotificationCenter;
@@ -161,6 +162,26 @@ void NotificationUIManagerMac::Add(const Notification& notification,
}
}
+std::set<std::string>
+NotificationUIManagerMac::GetAllIdsByProfileAndSourceOrigin(
+ Profile* profile,
jianli 2013/05/24 21:51:20 nit: 4-space indentation
dewittj 2013/05/24 23:03:22 wow, clang-format-diff has made me lazy. Done.
+ const GURL& source_origin) {
+ std::set<std::string> notification_ids =
+ BalloonNotificationUIManager::GetAllIdsByProfileAndSourceOrigin(
+ profile, source_origin);
+
+ for (NotificationMap::iterator it = notification_map_.begin();
+ it != notification_map_.end(); it++) {
jianli 2013/05/24 21:51:20 nit: ++it
dewittj 2013/05/24 23:03:22 Done.
+ if (it->second->model->origin_url() == source_origin &&
jianli 2013/05/24 21:51:20 It might be better to use a temp variable to hold
dewittj 2013/05/24 23:03:22 Done.
+ profile->IsSameProfile(it->second->profile)) {
+ // RemoveNotification will erase from the map, invalidating iterator
jianli 2013/05/24 21:51:20 Not sure I understand this comment. RemoveNotifica
dewittj 2013/05/24 23:03:22 Done.
+ // references to the removed element.
+ notification_ids.insert(it->second->model->notification_id());
+ }
+ }
+
+ return notification_ids;
+}
jianli 2013/05/24 21:51:20 nit: empty line
dewittj 2013/05/24 23:03:22 Done.
bool NotificationUIManagerMac::CancelById(const std::string& notification_id) {
NotificationMap::iterator it = notification_map_.find(notification_id);
if (it == notification_map_.end())

Powered by Google App Engine
This is Rietveld 408576698