Index: ui/message_center/message_center_impl.cc |
diff --git a/ui/message_center/message_center_impl.cc b/ui/message_center/message_center_impl.cc |
index 012d0dfeb4a2aaf101e93812edc0c3a5c3dd3636..d89f9816ce18569210288199a67f46780bb8fd7b 100644 |
--- a/ui/message_center/message_center_impl.cc |
+++ b/ui/message_center/message_center_impl.cc |
@@ -106,8 +106,15 @@ void MessageCenterImpl::UpdateNotification( |
const base::DictionaryValue* optional_fields) { |
notification_list_->UpdateNotificationMessage( |
old_id, new_id, title, message, optional_fields); |
- FOR_EACH_OBSERVER(MessageCenterObserver, observer_list_, |
- OnNotificationUpdated(new_id)); |
+ if (old_id == new_id) { |
+ FOR_EACH_OBSERVER(MessageCenterObserver, observer_list_, |
+ OnNotificationUpdated(new_id)); |
+ } else { |
+ FOR_EACH_OBSERVER(MessageCenterObserver, observer_list_, |
+ OnNotificationRemoved(old_id, false)); |
+ FOR_EACH_OBSERVER(MessageCenterObserver, observer_list_, |
+ OnNotificationAdded(new_id)); |
+ } |
} |
void MessageCenterImpl::RemoveNotification(const std::string& id, |