OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/notifications/message_center_notification_manager.h" | 5 #include "chrome/browser/notifications/message_center_notification_manager.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "chrome/browser/extensions/extension_info_map.h" | 10 #include "chrome/browser/extensions/extension_info_map.h" |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 bool by_user) { | 235 bool by_user) { |
236 // Do not call FindProfileNotification(). Some tests create notifications | 236 // Do not call FindProfileNotification(). Some tests create notifications |
237 // directly to MessageCenter, but this method will be called for the removals | 237 // directly to MessageCenter, but this method will be called for the removals |
238 // of such notifications. | 238 // of such notifications. |
239 NotificationMap::const_iterator iter = | 239 NotificationMap::const_iterator iter = |
240 profile_notifications_.find(notification_id); | 240 profile_notifications_.find(notification_id); |
241 if (iter != profile_notifications_.end()) | 241 if (iter != profile_notifications_.end()) |
242 RemoveProfileNotification(iter->second, by_user); | 242 RemoveProfileNotification(iter->second, by_user); |
243 } | 243 } |
244 | 244 |
245 void MessageCenterNotificationManager::OnNotificationClicked( | |
246 const std::string& notification_id) { | |
247 ProfileNotification* profile_notification = | |
248 FindProfileNotification(notification_id); | |
249 if (!profile_notification) | |
250 return; | |
251 profile_notification->notification().Click(); | |
252 } | |
253 | |
254 void MessageCenterNotificationManager::OnNotificationButtonClicked( | |
255 const std::string& notification_id, | |
256 int button_index) { | |
257 ProfileNotification* profile_notification = | |
258 FindProfileNotification(notification_id); | |
259 if (!profile_notification) | |
260 return; | |
261 profile_notification->notification().ButtonClick(button_index); | |
262 } | |
263 | |
264 void MessageCenterNotificationManager::OnNotificationDisplayed( | |
265 const std::string& notification_id) { | |
266 FindProfileNotification(notification_id)->notification().Display(); | |
267 } | |
268 | |
269 //////////////////////////////////////////////////////////////////////////////// | 245 //////////////////////////////////////////////////////////////////////////////// |
270 // ImageDownloads | 246 // ImageDownloads |
271 | 247 |
272 MessageCenterNotificationManager::ImageDownloads::ImageDownloads( | 248 MessageCenterNotificationManager::ImageDownloads::ImageDownloads( |
273 message_center::MessageCenter* message_center, | 249 message_center::MessageCenter* message_center, |
274 ImageDownloadsObserver* observer) | 250 ImageDownloadsObserver* observer) |
275 : message_center_(message_center), | 251 : message_center_(message_center), |
276 pending_downloads_(0), | 252 pending_downloads_(0), |
277 observer_(observer) { | 253 observer_(observer) { |
278 } | 254 } |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
458 // Notification ids should be unique. | 434 // Notification ids should be unique. |
459 DCHECK(profile_notifications_.find(id) == profile_notifications_.end()); | 435 DCHECK(profile_notifications_.find(id) == profile_notifications_.end()); |
460 profile_notifications_[id] = profile_notification; | 436 profile_notifications_[id] = profile_notification; |
461 | 437 |
462 message_center_->AddNotification(notification.type(), | 438 message_center_->AddNotification(notification.type(), |
463 notification.notification_id(), | 439 notification.notification_id(), |
464 notification.title(), | 440 notification.title(), |
465 notification.body(), | 441 notification.body(), |
466 notification.display_source(), | 442 notification.display_source(), |
467 profile_notification->GetExtensionId(), | 443 profile_notification->GetExtensionId(), |
468 notification.optional_fields()); | 444 notification.optional_fields(), |
| 445 notification.delegate()); |
469 profile_notification->StartDownloads(); | 446 profile_notification->StartDownloads(); |
470 } | 447 } |
471 | 448 |
472 void MessageCenterNotificationManager::RemoveProfileNotification( | 449 void MessageCenterNotificationManager::RemoveProfileNotification( |
473 ProfileNotification* profile_notification, | 450 ProfileNotification* profile_notification, |
474 bool by_user) { | 451 bool by_user) { |
475 profile_notification->notification().Close(by_user); | 452 profile_notification->notification().Close(by_user); |
476 std::string id = profile_notification->notification().notification_id(); | 453 std::string id = profile_notification->notification().notification_id(); |
477 profile_notifications_.erase(id); | 454 profile_notifications_.erase(id); |
478 delete profile_notification; | 455 delete profile_notification; |
479 } | 456 } |
480 | 457 |
481 MessageCenterNotificationManager::ProfileNotification* | 458 MessageCenterNotificationManager::ProfileNotification* |
482 MessageCenterNotificationManager::FindProfileNotification( | 459 MessageCenterNotificationManager::FindProfileNotification( |
483 const std::string& id) const { | 460 const std::string& id) const { |
484 NotificationMap::const_iterator iter = profile_notifications_.find(id); | 461 NotificationMap::const_iterator iter = profile_notifications_.find(id); |
485 if (iter == profile_notifications_.end()) | 462 if (iter == profile_notifications_.end()) |
486 return NULL; | 463 return NULL; |
487 | 464 |
488 return (*iter).second; | 465 return (*iter).second; |
489 } | 466 } |
OLD | NEW |