Index: chrome/browser/download/download_prefs.cc |
diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download/download_prefs.cc |
index 5dba83ae35e03aaa002ef80cbee6acf16e333039..8acc6cf10fbc4da0502bb6197b6ef47f28f3c112 100644 |
--- a/chrome/browser/download/download_prefs.cc |
+++ b/chrome/browser/download/download_prefs.cc |
@@ -134,6 +134,9 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profile_(profile) { |
#if defined(OS_WIN) |
should_open_pdf_in_adobe_reader_ = |
prefs->GetBoolean(prefs::kOpenPdfDownloadInAdobeReader); |
+#elif defined(OS_MACOSX) || defined(OS_LINUX) |
+ should_open_pdf_in_system_reader_ = |
+ prefs->GetBoolean(prefs::kOpenPdfDownloadInSystemReader); |
#endif |
// If the download path is dangerous we forcefully reset it. But if we do |
@@ -209,6 +212,11 @@ void DownloadPrefs::RegisterProfilePrefs( |
prefs::kOpenPdfDownloadInAdobeReader, |
false, |
user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
+#elif defined(OS_MACOSX) || defined(OS_LINUX) |
+ registry->RegisterBooleanPref( |
+ prefs::kOpenPdfDownloadInSystemReader, |
+ false, |
+ user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
#endif |
} |
@@ -287,6 +295,9 @@ bool DownloadPrefs::IsAutoOpenUsed() const { |
#if defined(OS_WIN) |
if (ShouldOpenPdfInAdobeReader()) |
return true; |
+#elif defined(OS_MACOSX) || defined(OS_LINUX) |
+ if (ShouldOpenPdfInSystemReader()) |
+ return true; |
#endif |
return !auto_open_.empty(); |
} |
@@ -303,6 +314,9 @@ bool DownloadPrefs::IsAutoOpenEnabledBasedOnExtension( |
DownloadTargetDeterminer::IsAdobeReaderUpToDate() && |
ShouldOpenPdfInAdobeReader()) |
return true; |
+#elif defined(OS_MACOSX) || defined(OS_LINUX) |
+ if (extension == FILE_PATH_LITERAL("pdf") && ShouldOpenPdfInSystemReader()) |
+ return true; |
#endif |
return auto_open_.find(extension) != auto_open_.end(); |
} |
@@ -343,11 +357,25 @@ void DownloadPrefs::SetShouldOpenPdfInAdobeReader(bool should_open) { |
bool DownloadPrefs::ShouldOpenPdfInAdobeReader() const { |
return should_open_pdf_in_adobe_reader_; |
} |
+#elif defined(OS_MACOSX) || defined(OS_LINUX) |
+void DownloadPrefs::SetShouldOpenPdfInSystemReader(bool should_open) { |
+ if (should_open_pdf_in_system_reader_ == should_open) |
+ return; |
+ should_open_pdf_in_system_reader_ = should_open; |
+ profile_->GetPrefs()->SetBoolean(prefs::kOpenPdfDownloadInSystemReader, |
+ should_open); |
+} |
+ |
+bool DownloadPrefs::ShouldOpenPdfInSystemReader() const { |
+ return should_open_pdf_in_system_reader_; |
+} |
#endif |
void DownloadPrefs::ResetAutoOpen() { |
#if defined(OS_WIN) |
SetShouldOpenPdfInAdobeReader(false); |
+#elif defined(OS_MACOSX) || defined(OS_LINUX) |
+ SetShouldOpenPdfInSystemReader(false); |
#endif |
auto_open_.clear(); |
SaveAutoOpenState(); |