Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3946)

Unified Diff: chrome/browser/download/download_manager.cc

Issue 6973052: When the download folder does not exist, change the download folder to a user's "Downloads" (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Correct typo Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698