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

Unified Diff: chrome/browser/download/download_shelf_context_menu.cc

Issue 852043002: Initial Implementation of Download Notification (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 years, 10 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/download_shelf_context_menu.cc
diff --git a/chrome/browser/download/download_shelf_context_menu.cc b/chrome/browser/download/download_shelf_context_menu.cc
index 0c87b3d88cb56d55f3587fbaddde801f243adeff..7ad4a34277df3243e2b2f8c156ec4c6b8ed538df 100644
--- a/chrome/browser/download/download_shelf_context_menu.cc
+++ b/chrome/browser/download/download_shelf_context_menu.cc
@@ -5,26 +5,12 @@
#include "chrome/browser/download/download_shelf_context_menu.h"
#include "base/command_line.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/download/download_crx_util.h"
#include "chrome/browser/download/download_item_model.h"
-#include "chrome/browser/download/download_prefs.h"
-#include "chrome/browser/download/download_target_determiner.h"
-#include "chrome/browser/safe_browsing/download_protection_service.h"
-#include "chrome/browser/safe_browsing/safe_browsing_service.h"
-#include "chrome/common/url_constants.h"
#include "chrome/grit/generated_resources.h"
-#include "content/public/browser/download_item.h"
-#include "content/public/browser/download_manager.h"
-#include "content/public/browser/page_navigator.h"
#include "content/public/common/content_switches.h"
#include "extensions/common/extension.h"
#include "ui/base/l10n/l10n_util.h"
-#if defined(OS_WIN)
-#include "chrome/browser/ui/pdf/adobe_reader_info_win.h"
-#endif
-
using content::DownloadItem;
namespace {
@@ -41,21 +27,13 @@ DownloadShelfContextMenu::~DownloadShelfContextMenu() {
DetachFromDownloadItem();
}
-DownloadShelfContextMenu::DownloadShelfContextMenu(
- DownloadItem* download_item,
- content::PageNavigator* navigator)
+DownloadShelfContextMenu::DownloadShelfContextMenu(DownloadItem* download_item,
+ Profile* profile)
asanka 2015/02/27 01:26:49 As mentioned elsewhere, Profile* is implicit for a
yoshiki 2015/02/28 10:50:53 Done.
: download_item_(download_item),
- navigator_(navigator) {
+ download_commands_(download_item),
asanka 2015/02/27 01:26:49 Make download_commands_ a scoped_ptr<> and reset i
yoshiki 2015/02/28 10:50:53 Done.
+ profile_(profile) {
DCHECK(download_item_);
download_item_->AddObserver(this);
-
-#if defined(OS_WIN)
- is_adobe_pdf_reader_up_to_date_ = false;
- if (IsDownloadPdf() && IsAdobeReaderDefaultPDFViewer()) {
- is_adobe_pdf_reader_up_to_date_ =
- DownloadTargetDeterminer::IsAdobeReaderUpToDate();
- }
-#endif // defined(OS_WIN)
}
ui::SimpleMenuModel* DownloadShelfContextMenu::GetMenuModel() {
@@ -77,196 +55,106 @@ ui::SimpleMenuModel* DownloadShelfContextMenu::GetMenuModel() {
model = GetFinishedMenuModel();
else if (download_item_->GetState() == DownloadItem::INTERRUPTED)
model = GetInterruptedMenuModel();
+ else if (download_item_->IsPaused())
+ model = GetInProgressPausedMenuModel();
else
model = GetInProgressMenuModel();
return model;
}
bool DownloadShelfContextMenu::IsCommandIdEnabled(int command_id) const {
- if (!download_item_)
- return false;
-
- switch (static_cast<ContextMenuCommands>(command_id)) {
- case SHOW_IN_FOLDER:
- return download_item_->CanShowInFolder();
- case OPEN_WHEN_COMPLETE:
- case PLATFORM_OPEN:
- return download_item_->CanOpenDownload() &&
- !download_crx_util::IsExtensionDownload(*download_item_);
- case ALWAYS_OPEN_TYPE:
- // For temporary downloads, the target filename might be a temporary
- // filename. Don't base an "Always open" decision based on it. Also
- // exclude extensions.
- return download_item_->CanOpenDownload() &&
- !download_crx_util::IsExtensionDownload(*download_item_);
- case CANCEL:
- return !download_item_->IsDone();
- case TOGGLE_PAUSE:
- return !download_item_->IsDone();
- case DISCARD:
- case KEEP:
- case LEARN_MORE_SCANNING:
- case LEARN_MORE_INTERRUPTED:
- return true;
- }
- NOTREACHED();
- return false;
+ return download_commands_.IsCommandEnabled(
+ static_cast<DownloadCommands::Command>(command_id));
}
bool DownloadShelfContextMenu::IsCommandIdChecked(int command_id) const {
- if (!download_item_)
- return false;
-
- switch (command_id) {
- case OPEN_WHEN_COMPLETE:
- return download_item_->GetOpenWhenComplete() ||
- download_crx_util::IsExtensionDownload(*download_item_);
- case ALWAYS_OPEN_TYPE:
-#if defined(OS_WIN) || defined(OS_LINUX) || \
- (defined(OS_MACOSX) && !defined(OS_IOS))
- if (CanOpenPdfInSystemViewer()) {
- DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(
- download_item_->GetBrowserContext());
- return prefs->ShouldOpenPdfInSystemReader();
- }
-#endif
- return download_item_->ShouldOpenFileBasedOnExtension();
- case TOGGLE_PAUSE:
- return download_item_->IsPaused();
- }
- return false;
+ return download_commands_.IsCommandChecked(
+ static_cast<DownloadCommands::Command>(command_id));
}
bool DownloadShelfContextMenu::IsCommandIdVisible(int command_id) const {
- if (!download_item_)
- return false;
+ return download_commands_.IsCommandVisible(
+ static_cast<DownloadCommands::Command>(command_id));
+}
+
+void DownloadShelfContextMenu::ExecuteCommand(int command_id, int event_flags) {
+ download_commands_.ExecuteCommand(
+ static_cast<DownloadCommands::Command>(command_id), profile_);
+}
- if (command_id == PLATFORM_OPEN)
- return (DownloadItemModel(download_item_).ShouldPreferOpeningInBrowser());
+bool DownloadShelfContextMenu::GetAcceleratorForCommandId(
+ int command_id,
+ ui::Accelerator* accelerator) {
+ return false;
+}
- return true;
+bool DownloadShelfContextMenu::IsItemForCommandIdDynamic(int command_id) const {
+ return false;
}
-void DownloadShelfContextMenu::ExecuteCommand(int command_id, int event_flags) {
- if (!download_item_)
- return;
+base::string16 DownloadShelfContextMenu::GetLabelForCommandId(
+ int command_id) const {
+ int id = -1;
- switch (static_cast<ContextMenuCommands>(command_id)) {
- case SHOW_IN_FOLDER:
- download_item_->ShowDownloadInShell();
- break;
- case OPEN_WHEN_COMPLETE:
- download_item_->OpenDownload();
- break;
- case ALWAYS_OPEN_TYPE: {
- bool is_checked = IsCommandIdChecked(ALWAYS_OPEN_TYPE);
- DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext(
- download_item_->GetBrowserContext());
-#if defined(OS_WIN) || defined(OS_LINUX) || \
- (defined(OS_MACOSX) && !defined(OS_IOS))
- if (CanOpenPdfInSystemViewer()) {
- prefs->SetShouldOpenPdfInSystemReader(!is_checked);
- DownloadItemModel(download_item_).SetShouldPreferOpeningInBrowser(
- is_checked);
- break;
- }
-#endif
- base::FilePath path = download_item_->GetTargetFilePath();
- if (is_checked)
- prefs->DisableAutoOpenBasedOnExtension(path);
+ switch (static_cast<DownloadCommands::Command>(command_id)) {
+ case DownloadCommands::OPEN_WHEN_COMPLETE:
+ if (download_item_ && !download_item_->IsDone())
+ id = IDS_DOWNLOAD_MENU_OPEN_WHEN_COMPLETE;
else
- prefs->EnableAutoOpenBasedOnExtension(path);
+ id = IDS_DOWNLOAD_MENU_OPEN;
break;
- }
- case PLATFORM_OPEN:
- DownloadItemModel(download_item_).OpenUsingPlatformHandler();
+ case DownloadCommands::PAUSE:
+ id = IDS_DOWNLOAD_MENU_PAUSE_ITEM;
break;
- case CANCEL:
- download_item_->Cancel(true /* Cancelled by user */);
+ case DownloadCommands::RESUME:
+ id = IDS_DOWNLOAD_MENU_RESUME_ITEM;
break;
- case TOGGLE_PAUSE:
- if (download_item_->GetState() == DownloadItem::IN_PROGRESS &&
- !download_item_->IsPaused()) {
- download_item_->Pause();
- } else {
- download_item_->Resume();
- }
+ case DownloadCommands::SHOW_IN_FOLDER:
+ id = IDS_DOWNLOAD_MENU_SHOW;
break;
- case DISCARD:
- download_item_->Remove();
+ case DownloadCommands::DISCARD:
+ id = IDS_DOWNLOAD_MENU_DISCARD;
break;
- case KEEP:
- download_item_->ValidateDangerousDownload();
+ case DownloadCommands::KEEP:
+ id = IDS_DOWNLOAD_MENU_KEEP;
break;
- case LEARN_MORE_SCANNING: {
-#if defined(FULL_SAFE_BROWSING)
- using safe_browsing::DownloadProtectionService;
- SafeBrowsingService* sb_service =
- g_browser_process->safe_browsing_service();
- DownloadProtectionService* protection_service =
- (sb_service ? sb_service->download_protection_service() : NULL);
- if (protection_service) {
- protection_service->ShowDetailsForDownload(*download_item_, navigator_);
+ case DownloadCommands::ALWAYS_OPEN_TYPE: {
+ bool can_open_pdf_in_system_viewer =
+ DownloadCommands(download_item_).CanOpenPdfInSystemViewer();
+#if defined(OS_WIN)
+ if (can_open_pdf_in_system_viewer) {
+ id = IsAdobeReaderDefaultPDFViewer()
+ ? IDS_DOWNLOAD_MENU_ALWAYS_OPEN_PDF_IN_READER
+ : IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS;
+ break;
+ }
+#elif defined(OS_MACOSX) || defined(OS_LINUX)
+ if (can_open_pdf_in_system_viewer) {
+ id = IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS;
+ break;
}
-#else
- // Should only be getting invoked if we are using safe browsing.
- NOTREACHED();
#endif
+ id = IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE;
break;
}
- case LEARN_MORE_INTERRUPTED:
- navigator_->OpenURL(
- content::OpenURLParams(GURL(chrome::kDownloadInterruptedLearnMoreURL),
- content::Referrer(),
- NEW_FOREGROUND_TAB,
- ui::PAGE_TRANSITION_LINK,
- false));
+ case DownloadCommands::PLATFORM_OPEN:
+ id = IDS_DOWNLOAD_MENU_PLATFORM_OPEN;
break;
+ case DownloadCommands::CANCEL:
+ id = IDS_DOWNLOAD_MENU_CANCEL;
+ break;
+ case DownloadCommands::LEARN_MORE_SCANNING:
+ id = IDS_DOWNLOAD_MENU_LEARN_MORE_SCANNING;
+ break;
+ case DownloadCommands::LEARN_MORE_INTERRUPTED:
+ id = IDS_DOWNLOAD_MENU_LEARN_MORE_INTERRUPTED;
+ break;
+ case DownloadCommands::RETRY:
+ NOTREACHED();
+ return base::string16();
}
-}
-
-bool DownloadShelfContextMenu::GetAcceleratorForCommandId(
- int command_id, ui::Accelerator* accelerator) {
- return false;
-}
-
-bool DownloadShelfContextMenu::IsItemForCommandIdDynamic(int command_id) const {
- return command_id == TOGGLE_PAUSE;
-}
-
-base::string16 DownloadShelfContextMenu::GetLabelForCommandId(
- int command_id) const {
- switch (static_cast<ContextMenuCommands>(command_id)) {
- case SHOW_IN_FOLDER:
- return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_SHOW);
- case OPEN_WHEN_COMPLETE:
- if (download_item_ && !download_item_->IsDone())
- return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN_WHEN_COMPLETE);
- return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_OPEN);
- case ALWAYS_OPEN_TYPE:
- return l10n_util::GetStringUTF16(GetAlwaysOpenStringId());
- case PLATFORM_OPEN:
- return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_PLATFORM_OPEN);
- case CANCEL:
- return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_CANCEL);
- case TOGGLE_PAUSE:
- if (download_item_ &&
- download_item_->GetState() == DownloadItem::IN_PROGRESS &&
- !download_item_->IsPaused())
- return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_PAUSE_ITEM);
- return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_RESUME_ITEM);
- case DISCARD:
- return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_DISCARD);
- case KEEP:
- return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_KEEP);
- case LEARN_MORE_SCANNING:
- return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_LEARN_MORE_SCANNING);
- case LEARN_MORE_INTERRUPTED:
- return l10n_util::GetStringUTF16(
- IDS_DOWNLOAD_MENU_LEARN_MORE_INTERRUPTED);
- }
- NOTREACHED();
- return base::string16();
+ CHECK(id != -1);
+ return l10n_util::GetStringUTF16(id);
}
void DownloadShelfContextMenu::DetachFromDownloadItem() {
@@ -288,40 +176,72 @@ ui::SimpleMenuModel* DownloadShelfContextMenu::GetInProgressMenuModel() {
in_progress_download_menu_model_.reset(new ui::SimpleMenuModel(this));
- in_progress_download_menu_model_->AddCheckItemWithStringId(
- OPEN_WHEN_COMPLETE, IDS_DOWNLOAD_MENU_OPEN_WHEN_COMPLETE);
- in_progress_download_menu_model_->AddCheckItemWithStringId(
- ALWAYS_OPEN_TYPE, GetAlwaysOpenStringId());
+ in_progress_download_menu_model_->AddCheckItem(
+ DownloadCommands::OPEN_WHEN_COMPLETE,
+ GetLabelForCommandId(DownloadCommands::OPEN_WHEN_COMPLETE));
+ in_progress_download_menu_model_->AddCheckItem(
+ DownloadCommands::ALWAYS_OPEN_TYPE,
+ GetLabelForCommandId(DownloadCommands::ALWAYS_OPEN_TYPE));
in_progress_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR);
- in_progress_download_menu_model_->AddItemWithStringId(
- TOGGLE_PAUSE, IDS_DOWNLOAD_MENU_PAUSE_ITEM);
- in_progress_download_menu_model_->AddItemWithStringId(
- SHOW_IN_FOLDER, IDS_DOWNLOAD_MENU_SHOW);
+ in_progress_download_menu_model_->AddItem(
+ DownloadCommands::PAUSE, GetLabelForCommandId(DownloadCommands::PAUSE));
+ in_progress_download_menu_model_->AddItem(
+ DownloadCommands::SHOW_IN_FOLDER,
+ GetLabelForCommandId(DownloadCommands::SHOW_IN_FOLDER));
in_progress_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR);
- in_progress_download_menu_model_->AddItemWithStringId(
- CANCEL, IDS_DOWNLOAD_MENU_CANCEL);
+ in_progress_download_menu_model_->AddItem(
+ DownloadCommands::CANCEL, GetLabelForCommandId(DownloadCommands::CANCEL));
return in_progress_download_menu_model_.get();
}
+ui::SimpleMenuModel* DownloadShelfContextMenu::GetInProgressPausedMenuModel() {
+ if (in_progress_download_paused_menu_model_)
+ return in_progress_download_paused_menu_model_.get();
+
+ in_progress_download_paused_menu_model_.reset(new ui::SimpleMenuModel(this));
+
+ in_progress_download_paused_menu_model_->AddCheckItem(
+ DownloadCommands::OPEN_WHEN_COMPLETE,
+ GetLabelForCommandId(DownloadCommands::OPEN_WHEN_COMPLETE));
+ in_progress_download_paused_menu_model_->AddCheckItem(
+ DownloadCommands::ALWAYS_OPEN_TYPE,
+ GetLabelForCommandId(DownloadCommands::ALWAYS_OPEN_TYPE));
+ in_progress_download_paused_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR);
+ in_progress_download_paused_menu_model_->AddItem(
+ DownloadCommands::RESUME, GetLabelForCommandId(DownloadCommands::RESUME));
+ in_progress_download_paused_menu_model_->AddItem(
+ DownloadCommands::SHOW_IN_FOLDER,
+ GetLabelForCommandId(DownloadCommands::SHOW_IN_FOLDER));
+ in_progress_download_paused_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR);
+ in_progress_download_paused_menu_model_->AddItem(
+ DownloadCommands::CANCEL, GetLabelForCommandId(DownloadCommands::CANCEL));
+
+ return in_progress_download_paused_menu_model_.get();
+}
+
ui::SimpleMenuModel* DownloadShelfContextMenu::GetFinishedMenuModel() {
if (finished_download_menu_model_)
return finished_download_menu_model_.get();
finished_download_menu_model_.reset(new ui::SimpleMenuModel(this));
- finished_download_menu_model_->AddItemWithStringId(
- OPEN_WHEN_COMPLETE, IDS_DOWNLOAD_MENU_OPEN);
- finished_download_menu_model_->AddCheckItemWithStringId(
- ALWAYS_OPEN_TYPE, GetAlwaysOpenStringId());
- finished_download_menu_model_->AddItemWithStringId(
- PLATFORM_OPEN, IDS_DOWNLOAD_MENU_PLATFORM_OPEN);
+ finished_download_menu_model_->AddItem(
+ DownloadCommands::OPEN_WHEN_COMPLETE,
+ GetLabelForCommandId(DownloadCommands::OPEN_WHEN_COMPLETE));
+ finished_download_menu_model_->AddCheckItem(
+ DownloadCommands::ALWAYS_OPEN_TYPE,
+ GetLabelForCommandId(DownloadCommands::ALWAYS_OPEN_TYPE));
+ finished_download_menu_model_->AddItem(
+ DownloadCommands::PLATFORM_OPEN,
+ GetLabelForCommandId(DownloadCommands::PLATFORM_OPEN));
finished_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR);
- finished_download_menu_model_->AddItemWithStringId(
- SHOW_IN_FOLDER, IDS_DOWNLOAD_MENU_SHOW);
+ finished_download_menu_model_->AddItem(
+ DownloadCommands::SHOW_IN_FOLDER,
+ GetLabelForCommandId(DownloadCommands::SHOW_IN_FOLDER));
finished_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR);
- finished_download_menu_model_->AddItemWithStringId(
- CANCEL, IDS_DOWNLOAD_MENU_CANCEL);
+ finished_download_menu_model_->AddItem(
+ DownloadCommands::CANCEL, GetLabelForCommandId(DownloadCommands::CANCEL));
return finished_download_menu_model_.get();
}
@@ -340,20 +260,23 @@ ui::SimpleMenuModel* DownloadShelfContextMenu::GetInterruptedMenuModel() {
interrupted_download_menu_model_.reset(new ui::SimpleMenuModel(this));
if (IsDownloadResumptionEnabled()) {
- interrupted_download_menu_model_->AddItemWithStringId(
- TOGGLE_PAUSE, IDS_DOWNLOAD_MENU_RESUME_ITEM);
+ interrupted_download_menu_model_->AddItem(
+ DownloadCommands::RESUME,
+ GetLabelForCommandId(DownloadCommands::RESUME));
}
#if defined(OS_WIN)
// The Help Center article is currently Windows specific.
// TODO(asanka): Enable this for other platforms when the article is expanded
// for other platforms.
- interrupted_download_menu_model_->AddItemWithStringId(
- LEARN_MORE_INTERRUPTED, IDS_DOWNLOAD_MENU_LEARN_MORE_INTERRUPTED);
+ interrupted_download_menu_model_->AddItem(
+ DownloadCommands::LEARN_MORE_INTERRUPTED,
+ GetLabelForCommandId(DownloadCommands::LEARN_MORE_INTERRUPTED));
#endif
if (IsDownloadResumptionEnabled()) {
interrupted_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR);
- interrupted_download_menu_model_->AddItemWithStringId(
- CANCEL, IDS_DOWNLOAD_MENU_CANCEL);
+ interrupted_download_menu_model_->AddItem(
+ DownloadCommands::CANCEL,
+ GetLabelForCommandId(DownloadCommands::CANCEL));
}
return interrupted_download_menu_model_.get();
@@ -365,11 +288,12 @@ ui::SimpleMenuModel* DownloadShelfContextMenu::GetMaybeMaliciousMenuModel() {
maybe_malicious_download_menu_model_.reset(new ui::SimpleMenuModel(this));
- maybe_malicious_download_menu_model_->AddItemWithStringId(
- KEEP, IDS_DOWNLOAD_MENU_KEEP);
+ maybe_malicious_download_menu_model_->AddItem(
+ DownloadCommands::KEEP, GetLabelForCommandId(DownloadCommands::KEEP));
maybe_malicious_download_menu_model_->AddSeparator(ui::NORMAL_SEPARATOR);
- maybe_malicious_download_menu_model_->AddItemWithStringId(
- LEARN_MORE_SCANNING, IDS_DOWNLOAD_MENU_LEARN_MORE_SCANNING);
+ maybe_malicious_download_menu_model_->AddItem(
+ DownloadCommands::LEARN_MORE_SCANNING,
+ GetLabelForCommandId(DownloadCommands::LEARN_MORE_SCANNING));
return maybe_malicious_download_menu_model_.get();
}
@@ -380,38 +304,9 @@ ui::SimpleMenuModel* DownloadShelfContextMenu::GetMaliciousMenuModel() {
malicious_download_menu_model_.reset(new ui::SimpleMenuModel(this));
DownloadItemModel download_model(download_item_);
- malicious_download_menu_model_->AddItemWithStringId(
- LEARN_MORE_SCANNING, IDS_DOWNLOAD_MENU_LEARN_MORE_SCANNING);
+ malicious_download_menu_model_->AddItem(
+ DownloadCommands::LEARN_MORE_SCANNING,
+ GetLabelForCommandId(DownloadCommands::LEARN_MORE_SCANNING));
return malicious_download_menu_model_.get();
}
-
-int DownloadShelfContextMenu::GetAlwaysOpenStringId() const {
-#if defined(OS_WIN)
- if (CanOpenPdfInSystemViewer())
- return IsAdobeReaderDefaultPDFViewer()
- ? IDS_DOWNLOAD_MENU_ALWAYS_OPEN_PDF_IN_READER
- : IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS;
-#elif defined(OS_MACOSX) || defined(OS_LINUX)
- if (CanOpenPdfInSystemViewer())
- return IDS_DOWNLOAD_MENU_PLATFORM_OPEN_ALWAYS;
-#endif
- return IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE;
-}
-
-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
-bool DownloadShelfContextMenu::IsDownloadPdf() const {
- base::FilePath path = download_item_->GetTargetFilePath();
- return path.MatchesExtension(FILE_PATH_LITERAL(".pdf"));
-}
-#endif
-
-bool DownloadShelfContextMenu::CanOpenPdfInSystemViewer() const {
-#if defined(OS_WIN)
- return IsDownloadPdf() &&
- (IsAdobeReaderDefaultPDFViewer() ? is_adobe_pdf_reader_up_to_date_ :
- true);
-#elif defined(OS_MACOSX) || defined(OS_LINUX)
- return IsDownloadPdf();
-#endif
-}

Powered by Google App Engine
This is Rietveld 408576698