| Index: chrome/browser/download/notification/download_notification_item.cc
|
| diff --git a/chrome/browser/download/notification/download_notification_item.cc b/chrome/browser/download/notification/download_notification_item.cc
|
| index 78a7ecf444b82275d0f651c655fcfed9d6e022fc..bc9a7f07b0f00b21ef8098bcb7b475b63ef1086a 100644
|
| --- a/chrome/browser/download/notification/download_notification_item.cc
|
| +++ b/chrome/browser/download/notification/download_notification_item.cc
|
| @@ -112,22 +112,34 @@ DownloadNotificationItem::~DownloadNotificationItem() {
|
| }
|
|
|
| void DownloadNotificationItem::OnNotificationClick() {
|
| - if (openable_) {
|
| - if (item_->IsDone()) {
|
| + if (item_->IsDangerous()) {
|
| +#if defined(FULL_SAFE_BROWSING)
|
| + DownloadCommands(item_).ExecuteCommand(
|
| + DownloadCommands::LEARN_MORE_SCANNING);
|
| +#else
|
| + CloseNotificationByUser();
|
| +#endif
|
| + return;
|
| + }
|
| +
|
| + switch (item_->GetState()) {
|
| + case content::DownloadItem::IN_PROGRESS:
|
| + item_->SetOpenWhenComplete(!item_->GetOpenWhenComplete()); // Toggle
|
| + break;
|
| + case content::DownloadItem::CANCELLED:
|
| + case content::DownloadItem::INTERRUPTED:
|
| + GetBrowser()->OpenURL(content::OpenURLParams(
|
| + GURL(chrome::kChromeUIDownloadsURL), content::Referrer(),
|
| + NEW_FOREGROUND_TAB, ui::PAGE_TRANSITION_LINK,
|
| + false /* is_renderer_initiated */));
|
| + CloseNotificationByUser();
|
| + break;
|
| + case content::DownloadItem::COMPLETE:
|
| item_->OpenDownload();
|
| CloseNotificationByUser();
|
| - } else {
|
| - item_->SetOpenWhenComplete(!item_->GetOpenWhenComplete()); // Toggle
|
| - }
|
| - } else if (item_->GetState() == content::DownloadItem::INTERRUPTED ||
|
| - item_->GetState() == content::DownloadItem::CANCELLED) {
|
| - GetBrowser()->OpenURL(content::OpenURLParams(
|
| - GURL(chrome::kChromeUIDownloadsURL), content::Referrer(),
|
| - NEW_FOREGROUND_TAB, ui::PAGE_TRANSITION_LINK,
|
| - false /* is_renderer_initiated */));
|
| - CloseNotificationByUser();
|
| - } else if (item_->IsDone()) {
|
| - CloseNotificationByUser();
|
| + break;
|
| + case content::DownloadItem::MAX_DOWNLOAD_STATE:
|
| + NOTREACHED();
|
| }
|
| }
|
|
|
| @@ -266,20 +278,15 @@ void DownloadNotificationItem::UpdateNotificationData(
|
|
|
| std::vector<message_center::ButtonInfo> notification_actions;
|
| scoped_ptr<std::vector<DownloadCommands::Command>> actions(
|
| - GetPossibleActions().Pass());
|
| + GetExtraActions().Pass());
|
|
|
| - openable_ = false;
|
| button_actions_.reset(new std::vector<DownloadCommands::Command>);
|
| for (auto it = actions->begin(); it != actions->end(); it++) {
|
| - if (*it == DownloadCommands::OPEN_WHEN_COMPLETE) {
|
| - openable_ = true;
|
| - } else {
|
| - button_actions_->push_back(*it);
|
| - message_center::ButtonInfo button_info =
|
| - message_center::ButtonInfo(GetCommandLabel(*it));
|
| - button_info.icon = command.GetCommandIcon(*it);
|
| - notification_actions.push_back(button_info);
|
| - }
|
| + button_actions_->push_back(*it);
|
| + message_center::ButtonInfo button_info =
|
| + message_center::ButtonInfo(GetCommandLabel(*it));
|
| + button_info.icon = command.GetCommandIcon(*it);
|
| + notification_actions.push_back(button_info);
|
| }
|
| notification_->set_buttons(notification_actions);
|
|
|
| @@ -348,7 +355,7 @@ NotificationUIManager* DownloadNotificationItem::notification_ui_manager()
|
| }
|
|
|
| scoped_ptr<std::vector<DownloadCommands::Command>>
|
| -DownloadNotificationItem::GetPossibleActions() const {
|
| +DownloadNotificationItem::GetExtraActions() const {
|
| scoped_ptr<std::vector<DownloadCommands::Command>> actions(
|
| new std::vector<DownloadCommands::Command>());
|
|
|
| @@ -360,7 +367,6 @@ DownloadNotificationItem::GetPossibleActions() const {
|
|
|
| switch (item_->GetState()) {
|
| case content::DownloadItem::IN_PROGRESS:
|
| - actions->push_back(DownloadCommands::OPEN_WHEN_COMPLETE);
|
| if (!item_->IsPaused())
|
| actions->push_back(DownloadCommands::PAUSE);
|
| else
|
| @@ -373,7 +379,6 @@ DownloadNotificationItem::GetPossibleActions() const {
|
| actions->push_back(DownloadCommands::RESUME);
|
| break;
|
| case content::DownloadItem::COMPLETE:
|
| - actions->push_back(DownloadCommands::OPEN_WHEN_COMPLETE);
|
| actions->push_back(DownloadCommands::SHOW_IN_FOLDER);
|
| break;
|
| case content::DownloadItem::MAX_DOWNLOAD_STATE:
|
|
|