| 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 0d92a79f08dfebd924e07a6b5811bbd2c8b4652d..baa75369cdca7807091290807a69c227ea4af5da 100644
|
| --- a/chrome/browser/notifications/message_center_notification_manager.cc
|
| +++ b/chrome/browser/notifications/message_center_notification_manager.cc
|
| @@ -164,6 +164,9 @@ void MessageCenterNotificationManager::DisableExtension(
|
| const std::string& notification_id) {
|
| ProfileNotification* profile_notification =
|
| FindProfileNotification(notification_id);
|
| + if (!profile_notification)
|
| + return;
|
| +
|
| std::string extension_id = profile_notification->GetExtensionId();
|
| DCHECK(!extension_id.empty()); // or UI should not have enabled the command.
|
| DesktopNotificationService* service =
|
| @@ -176,6 +179,9 @@ void MessageCenterNotificationManager::DisableNotificationsFromSource(
|
| const std::string& notification_id) {
|
| ProfileNotification* profile_notification =
|
| FindProfileNotification(notification_id);
|
| + if (!profile_notification)
|
| + return;
|
| +
|
| // UI should not have enabled the command if there is no valid source.
|
| DCHECK(profile_notification->notification().origin_url().is_valid());
|
| DesktopNotificationService* service =
|
| @@ -194,6 +200,9 @@ void MessageCenterNotificationManager::ShowSettings(
|
|
|
| ProfileNotification* profile_notification =
|
| FindProfileNotification(notification_id);
|
| + if (!profile_notification)
|
| + return;
|
| +
|
| Browser* browser =
|
| chrome::FindOrCreateTabbedBrowser(profile_notification->profile(),
|
| chrome::HOST_DESKTOP_TYPE_NATIVE);
|
| @@ -224,13 +233,20 @@ void MessageCenterNotificationManager::OnNotificationRemoved(
|
|
|
| void MessageCenterNotificationManager::OnNotificationClicked(
|
| const std::string& notification_id) {
|
| - FindProfileNotification(notification_id)->notification().Click();
|
| + ProfileNotification* profile_notification =
|
| + FindProfileNotification(notification_id);
|
| + if (!profile_notification)
|
| + return;
|
| + profile_notification->notification().Click();
|
| }
|
| void MessageCenterNotificationManager::OnNotificationButtonClicked(
|
| const std::string& notification_id,
|
| int button_index) {
|
| - FindProfileNotification(notification_id)->notification().ButtonClick(
|
| - button_index);
|
| + ProfileNotification* profile_notification =
|
| + FindProfileNotification(notification_id);
|
| + if (!profile_notification)
|
| + return;
|
| + profile_notification->notification().ButtonClick(button_index);
|
| }
|
|
|
|
|
| @@ -409,8 +425,8 @@ MessageCenterNotificationManager::ProfileNotification*
|
| MessageCenterNotificationManager::FindProfileNotification(
|
| const std::string& id) const {
|
| NotificationMap::const_iterator iter = profile_notifications_.find(id);
|
| - // If the notification is shown in UI, it must be in the map.
|
| - DCHECK(iter != profile_notifications_.end());
|
| - DCHECK((*iter).second);
|
| + if (iter == profile_notifications_.end())
|
| + return NULL;
|
| +
|
| return (*iter).second;
|
| }
|
|
|