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 81d7a4ebf3311d77a53bf6956957b7d4823b17af..b54d3678049ca85dcf48f038c1ef0cc6669a6a9e 100644 |
--- a/chrome/browser/download/download_shelf_context_menu.cc |
+++ b/chrome/browser/download/download_shelf_context_menu.cc |
@@ -50,9 +50,9 @@ DownloadShelfContextMenu::DownloadShelfContextMenu( |
download_item_->AddObserver(this); |
#if defined(OS_WIN) |
- is_pdf_reader_up_to_date_ = false; |
+ is_adobe_pdf_reader_up_to_date_ = false; |
if (IsDownloadPdf() && IsAdobeReaderDefaultPDFViewer()) { |
- is_pdf_reader_up_to_date_ = |
+ is_adobe_pdf_reader_up_to_date_ = |
DownloadTargetDeterminer::IsAdobeReaderUpToDate(); |
} |
#endif // defined(OS_WIN) |
@@ -122,11 +122,12 @@ bool DownloadShelfContextMenu::IsCommandIdChecked(int command_id) const { |
return download_item_->GetOpenWhenComplete() || |
download_crx_util::IsExtensionDownload(*download_item_); |
case ALWAYS_OPEN_TYPE: |
-#if defined(OS_WIN) |
- if (CanOpenPdfInReader()) { |
+#if defined(OS_WIN) || defined(OS_LINUX) || \ |
+ (defined(OS_MACOSX) && !defined(OS_IOS)) |
+ if (CanOpenPdfInSystemViewer()) { |
DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext( |
download_item_->GetBrowserContext()); |
- return prefs->ShouldOpenPdfInAdobeReader(); |
+ return prefs->ShouldOpenPdfInSystemReader(); |
} |
#endif |
return download_item_->ShouldOpenFileBasedOnExtension(); |
@@ -161,9 +162,10 @@ void DownloadShelfContextMenu::ExecuteCommand(int command_id, int event_flags) { |
bool is_checked = IsCommandIdChecked(ALWAYS_OPEN_TYPE); |
DownloadPrefs* prefs = DownloadPrefs::FromBrowserContext( |
download_item_->GetBrowserContext()); |
-#if defined(OS_WIN) |
- if (CanOpenPdfInReader()) { |
- prefs->SetShouldOpenPdfInAdobeReader(!is_checked); |
+#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; |
@@ -386,19 +388,30 @@ ui::SimpleMenuModel* DownloadShelfContextMenu::GetMaliciousMenuModel() { |
int DownloadShelfContextMenu::GetAlwaysOpenStringId() const { |
#if defined(OS_WIN) |
- if (CanOpenPdfInReader()) |
+ if (CanOpenPdfInSystemViewer()) |
return IDS_DOWNLOAD_MENU_ALWAYS_OPEN_PDF_IN_READER; |
+#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) |
+#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::CanOpenPdfInReader() const { |
- return (is_pdf_reader_up_to_date_ && IsDownloadPdf()); |
+#if defined(OS_WIN) |
+bool DownloadShelfContextMenu::CanOpenPdfInSystemViewer() const { |
+ return IsDownloadPdf() && |
+ (IsAdobeReaderDefaultPDFViewer() ? is_adobe_pdf_reader_up_to_date_ : |
+ true); |
+} |
+#elif defined(OS_MACOSX) || defined(OS_LINUX) |
+bool DownloadShelfContextMenu::CanOpenPdfInSystemViewer() const { |
+ return IsDownloadPdf(); |
} |
#endif |