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

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

Issue 665163005: Add option to open PDFs in system viewer to OS X and Linux. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Harmonize the strings a bit better. Created 6 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/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();

Powered by Google App Engine
This is Rietveld 408576698