Chromium Code Reviews| 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); |