Chromium Code Reviews| 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..9a544b9f0360134c82c1c37d46a8469560ccc3a5 100644 |
| --- a/chrome/browser/download/download_prefs.cc |
| +++ b/chrome/browser/download/download_prefs.cc |
| @@ -131,9 +131,10 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profile_(profile) { |
| GetDefaultDownloadDirectoryForProfile())); |
| #endif // defined(OS_CHROMEOS) |
| -#if defined(OS_WIN) |
| - should_open_pdf_in_adobe_reader_ = |
| - prefs->GetBoolean(prefs::kOpenPdfDownloadInAdobeReader); |
| +#if defined(OS_WIN) || defined(OS_LINUX) || \ |
| + (defined(OS_MACOSX) && !defined(OS_IOS)) |
| + 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 |
| @@ -204,9 +205,10 @@ void DownloadPrefs::RegisterProfilePrefs( |
| prefs::kSaveFileDefaultDirectory, |
| default_download_path, |
| user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
| -#if defined(OS_WIN) |
| +#if defined(OS_WIN) || defined(OS_LINUX) || \ |
| + (defined(OS_MACOSX) && !defined(OS_IOS)) |
| registry->RegisterBooleanPref( |
| - prefs::kOpenPdfDownloadInAdobeReader, |
| + prefs::kOpenPdfDownloadInSystemReader, |
| false, |
| user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
| #endif |
| @@ -284,8 +286,9 @@ bool DownloadPrefs::IsDownloadPathManaged() const { |
| } |
| bool DownloadPrefs::IsAutoOpenUsed() const { |
| -#if defined(OS_WIN) |
| - if (ShouldOpenPdfInAdobeReader()) |
| +#if defined(OS_WIN) || defined(OS_LINUX) || \ |
| + (defined(OS_MACOSX) && !defined(OS_IOS)) |
| + if (ShouldOpenPdfInSystemReader()) |
| return true; |
| #endif |
| return !auto_open_.empty(); |
| @@ -298,10 +301,9 @@ bool DownloadPrefs::IsAutoOpenEnabledBasedOnExtension( |
| return false; |
| DCHECK(extension[0] == base::FilePath::kExtensionSeparator); |
| extension.erase(0, 1); |
| -#if defined(OS_WIN) |
| - if (extension == FILE_PATH_LITERAL("pdf") && |
| - DownloadTargetDeterminer::IsAdobeReaderUpToDate() && |
| - ShouldOpenPdfInAdobeReader()) |
| +#if defined(OS_WIN) || defined(OS_LINUX) || \ |
| + (defined(OS_MACOSX) && !defined(OS_IOS)) |
| + if (extension == FILE_PATH_LITERAL("pdf") && ShouldOpenPdfInSystemReader()) |
| return true; |
| #endif |
| return auto_open_.find(extension) != auto_open_.end(); |
| @@ -331,23 +333,29 @@ void DownloadPrefs::DisableAutoOpenBasedOnExtension( |
| SaveAutoOpenState(); |
| } |
| -#if defined(OS_WIN) |
| -void DownloadPrefs::SetShouldOpenPdfInAdobeReader(bool should_open) { |
| - if (should_open_pdf_in_adobe_reader_ == should_open) |
| +#if defined(OS_WIN) || defined(OS_LINUX) || \ |
| + (defined(OS_MACOSX) && !defined(OS_IOS)) |
| +void DownloadPrefs::SetShouldOpenPdfInSystemReader(bool should_open) { |
| + if (should_open_pdf_in_system_reader_ == should_open) |
| return; |
| - should_open_pdf_in_adobe_reader_ = should_open; |
| - profile_->GetPrefs()->SetBoolean(prefs::kOpenPdfDownloadInAdobeReader, |
| + should_open_pdf_in_system_reader_ = should_open; |
| + profile_->GetPrefs()->SetBoolean(prefs::kOpenPdfDownloadInSystemReader, |
| should_open); |
| } |
| -bool DownloadPrefs::ShouldOpenPdfInAdobeReader() const { |
| - return should_open_pdf_in_adobe_reader_; |
| +bool DownloadPrefs::ShouldOpenPdfInSystemReader() const { |
| +#if defined(OS_WIN) |
| + if (!DownloadTargetDeterminer::IsAdobeReaderUpToDate()) |
|
asanka
2014/10/28 21:32:50
if (<is adobe the default reader> && IsAdobeReader
palmer
2014/10/28 22:38:39
Done.
|
| + return false; |
| +#endif |
| + return should_open_pdf_in_system_reader_; |
| } |
| #endif |
| void DownloadPrefs::ResetAutoOpen() { |
| -#if defined(OS_WIN) |
| - SetShouldOpenPdfInAdobeReader(false); |
| +#if defined(OS_WIN) || defined(OS_LINUX) || \ |
| + (defined(OS_MACOSX) && !defined(OS_IOS)) |
| + SetShouldOpenPdfInSystemReader(false); |
| #endif |
| auto_open_.clear(); |
| SaveAutoOpenState(); |