| 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 <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 #if defined(OS_CHROMEOS) | 37 #if defined(OS_CHROMEOS) |
| 38 #include "chrome/browser/notifications/login_state_notification_blocker_chromeos
.h" | 38 #include "chrome/browser/notifications/login_state_notification_blocker_chromeos
.h" |
| 39 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" | 39 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" |
| 40 #endif | 40 #endif |
| 41 | 41 |
| 42 #if defined(USE_ASH) | 42 #if defined(USE_ASH) |
| 43 #include "ash/common/system/web_notification/web_notification_tray.h" | 43 #include "ash/common/system/web_notification/web_notification_tray.h" |
| 44 #include "ash/shell.h" | 44 #include "ash/shell.h" |
| 45 #endif | 45 #endif |
| 46 | 46 |
| 47 using message_center::NotifierId; |
| 47 | 48 |
| 48 MessageCenterNotificationManager::MessageCenterNotificationManager( | 49 MessageCenterNotificationManager::MessageCenterNotificationManager( |
| 49 message_center::MessageCenter* message_center, | 50 message_center::MessageCenter* message_center, |
| 50 std::unique_ptr<message_center::NotifierSettingsProvider> settings_provider) | 51 std::unique_ptr<message_center::NotifierSettingsProvider> settings_provider) |
| 51 : message_center_(message_center), | 52 : message_center_(message_center), |
| 52 settings_provider_(std::move(settings_provider)), | 53 settings_provider_(std::move(settings_provider)), |
| 53 system_observer_(this), | 54 system_observer_(this), |
| 54 stats_collector_(message_center), | 55 stats_collector_(message_center), |
| 55 google_now_stats_collector_(message_center) { | 56 google_now_stats_collector_(message_center) { |
| 56 message_center_->AddObserver(this); | 57 message_center_->AddObserver(this); |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 // Delete the old one after the new one is created to ensure we don't run | 151 // Delete the old one after the new one is created to ensure we don't run |
| 151 // out of KeepAlives. | 152 // out of KeepAlives. |
| 152 delete old_notification; | 153 delete old_notification; |
| 153 profile_notifications_.erase(old_id); | 154 profile_notifications_.erase(old_id); |
| 154 profile_notifications_[new_notification->notification().id()] = | 155 profile_notifications_[new_notification->notification().id()] = |
| 155 new_notification; | 156 new_notification; |
| 156 | 157 |
| 157 // TODO(liyanhou): Add routing updated notifications to alternative | 158 // TODO(liyanhou): Add routing updated notifications to alternative |
| 158 // providers. | 159 // providers. |
| 159 | 160 |
| 161 // Non-persistent Web Notifications rely on receiving the Display() event |
| 162 // to inform the developer, even when replacing a previous notification. |
| 163 if (notification.notifier_id().type == NotifierId::WEB_PAGE) |
| 164 notification.delegate()->Display(); |
| 165 |
| 160 // WARNING: You MUST use AddProfileNotification or update the message | 166 // WARNING: You MUST use AddProfileNotification or update the message |
| 161 // center via the notification within a ProfileNotification object or the | 167 // center via the notification within a ProfileNotification object or the |
| 162 // profile ID will not be correctly set for ChromeOS. | 168 // profile ID will not be correctly set for ChromeOS. |
| 163 message_center_->UpdateNotification( | 169 message_center_->UpdateNotification( |
| 164 old_id, base::WrapUnique(new message_center::Notification( | 170 old_id, base::WrapUnique(new message_center::Notification( |
| 165 new_notification->notification()))); | 171 new_notification->notification()))); |
| 166 | 172 |
| 167 return true; | 173 return true; |
| 168 } | 174 } |
| 169 } | 175 } |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 it != registry->enabled_extensions().end(); | 385 it != registry->enabled_extensions().end(); |
| 380 ++it) { | 386 ++it) { |
| 381 if ((*it->get()).permissions_data()->HasAPIPermission( | 387 if ((*it->get()).permissions_data()->HasAPIPermission( |
| 382 extensions::APIPermission::ID::kNotificationProvider)) { | 388 extensions::APIPermission::ID::kNotificationProvider)) { |
| 383 extension_id = (*it->get()).id(); | 389 extension_id = (*it->get()).id(); |
| 384 return extension_id; | 390 return extension_id; |
| 385 } | 391 } |
| 386 } | 392 } |
| 387 return extension_id; | 393 return extension_id; |
| 388 } | 394 } |
| OLD | NEW |