OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/download/download_prefs.h" | 5 #include "chrome/browser/download/download_prefs.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 | 131 |
132 // Ensure that the default download directory exists. | 132 // Ensure that the default download directory exists. |
133 BrowserThread::PostTask( | 133 BrowserThread::PostTask( |
134 BrowserThread::FILE, FROM_HERE, | 134 BrowserThread::FILE, FROM_HERE, |
135 base::Bind(base::IgnoreResult(&base::CreateDirectory), | 135 base::Bind(base::IgnoreResult(&base::CreateDirectory), |
136 GetDefaultDownloadDirectoryForProfile())); | 136 GetDefaultDownloadDirectoryForProfile())); |
137 #endif // defined(OS_CHROMEOS) | 137 #endif // defined(OS_CHROMEOS) |
138 | 138 |
139 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) | 139 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) |
140 should_open_pdf_in_system_reader_ = | 140 should_open_pdf_in_system_reader_ = |
141 prefs->GetBoolean(prefs::kOpenPdfDownloadInSystemReader) || | 141 prefs->GetBoolean(prefs::kOpenPdfDownloadInSystemReader); |
142 prefs->GetBoolean(prefs::kPluginsAlwaysOpenPdfExternally); | |
143 disable_adobe_version_check_for_tests_ = false; | |
144 #endif | 142 #endif |
145 | 143 |
146 // If the download path is dangerous we forcefully reset it. But if we do | 144 // If the download path is dangerous we forcefully reset it. But if we do |
147 // so we set a flag to make sure we only do it once, to avoid fighting | 145 // so we set a flag to make sure we only do it once, to avoid fighting |
148 // the user if they really want it on an unsafe place such as the desktop. | 146 // the user if they really want it on an unsafe place such as the desktop. |
149 if (!prefs->GetBoolean(prefs::kDownloadDirUpgraded)) { | 147 if (!prefs->GetBoolean(prefs::kDownloadDirUpgraded)) { |
150 base::FilePath current_download_dir = prefs->GetFilePath( | 148 base::FilePath current_download_dir = prefs->GetFilePath( |
151 prefs::kDownloadDefaultDirectory); | 149 prefs::kDownloadDefaultDirectory); |
152 if (DownloadPathIsDangerous(current_download_dir)) { | 150 if (DownloadPathIsDangerous(current_download_dir)) { |
153 prefs->SetFilePath(prefs::kDownloadDefaultDirectory, | 151 prefs->SetFilePath(prefs::kDownloadDefaultDirectory, |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 if (extension.empty()) | 333 if (extension.empty()) |
336 return; | 334 return; |
337 DCHECK(extension[0] == base::FilePath::kExtensionSeparator); | 335 DCHECK(extension[0] == base::FilePath::kExtensionSeparator); |
338 extension.erase(0, 1); | 336 extension.erase(0, 1); |
339 auto_open_.erase(extension); | 337 auto_open_.erase(extension); |
340 SaveAutoOpenState(); | 338 SaveAutoOpenState(); |
341 } | 339 } |
342 | 340 |
343 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) | 341 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) |
344 void DownloadPrefs::SetShouldOpenPdfInSystemReader(bool should_open) { | 342 void DownloadPrefs::SetShouldOpenPdfInSystemReader(bool should_open) { |
345 should_open_pdf_in_system_reader_ = should_open || | 343 if (should_open_pdf_in_system_reader_ == should_open) |
346 profile_->GetPrefs()->GetBoolean(prefs::kPluginsAlwaysOpenPdfExternally); | 344 return; |
| 345 should_open_pdf_in_system_reader_ = should_open; |
347 profile_->GetPrefs()->SetBoolean(prefs::kOpenPdfDownloadInSystemReader, | 346 profile_->GetPrefs()->SetBoolean(prefs::kOpenPdfDownloadInSystemReader, |
348 should_open); | 347 should_open); |
349 } | 348 } |
350 | 349 |
351 bool DownloadPrefs::ShouldOpenPdfInSystemReader() const { | 350 bool DownloadPrefs::ShouldOpenPdfInSystemReader() const { |
352 #if defined(OS_WIN) | 351 #if defined(OS_WIN) |
353 if (!disable_adobe_version_check_for_tests_ && | 352 if (IsAdobeReaderDefaultPDFViewer() && |
354 IsAdobeReaderDefaultPDFViewer() && | |
355 !DownloadTargetDeterminer::IsAdobeReaderUpToDate()) { | 353 !DownloadTargetDeterminer::IsAdobeReaderUpToDate()) { |
356 return false; | 354 return false; |
357 } | 355 } |
358 #endif | 356 #endif |
359 return should_open_pdf_in_system_reader_; | 357 return should_open_pdf_in_system_reader_; |
360 } | 358 } |
361 | |
362 void DownloadPrefs::DisableAdobeVersionCheckForTests() { | |
363 disable_adobe_version_check_for_tests_ = true; | |
364 } | |
365 #endif | 359 #endif |
366 | 360 |
367 void DownloadPrefs::ResetAutoOpen() { | 361 void DownloadPrefs::ResetAutoOpen() { |
368 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) | 362 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) |
369 SetShouldOpenPdfInSystemReader(false); | 363 SetShouldOpenPdfInSystemReader(false); |
370 #endif | 364 #endif |
371 auto_open_.clear(); | 365 auto_open_.clear(); |
372 SaveAutoOpenState(); | 366 SaveAutoOpenState(); |
373 } | 367 } |
374 | 368 |
(...skipping 13 matching lines...) Expand all Loading... |
388 extensions.erase(extensions.size() - 1); | 382 extensions.erase(extensions.size() - 1); |
389 | 383 |
390 profile_->GetPrefs()->SetString(prefs::kDownloadExtensionsToOpen, extensions); | 384 profile_->GetPrefs()->SetString(prefs::kDownloadExtensionsToOpen, extensions); |
391 } | 385 } |
392 | 386 |
393 bool DownloadPrefs::AutoOpenCompareFunctor::operator()( | 387 bool DownloadPrefs::AutoOpenCompareFunctor::operator()( |
394 const base::FilePath::StringType& a, | 388 const base::FilePath::StringType& a, |
395 const base::FilePath::StringType& b) const { | 389 const base::FilePath::StringType& b) const { |
396 return base::FilePath::CompareLessIgnoreCase(a, b); | 390 return base::FilePath::CompareLessIgnoreCase(a, b); |
397 } | 391 } |
OLD | NEW |