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

Unified Diff: chrome/browser/download/notification/download_item_notification.cc

Issue 1403003004: Revert of Update first download notification correctly if there are multiple notifications (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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/download/notification/download_item_notification.cc
diff --git a/chrome/browser/download/notification/download_item_notification.cc b/chrome/browser/download/notification/download_item_notification.cc
index 41c1d8d7bbbf43de7ccb30c082e162b32acf2ec9..66b5d26ceaaab825b0a72dc4d23298d6851214e4 100644
--- a/chrome/browser/download/notification/download_item_notification.cc
+++ b/chrome/browser/download/notification/download_item_notification.cc
@@ -163,9 +163,7 @@
content::DownloadItem* item,
DownloadNotificationManagerForProfile* manager)
: item_(item),
- message_center_(manager->message_center()),
weak_factory_(this) {
-
// Creates the notification instance. |title|, |body| and |icon| will be
// overridden by UpdateNotificationData() below.
notification_.reset(new Notification(
@@ -201,6 +199,8 @@
}
void DownloadItemNotification::OnNotificationClose() {
+ visible_ = false;
+
if (item_ && item_->IsDangerous() && !item_->IsDone()) {
content::RecordAction(
UserMetricsAction("DownloadNotification.Close_Dangerous"));
@@ -314,7 +314,7 @@
// MessageCenter instance.
// Note that: this calling has no side-effect even when the message center
// is not opened.
- message_center_->RemoveNotification(
+ g_browser_process->message_center()->RemoveNotification(
notification_id_in_message_center, true /* by_user */);
}
@@ -331,11 +331,13 @@
(download_state == content::DownloadItem::INTERRUPTED &&
previous_download_state_ != content::DownloadItem::INTERRUPTED));
- if (IsNotificationVisible()) {
+ if (visible_) {
UpdateNotificationData(popup ? UPDATE_AND_POPUP : UPDATE);
} else {
- if (show_next_ || popup)
+ if (show_next_ || popup) {
UpdateNotificationData(ADD);
+ visible_ = true;
+ }
}
show_next_ = false;
@@ -427,7 +429,7 @@
// immediately when the message center is visible.
// See the comment in MessageCenterImpl::UpdateNotification() for detail.
if (type == UPDATE_AND_POPUP &&
- message_center_->IsMessageCenterVisible() &&
+ g_browser_process->message_center()->IsMessageCenterVisible() &&
(item_->GetState() == content::DownloadItem::COMPLETE ||
item_->GetState() == content::DownloadItem::INTERRUPTED)) {
DCHECK_EQ(notification_->type(),
@@ -899,17 +901,12 @@
bool DownloadItemNotification::IsNotificationVisible() const {
const std::string& notification_id = watcher()->id();
const ProfileID profile_id = NotificationUIManager::GetProfileID(profile());
- if (!g_browser_process->notification_ui_manager())
- return false;
- const Notification* notification = g_browser_process->
- notification_ui_manager()->FindById(notification_id, profile_id);
- if (!notification)
- return false;
-
- const std::string notification_id_in_message_center = notification->id();
+ const std::string notification_id_in_message_center =
+ ProfileNotification::GetProfileNotificationId(notification_id,
+ profile_id);
message_center::NotificationList::Notifications visible_notifications =
- message_center_->GetVisibleNotifications();
+ g_browser_process->message_center()->GetVisibleNotifications();
for (const auto& notification : visible_notifications) {
if (notification->id() == notification_id_in_message_center)
return true;

Powered by Google App Engine
This is Rietveld 408576698