Index: chrome/browser/download/download_manager.cc |
diff --git a/chrome/browser/download/download_manager.cc b/chrome/browser/download/download_manager.cc |
index 58090f2d492e18f00c5dc16dca08589f9e43e6e1..21c890639d6ce8ae73d25091fdd363d0bd82dbc2 100644 |
--- a/chrome/browser/download/download_manager.cc |
+++ b/chrome/browser/download/download_manager.cc |
@@ -368,20 +368,23 @@ void DownloadManager::CheckIfSuggestedPathExists(int32 download_id, |
const FilePath& default_path) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
- // Make sure the default download directory exists. |
- // TODO(phajdan.jr): only create the directory when we're sure the user |
- // is going to save there and not to another directory of his choice. |
- file_util::CreateDirectory(default_path); |
- |
// Check writability of the suggested path. If we can't write to it, default |
- // to the user's "My Documents" directory. We'll prompt them in this case. |
+ // to the user's "Downloads" directory. We'll prompt them in this case. |
FilePath dir = state.suggested_path.DirName(); |
FilePath filename = state.suggested_path.BaseName(); |
if (!file_util::PathIsWritable(dir)) { |
VLOG(1) << "Unable to write to directory \"" << dir.value() << "\""; |
state.prompt_user_for_save_location = true; |
- PathService::Get(chrome::DIR_USER_DOCUMENTS, &state.suggested_path); |
- state.suggested_path = state.suggested_path.Append(filename); |
+ if (!PathService::Get( |
+ chrome::DIR_DEFAULT_DOWNLOADS, &state.suggested_path)) { |
Randy Smith (Not in Mondays)
2011/06/02 19:13:57
Are we testing this case?
|
+ LOG(ERROR) << "Cannot find the user's \"Downloads\" folder."; |
Randy Smith (Not in Mondays)
2011/06/02 19:13:57
I'm inclined to suggest you make this a VLOG rathe
haraken1
2011/06/03 06:50:27
Done.
|
+ // If the user's "Downloads" folder does not exist, use the |
+ // originally suggested path even if the path does not exist |
+ // (This is a rare case). |
+ state.suggested_path = dir.Append(filename); |
+ } else { |
+ state.suggested_path = state.suggested_path.Append(filename); |
+ } |
} |
// If the download is deemed dangerous, we'll use a temporary name for it. |
@@ -495,7 +498,7 @@ void DownloadManager::OnPathExistenceAvailable(int32 download_id, |
contents, owning_window, |
reinterpret_cast<void*>(id_ptr)); |
FOR_EACH_OBSERVER(Observer, observers_, |
- SelectFileDialogDisplayed(download_id)); |
+ SelectFileDialogDisplayed(download_id, suggested_path)); |
} else { |
// No prompting for download, just continue with the suggested name. |
ContinueDownloadWithPath(download, suggested_path); |