| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_target_determiner.h" | 5 #include "chrome/browser/download/download_target_determiner.h" |
| 6 | 6 |
| 7 #include "base/location.h" | 7 #include "base/location.h" |
| 8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
| 9 #include "base/rand_util.h" | 9 #include "base/rand_util.h" |
| 10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 // The download is being resumed and the user has already been prompted for | 187 // The download is being resumed and the user has already been prompted for |
| 188 // a path. Assume that it's okay to overwrite the file if there's a conflict | 188 // a path. Assume that it's okay to overwrite the file if there's a conflict |
| 189 // and reuse the selection. | 189 // and reuse the selection. |
| 190 should_prompt_ = ShouldPromptForDownload(virtual_path_); | 190 should_prompt_ = ShouldPromptForDownload(virtual_path_); |
| 191 } else if (!is_forced_path) { | 191 } else if (!is_forced_path) { |
| 192 // If we don't have a forced path, we should construct a path for the | 192 // If we don't have a forced path, we should construct a path for the |
| 193 // download. Forced paths are only specified for programmatic downloads | 193 // download. Forced paths are only specified for programmatic downloads |
| 194 // (WebStore, Drag&Drop). Treat the path as a virtual path. We will | 194 // (WebStore, Drag&Drop). Treat the path as a virtual path. We will |
| 195 // eventually determine whether this is a local path and if not, figure out | 195 // eventually determine whether this is a local path and if not, figure out |
| 196 // a local path. | 196 // a local path. |
| 197 |
| 198 std::string suggested_filename = download_->GetSuggestedFilename(); |
| 199 if (suggested_filename.empty() && |
| 200 download_->GetMimeType() == "application/x-x509-user-cert") { |
| 201 suggested_filename = "user.crt"; |
| 202 } |
| 203 |
| 197 std::string default_filename( | 204 std::string default_filename( |
| 198 l10n_util::GetStringUTF8(IDS_DEFAULT_DOWNLOAD_FILENAME)); | 205 l10n_util::GetStringUTF8(IDS_DEFAULT_DOWNLOAD_FILENAME)); |
| 199 base::FilePath generated_filename = net::GenerateFileName( | 206 base::FilePath generated_filename = net::GenerateFileName( |
| 200 download_->GetURL(), | 207 download_->GetURL(), |
| 201 download_->GetContentDisposition(), | 208 download_->GetContentDisposition(), |
| 202 GetProfile()->GetPrefs()->GetString(prefs::kDefaultCharset), | 209 GetProfile()->GetPrefs()->GetString(prefs::kDefaultCharset), |
| 203 download_->GetSuggestedFilename(), | 210 suggested_filename, |
| 204 download_->GetMimeType(), | 211 download_->GetMimeType(), |
| 205 default_filename); | 212 default_filename); |
| 206 should_prompt_ = ShouldPromptForDownload(generated_filename); | 213 should_prompt_ = ShouldPromptForDownload(generated_filename); |
| 207 base::FilePath target_directory; | 214 base::FilePath target_directory; |
| 208 if (should_prompt_) { | 215 if (should_prompt_) { |
| 209 DCHECK(!download_prefs_->IsDownloadPathManaged()); | 216 DCHECK(!download_prefs_->IsDownloadPathManaged()); |
| 210 // If the user is going to be prompted and the user has been prompted | 217 // If the user is going to be prompted and the user has been prompted |
| 211 // before, then always prefer the last directory that the user selected. | 218 // before, then always prefer the last directory that the user selected. |
| 212 target_directory = download_prefs_->SaveFilePath(); | 219 target_directory = download_prefs_->SaveFilePath(); |
| 213 } else { | 220 } else { |
| (...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 896 const base::FilePath& suggested_path) { | 903 const base::FilePath& suggested_path) { |
| 897 return base::FilePath(suggested_path.value() + kCrdownloadSuffix); | 904 return base::FilePath(suggested_path.value() + kCrdownloadSuffix); |
| 898 } | 905 } |
| 899 | 906 |
| 900 #if defined(OS_WIN) | 907 #if defined(OS_WIN) |
| 901 // static | 908 // static |
| 902 bool DownloadTargetDeterminer::IsAdobeReaderUpToDate() { | 909 bool DownloadTargetDeterminer::IsAdobeReaderUpToDate() { |
| 903 return g_is_adobe_reader_up_to_date_; | 910 return g_is_adobe_reader_up_to_date_; |
| 904 } | 911 } |
| 905 #endif | 912 #endif |
| OLD | NEW |