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

Unified Diff: chrome/browser/notifications/message_center_notification_manager.cc

Issue 1155453002: Passing ProfileID instead of Profile* to clarify that profile should not be used for making any cal… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes as per review comments. Created 5 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/message_center_notification_manager.cc
diff --git a/chrome/browser/notifications/message_center_notification_manager.cc b/chrome/browser/notifications/message_center_notification_manager.cc
index e4c54e7430d9f8d01001fee859ab5e2d69c42799..273dcf2c38e2fb5ecd56b792043bcbfc10911f69 100644
--- a/chrome/browser/notifications/message_center_notification_manager.cc
+++ b/chrome/browser/notifications/message_center_notification_manager.cc
@@ -139,7 +139,8 @@ void MessageCenterNotificationManager::Add(const Notification& notification,
// route notifications to one of the apps/extensions.
std::string extension_id = GetExtensionTakingOverNotifications(profile);
if (!extension_id.empty())
- AddNotificationToAlternateProvider(profile_notification, extension_id);
+ AddNotificationToAlternateProvider(profile_notification->notification(),
+ profile, extension_id);
message_center_->AddNotification(make_scoped_ptr(
new message_center::Notification(profile_notification->notification())));
@@ -162,7 +163,8 @@ bool MessageCenterNotificationManager::Update(const Notification& notification,
ProfileNotification* old_notification = (*iter).second;
if (old_notification->notification().tag() == tag &&
old_notification->notification().origin_url() == origin_url &&
- old_notification->profile() == profile) {
+ old_notification->profile_id() ==
+ NotificationUIManager::GetProfileID(profile)) {
// Changing the type from non-progress to progress does not count towards
// the immediate update allowed in the message center.
std::string old_id = old_notification->notification().id();
@@ -231,15 +233,12 @@ bool MessageCenterNotificationManager::CancelById(
std::set<std::string>
MessageCenterNotificationManager::GetAllIdsByProfileAndSourceOrigin(
- Profile* profile,
+ ProfileID profile_id,
const GURL& source) {
- // The profile pointer can be weak, the instance may have been destroyed, so
- // no profile method should be called inside this function.
-
std::set<std::string> delegate_ids;
for (const auto& pair : profile_notifications_) {
const Notification& notification = pair.second->notification();
- if (pair.second->profile() == profile &&
+ if (pair.second->profile_id() == profile_id &&
notification.origin_url() == source) {
delegate_ids.insert(notification.delegate_id());
}
@@ -249,13 +248,10 @@ MessageCenterNotificationManager::GetAllIdsByProfileAndSourceOrigin(
}
std::set<std::string> MessageCenterNotificationManager::GetAllIdsByProfile(
- Profile* profile) {
- // The profile pointer can be weak, the instance may have been destroyed, so
- // no profile method should be called inside this function.
-
+ ProfileID profile_id) {
std::set<std::string> delegate_ids;
for (const auto& pair : profile_notifications_) {
- if (pair.second->profile() == profile)
+ if (pair.second->profile_id() == profile_id)
delegate_ids.insert(pair.second->notification().delegate_id());
}
@@ -289,8 +285,7 @@ bool MessageCenterNotificationManager::CancelAllByProfile(
for (NotificationMap::iterator loopiter = profile_notifications_.begin();
loopiter != profile_notifications_.end(); ) {
NotificationMap::iterator curiter = loopiter++;
- if (profile_id == NotificationUIManager::GetProfileID(
- (*curiter).second->profile())) {
+ if (profile_id == (*curiter).second->profile_id()) {
const std::string id = curiter->first;
RemoveProfileNotification(curiter->second);
message_center_->RemoveNotification(id, /* by_user */ false);
@@ -364,18 +359,16 @@ MessageCenterNotificationManager::GetMessageCenterNotificationIdForTest(
// private
void MessageCenterNotificationManager::AddNotificationToAlternateProvider(
- ProfileNotification* profile_notification,
+ const Notification& notification,
+ Profile* profile,
const std::string& extension_id) const {
- const Notification& notification = profile_notification->notification();
-
// Convert data from Notification type to NotificationOptions type.
extensions::api::notifications::NotificationOptions options;
NotificationConversionHelper::NotificationToNotificationOptions(notification,
&options);
// Send the notification to the alternate provider extension/app.
- extensions::NotificationProviderEventRouter event_router(
- profile_notification->profile());
+ extensions::NotificationProviderEventRouter event_router(profile);
event_router.CreateNotification(extension_id,
notification.notifier_id().id,
notification.delegate_id(),

Powered by Google App Engine
This is Rietveld 408576698